쉽게 이해하는 NTLM Relay attack
본문 바로가기

Pentesting

쉽게 이해하는 NTLM Relay attack

ntlmrelayx를 이용한 NTLM Relay attack

처음엔 너무 복잡한 개념이라 이해하기 어려웠는데, gpt 와 몇 번의 소통을 통해 좀 이해했더니 재밌어서 기록..

해당 공격의 프로세스는 다음과 같다. 

가정)

현재 192.168.1.1 : 시스템 제어권을 획득한 상황

공격자 pc 192.168.1.2

우리가 탈취할 서버 192.168.1.3

 

1. 시스템 제어권을 획득한 192.168.1.1 서버에서 smb 접속하려는데, 없는 공격자 서버에 smb 요청

2. 공격자는 미리 ntlmrelayx 서버 listen하고 있음

impacket-ntlmrelayx --no-http-server -smb2support -t 192.168.1.3 -c "리버스 쉘 연결 cmd"

-t : 우리가 타켓팅할 서버 등록해둠

-c : 우리가 실행하고 싶은 cmd (여기서는 리버스쉘 명령)

3. 윈도우에서는 LLMNR/NBT-NS를 통해 요청하는 없는 서버가 대체 누구인지 찾으려 함

4. 찾는 과정에서 impacket-ntlmrelayx를 통해 공격자 192.168.1.2가 smb인 양 응답해버림 

5. 윈도우에서는 응답이 왔으니 NTLM 인증 시도

6. 이 과정에서 -c 옵션에서의 시스템 명령 수행 = 리버스 커넥션 연결 성공

 

 

여기서 의문!

192.168.1.3 에 그 누구도 무언가를 요청한 적이 없는데, 시스템 제어권이 없는데 어떻게 -c 옵션을 통해 리버스 커넥션이 되었을까?

SMB, LDAP 같은 특정 프로토콜은 NTLM 인증이 성공하면 명령 실행이 가능한 특징 때문에.