앱이나 웹 또는 CS 프로그램 등 진단을 하다보면 HTTP 통신이 아니라 TCP로 통신하여
일반적인 프록시 방법으로 패킷 캡처가 안되는 경우가 종종 있다.
TCP 패킷은 WireShark로 캡처했을 때 아래 그림처럼 확인할 수 있는데 이 TCP 패킷을 버프로 캡처하여
변조하고 분석하려면 NopE Proxy라는 확장 프로그램이 필요하다
https://github.com/portswigger/nope-proxy
깃허브에서 받아서 직접 추가해줘도 되고 버프 내에 익스텐더(Extender) 들어가서 App stroe가면 설치할 수 있다.
TCP 패킷은 포트포워딩을 통해서 Burp가 중간에서 패킷을 받는 구조이다
모바일 단말기 - Burp - TCP통신 앱
로컬PC - Burp - TCP통신 프로그램
TCP 패킷을 전송하면
와이어 샤크에서 TCP 패킷을 확인한다.
일단 로컬PC와 TCP프로그램 사이에서 패킷을 받을 대상이 필요하기 때문에 Kail Linux를 켜서 IP 확인을 해준다
이 때 칼리는 네트워크 설정을 Bridge로 설정해줘야하며 로컬PC는 LAN선이 연결되어있어야한다.
칼리에서는 포트포워딩 및 iptables 설정을 위한 사전 설정이 필요하다
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #또는
iptables -t nat -A POSTROUTING -o eth0 $atp -j MASQUERADE
# -j옵션이 인터페이스 이름으로 사용되는 옵션이기에
#MASQUERADE이 동작하지않을 수도 있어서 $atp를 넣어줌
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT
이후엔 로컬 PC의 IP 설정이 필요하다
편집으로 열어서 기존 IP주소를 넣어주고 게이트웨이는 Kali의 IP를 넣어주면된다.
설정이 완료가 되었다면 Kali에서 와이어샤크를 통해 패킷이 잘 전달되는지 확인한다.
아래 사진처럼 로컬IP (테스트를 2~3번해서 위 사진과는 IP가 다름) 에서 통신하는 TCP 패킷이 칼리의 와이어샤크에
잡힌다면 설정이 잘된것이다.
이제 칼리에서 Burp를 실행해서 NoPE Proxy설정을 해주면 되는데
서버에서 로컬로 패킷을 주고받을 때 12553 포트를 이용하는 것을 확인할 수 있다.
Server Address에는 서버 IP를 적어주고
포트는 통일해서 적어주면된다.
칼리에서 netstat -ltup를 해보면 12553 포트가 LISTEN 상태인것을 확인할 수 있다.
이제 ipatables로 패킷이 오도록 포트 포워딩을 해준다.
iptables -t nat -A PREROUTING -p tcp --dport 12553 -j DNAT --to-destination 192.168.1.172
그리고 History를 확인해보면 TCP 패킷이 오고가는 것을 확인할 수 있다.
버프와 비슷하게 인터셉트도 가능하며 패킷변조또한 가능하지만 현재 TCP 패킷이 암호화되어 거의 분석 및 변조가
불가능하다.
암호화된 패킷을 평문으로 보려면 앱이나 프로그램을 디버거같은 리버싱도구를 이용하여
패킷을 암호화하는 함수를 찾아서 해결하는 방법이 있다.
NoPE 프록시 개발자가 TLS 패킷도 분석이 가능하다고 했지만 실제로 그 기능을 이용해보면
내가 보내는 패킷은 확실히 잘 나오지만 문제는 통신이 끊겨버려 서버에서 돌아오는 응답을 받을 수가 없다...
뭔가 오류가 있는건지 방법을 모르는건지 좀 더 공부가 필요하다
그리고 만약 영문은 잘나오는데 한글이 깨진다면
Hex값을 burp로 Base64로 인코딩 후 다시 그 Base64를 오픈웹에서 디코딩하면 볼 수 있다고한다.
'기타' 카테고리의 다른 글
[Tip] MS Word 이미지 및 그림 VBA 매크로를 이용하여 정렬과 사이즈 수정 (2) | 2022.05.26 |
---|---|
[Tip] Windows 실시간 보호 완전히 끄기 (0) | 2022.05.09 |
[Tip] MetaSploit 및 msfVenom 이용한 백도어 및 악성프로그램 (0) | 2022.03.17 |
[Tip] 버프슈트(BurpSuite) 설정 저장 (1) | 2022.03.07 |