HOW TO HACK/MITM

칼리리눅스에서 Responder.py 툴을 이용해 패스워드 크랙하기

Mr. Rootable 2016. 10. 19. 17:22


안녕하세요, Mr. Rootable입니다.

오늘은 Responder라는 툴에 대한 소개와 실습을 해보겠습니다.

사실, 포스팅을 쉬면서 몇개 비공개로 작성해둔 것을 이제서야 공개하는 것이긴 합니다. ㅋㅋ

아무튼...

Responder는 LLMNR, NBT-NS, MDNS 포이즈너(poisner)입니다.


(상기 이미지는 구글에서 찾아서 사용했습니다. 출처:https://i.ytimg.com/vi/sAr4PBR7EUE/maxresdefault.jpg)


로컬네트워크 환경에서 각 호스트들의 인증 크레덴셜(Credentials) 해쉬를 획득하기 위해 사용되는 툴이죠.

그럼 용어정리부터 하고 가시죠.

  • LLMNR(Link-Local Multicast Name Resolution)

-.로컬네트워크상에서 호스트의 이름을 찾는데 사용되는 프로토콜임.

-.윈도우 비스타, 7, 8, 2008 부터 사용되고, UDP 5355 포트를 사용함.


  • NBT-NS(NetBIOS Name Service)

-.LLMNR의 선배입니다. 

-.윈도우 비스타 이전까지 사용되었으며, IPv4 환경만 지원이 가능합니다. 이 때문에 IPv4, IPv6환경 모두 지원이 되는 LLMNR이 후임으로 나온거죠.


MDNS



  • 해쉬

-.어떤 값이 고정된 길이로 암호화된 값을 말하며, 윈도우 환경에서의 사용자 계정의 비밀번호가 이 해쉬로 저장이 됩니다. 

-.사용되는 암호화 알고리즘으로는 LM Hash와 NTLM Hash, NTLMv2 Hash가 있습니다.


LM Hash : 윈도우95,98,me에서 사용됨.

NTLM Hash : 윈도우XP, 2000에서 사용됨.

NTLMv2 Hash : 윈도우 비스타 이후로 사용됨. 



Responder툴은 로컬네트워크에서 호스트명을 조회하는 메카니즘의 취약점을 이용하여 인증 크레덴셜을 획득한다고 보시면 될 듯 합니다.


원래는 fileserver라는 호스트가 존재하지만 사용자의 실수(오타) flieserver와 통신을 시도하는 상황을 가정해봅시다.


1) 희생자가 DNS가 모르는 호스트명을 묻습니다. 오타를 쳤으니 DNS는 모르겠쬬? "//flieserver 라는 이름을 가진 녀석이 누구야?"

2) DNS가 응답합니다. "//flieserver 난 그런 녀석 몰라!!"

3) 같은 로컬네트워크 내의 다른 호스트들에게 묻습니다. "너네중에 //flieserver 아는 녀석있어?"

4) 이 때, 공격자가 개입해서 위장행세를 합니다. "어!! 그거 나야~~ ㅋㅋㅋㅋ"

5) 희생자는 그대로 믿고, 자신의 인증 크레덴셜을 공격자에게 전송합니다.

6) 공격자는 "완전 땡큐"를 외칩니다.


깃허브(https://github.com/SpiderLabs/Responder)에서 다운로드가 가능합니다.




Step 1 : Responder를 실행합니다.


칼리리눅스의 터미널을 열어 아래 명령어를 실행합니다.


# python Responder.py -I eth0 -i 192.168.0.64 -w On -r On -f On




Step 2 : 걸려들때까지 기다립니다.


Responder를 실행해놓고 기다리다보면 LAN환경에서 누군가가 인증을 시도할테고, 그러면 아래 화면과 같이 공격자에게 해쉬값이 전달되고맙니다. 이 해쉬값은 Responder/logs 디렉토리에 별도로 저장됩니다. 





Step 3: 패스워드를 크랙합니다.


logs라는 디렉토리에 획득한 인증 크레덴셜이 있으면 txt 파일로 저장되며, 파일명 형식은 아래와 같습니다.


(모듈이름)-(해쉬유형)-(클라이언트IP)


획득한 파일 중에 SMB-NTLMv2-SSP-192.168.0.4.txt라는 이름의 파일 하나를 골라 John the ripper(존더리퍼) 툴을 이용하여 해쉬값을 크랙해봅시다.


# john --format=netntlmv2 SMB-NTLMv2-SSP-192.168.0.4.txt


아래 스크린샷과 같이(흰색블럭으로 가려놨음^^) 평문의 패스워드를 얻을 수 있습니다.<끝>