Security Tech
MITM RELAY 를 활용한 TCP 패킷 변조
5rocks_
2025. 6. 30. 23:39
1. 개요
- HTS/MTS/CS 와 같은 프로그램은 서버와 TCP 통신
- TCP 통신은 일반적인 Proxy 도구로는 패킷 변조를 할 수 없음
- MITM RELAY 를 통해서 TCP 패킷 변조 진행
https://github.com/jrmdev/mitm_relay
2. 환경
- PC
- 192.168.45.246
- APP - 대상
- 192.168.45.114:1145
- MOBILE
- 192.168.45.114
3. 설정
- MOBILE, PC USB 연결 후 ADB 연결
- IPTABLES 룰 설정iptables -A OUTPUT -t nat -p tcp -d [대상 IP] --dport [대상 포트번호] -j DNAT --to-destination [PC IP]
iptables -A OUTPUT -t nat -p tcp -d 192.168.45.114 --dport 1145 -j DNAT --to-destination 192.168.45.246
- 로컬 시스템(모바일)에서 192.168.45.114:1145로 나가는 TCP 패킷의 목적지를 192.168.45.246로 변경하겠다는 의미
beyond1:/ # iptables -L -t nat
... ...
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 192.168.45.114 tcp dpt:1145 to:192.168.45.246
- iptables -A OUTPUT -t nat -p tcp -d 192.168.45.114 --dport 1145 -j DNAT --to-destination 192.168.45.246
- 로컬 pc로 들어오는 패킷을 프록시로 받아 목적지 대상 앱 까지 전송
python mitm_relay.py -l 192.168.45.246 -p 127.0.0.1:8080 -r tcp:1145:192.168.45.114:1145
[!] Server cert/key not provided, SSL/TLS interception will not be available. To generate certs, see provided script 'gen_certs.sh'.
[i] Webserver listening on 127.0.0.1:49999
[i] Client <> Server communications will be relayed via proxy http://127.0.0.1:8080
[+] Relay listening on tcp 1145 -> 192.168.45.114:1145
4. 테스트
STEP 1) TCP PACKET 테스트용 앱을 통해 "TCP PACKET REQUEST" 데이터 전송
STEP 2) PROXY 도구를 통해 해당 TCP 위변조 후 전송
STEP 3) 변조 한 값이 서버에 도착하였음을 확인