[TA0043 Reconnaissance – T1595 Active Scanning]
정찰 시작
nmap 결과


SMB를 사용중인 서버임을 알 수 있고
추가 결과에 SMB 메시지 서명(message signing)이 비활성화되어 있음을 알 수있다
이는 이터널블루 취약점으로 이어질 수 있기때문에 추가 확인을 해보겠음
smb-vuln-ms17-010 스크립트를 이용하여 EternalBlue(MS17-010) 취약 여부를 확인할 수 있는 스크립트이다

역시 이터널블루(CVE-2017-0143) 취약점이 동작할 수 있음을 확인하였다
EternalBlue 익스플로잇 (Initial Access)단계로 넘어가겠음
익스플로잇은 Metasploit의 ms17_010_eternalblue 모듈을 사용하겠음
만약 취약점 동작에 성공해서 미터프리터 세션을 확보하게된다면 system 권한일 가능성이 높다
이는 이터널블루가 커널취약점이기 때문이며 생각대로 동작된다면 추가 권한 상승이 필요 없을 가능성이 높다

역시 system 권한으로 세션이 확보 되었다
flag 파일의 경로를 확보하자

c:\Users\haris\Desktop\user.txt
c:\Users\Administrator\Desktop\root.txt
경로 확보 완료
내용을 확인하자

user flag : 0cc3179bbef311fb95b3231127570e90
root flag : 25494b08381926dd84fa3064758600ea
이번 문제풀이는 커널취약점을 통해서 추가 권한상승이 필요없었기 때문에 문제풀이자체는 얼마 소요되지 않았다
익스플로잇또한 준비되어있는 메타스플로잇을 사용했기 때문에 더욱 그렇다
그렇기 때문에 취약점에 대한 추가 조사를 통해 이터널블루를 이해해보았다
EternalBlue (MS17-010 / CVE-2017-0143~0148)
영향받는 프로토콜: SMBv1 (Server Message Block v1)
- 근본 원인 (취약점 메커니즘)
SMBv1 요청 중 Transaction (Trans2) 요청 처리 과정에서 발생하는 커널 풀 오버플로우가 핵심
- 익스플로잇 흐름
1. 비정상 크기값을 담은 SMBv1 Trans2 요청 전송 → 커널 힙 오버플로우 트리거
2. Pool Grooming으로 커널 메모리 배치를 예측 가능하게 조작
3. 오버플로우로 인접한 SMBv2 버퍼 구조체를 손상시켜 커널 내 R/W 권한 획득
4. 해당권한으로 커널 쉘코드 삽입 및 실행 (여기서부터 srv.sys가 커널 모드로 실행함 즉, NT AUTHORITY\SYSTEM 권한획득)
5. 삽입된 쉘코드가 최종 페이로드(meterpreter reverse shell)를 유저 프로세스로 동작시킴
- 탐지 및 방어 포인트
1. 메시지 서명(SMB Signing) 활성화를 통해 패킷 위변조 탐지 가능성을 높여 익스플로잇을 힘들게 만듬 (완전 차단은 x)
2. SMBv1 프로토콜 비활성화 (SMBv1을 통해 커널 힙 오버플로우를 동작하기에 이를 차단하기위함)
해당 과정중 Pool Grooming 과정으로 커널 메로리 배치를 예측가능하게 조작한다는 부분이 흥미로웠다
Pool Grooming 과정에서 수행하는 동작을 확인해봤더니 SMBv1을 통해 커널힙에 최대치크기의 secondary요청을 다수 보내어 커널힙을 가득 채운뒤 SMBv2가 들어갈 부분의 버퍼 연결을종료해 SMBv2가 할당될 버퍼공간을 고정 시키는 동작이었다
따라서 탐지시에 이런 대용량 트랜젝션을 반복해서 보내는 구조를 탐지한다면 이상징후를 좀더 빠르게 탐지할 수 있을 것 같다,
[공격 체인 정리]
1. [TA0043 Reconnaissance] nmap 전체 포트 스캔으로 135/139/445(SMB) + RPC 동적 포트 확인
2. [TA0043 Reconnaissance] -sV -sC로 Windows 7 SP1(HARIS-PC), SMB 메시지 서명 비활성화 확인
3. [TA0043 Reconnaissance] smb-vuln-ms17-010 스크립트로 MS17-010(CVE-2017-0143) 취약점 확정
4. [TA0001 Initial Access / T1210] Metasploit ms17_010_eternalblue로 SMBv1 커널 풀 오버플로우 트리거, non-paged pool grooming 후 SMBv2 버퍼 손상 → 커널 read/write 확보 → 커널 쉘코드 실행
5. [TA0004 Privilege Escalation — 불필요] 커널(Ring 0) 익스플로잇이라 성공 즉시 NT AUTHORITY\SYSTEM 권한 획득
6. [TA0009 Collection] search/cat으로 user.txt, root.txt 획득