반응형

제가 쓴 글중 "카카오톡 대화방 패킷 캡쳐(카카오톡 Burp TCP Proxy)"에서 어떻게 Burp TCP Proxy 환경을 구성했는지 생략하였는데, 조회수가 많이 나오고 궁금해하시는분도 있어서 설명드리고자 합니다.

 

Burp는 TCP Proxy기능을 지원하지 않습니다. 다만, 이를 도와주는 툴과 네트워크 설정을 하면 Burp에서도 TCP 패킷을 캡쳐하여 변조가 가능합니다.

 

TCP 패킷 캡쳐를 도와주는 Tool은 mitm_relay(github.com/jrmdev/mitm_relay), NoPE Proxy(Burp Extender)가 있는데 개인적으로 속도면에서 NoPE Proxy가 빨라서 자주 쓰고 있습니다.

 

다음은 설정 절차입니다.

채팅앱이나 게임앱들은 TCP로 통신하는 경우가 있으므로 해당 앱들을 대상으로 연습해보시면 됩니다.

 

1. 유선 랜 환경

랩탑이 유선랜으로 연결되어 있어야 합니다.

kali VM을 모바일 단말기의 게이트웨이로 설정해야 하는데, 이게 이유는 잘 모르겠지만 무선 랜 환경에서는 되지 않습니다.

 

 

2. 칼리 VM 환경 설정

// 칼리 VM의 네트워크는 브릿지 모드로 구동

 

// 패킷 포워딩 설정

sysctl -w net.ipv4.ip_forward=1

 

// 서브 인터페이스 추가. ex. ifconfig eth0:0 192.168.1.40/24

ifconfig eth0:0 <ip>/<netmask>

 

// iptables 설정

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A FORWARD -i eth0:0 -j ACCEPT

iptables -A FORWARD -o eth0:0 -j ACCEPT

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A FORWARD -o eth0 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth0:0 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

 

3. 모바일 단말기 게이트웨이 설정

모바일 기기의 Gateway를 위 단계에서 생성한 칼리 서브인터페이스로 설정합니다.

※ iOS의 경우에는 게이트웨이 주소를 수동으로 설정하는 경우 DNS 주소도 수동으로 설정해주어야 합니다.

 

3단계까지 진행하였으면 모바일 단말기에서 인터넷 통신이 되어야 합니다.

되지 않는다면 칼리 VM의 서브인터페이스 주소가 중복되어 충돌이 발생한 경우일 수도 있으니 서브인터페이스 주소를 변경해보세요.

 

 

4. Wireshark로 TCP 패킷 관찰

이제 모바일 단말기에서 나가는 모든 패킷은 칼리 VM을 거쳐가므로 Wireshark로 TCP패킷을 관찰할 수 있습니다.

이 단계에서 서버 주소 및 TCP 포트를 잘 확인해둡니다.

다음 예시 사진의 경우 서버 주소 133.186.180.87, 포트 11200으로 TCP 통신을 하고 있습니다.

 

 

5. NoPE Proxy Extender 설정

burp는 Kali VM위에서 구동하며, NoPE Extender는 Extender 탭에서 검색하여 설치할 수 있습니다.

 

NoPE Proxy 탭으로 이동하여 4단계에서 확인한 Server Address 및 Server Port 기입 후 "+" 버튼 클릭합니다(Listen Port는 서버 포트와 동일하게 기입). SSL TCP 통신이 아닌 경우 "Certificate HostName" 항목은 아무 이름으로 하여도 됩니다. SSL TCP 통신인 경우에는 "Server Address"와 "Certificate HostName"이 일치해야 합니다.(출처: https://www.youtube.com/watch?v=4K0ZhWImtdw)

 

"enable" 체크박스를 체크하게 되면 해당 Listener 포트(ex. 11200)가 열리게 되며, 릴레이 모드로 대기 상태에 들어갑니다.

 

 

6. TCP 패킷 캡쳐

이제 gateway로 들어오는 TCP 패킷을 릴레이모드로 대기중인 인터페이스(서브 또는 메인인터페이스)로 리다이렉트 시켜주는(목적지 주소를 바꿔주는==DNAT) iptables 룰을 작성해줍니다.

Ex) iptables -t nat -A PREROUTING -p tcp --dport 11200 -j DNAT --to-destination <서브 또는 메인인터페이스 IP>

 

여기까지 마쳤으면 TCP History 탭에서 릴레이 되는 TCP 패킷을 확인 할 수 있습니다. TCP Intercept 탭에서는 패킷 캡쳐 및 변조가 가능합니다. 단, 영어는 정상적으로 나오지만, 한글은 깨져나옵니다. 이 경우, Hex값을 base64로 인코딩한후에 base64디코딩 사이트에서 디코딩하게 되면 한글도 확인 가능합니다.

 

반응형

+ Recent posts