JHLBLUE
NoPE Proxy + Android/iOS 설정으로 Non-HTTP(TCP) 통신 확인하기 본문
준비
- Burp Suite + NoPE Proxy
NoPE Proxy는 Burp Suite의 Extensions에서 설치하거나, jar 파일을 다운로드 하는 방법 둘 다 사용 가능 - PCAPdroid(Android 한정)
Android 스마트폰은 NoPE Proxy 설정 이후 PCAPdroid 앱의 패킷 모니터링이 동작중인 경우에 패킷이 잡혔음 - 네트워크 설정
PC와 스마트폰은 동일한 네트워크에 연결되어야 함
- Burp Suite + NoPE Proxy
접속환경
- PC: Windows / 192.168.48.204
- Client: Android / 192.168.48.129
- Server: test.domain.com:8000
설정
Burp Suite를 실행할 PC의 IP주소 확인하기
Burp Suite을 관리자모드로 실행하기
NoPE Proxy에서 53번 포트로 DNS 서버를 실행하기 위해, Linux OS에서는 root 권한으로 실행해야 함.
Windows에서는 관리자 모드로 실행하지 않아도 사용이 가능한 것으로 보임NoPE Proxy의 인터페이스 세팅하기
- NoPE Proxy - Server Config 탭 안의 DNS Settings 영역에서 Current Ip Address에 PC의 IP주소가 출력되는 것을 확인
- Interface 입력란에 1번 단계에서 확인한 IP주소(192.168.48.204)가 출력되는 인터페이스의 번호를 입력
- 상단의 재생버튼을 클릭하여 DNS 서버 실행Custom Hosts file 설정하기
앱과 소켓통신을 수행하는 서버의 IP주소 및 도메인정보를 Custom Hosts file 영역에 입력한 뒤, 상단의 "Use the above 'DNS Response IP'..." 체크Non HTTP Proxy Settings 설정
Server Address: 실제 앱이 Non-HTTP 통신을 수행하는 서버의 주소(도메인 또는 IP주소)를 입력(예: test.domain.com)
Server Port: 서버의 통신 Port를 입력(예: 8000)
Listen Port: NoPE Proxy에서 통신을 받을 Port를 입력하며, 이 경우에는 Server Port와 동일한 값을 입력Android/iOS에서 DNS 서버 설정 적용
Android/iOS에서 DNS 서버 주소를 Burp Suite가 실행중인 PC의 IP주소(예: 192.168.48.204)로 설정PCAPdroid 앱 실행 및 모니터링 작동
원인은 잘 모르겠지만, PCAPdroid 앱을 실행해야 정상적으로 Non-HTTP 통신 패킷을 확인할 수 있었음TCP History 탭 확인
위의 설정이 완료된 후 앱을 실행하면 TCP History 탭에서 패킷내용 확인이 가능함
DNS 세팅 없이 사용하기(Android)
Android는 iptables 명령어를 사용할 수 있으므로, iptables의 DNAT 테이블에 설정을 추가하여 사용할 수 있음
# ruleset 추가 iptables -t nat -A OUTPUT -p tcp -d <Server IP> --dport <Server Port> -j DNAT --to-destination <Proxy Server IP><Proxy Listener Port> # ruleset 제거 iptables -D OUTPUT -t nat -p tcp -d <Server IP> --dport <Server Port> -j DNAT --to-destination <Proxy Server IP>:<Proxy Listener Port> # ruleset 확인 iptables -L -t nat
- iptables 명령어는 root 권한으로 실행해야 ruleset 추가 및 삭제가 가능하므로, 반드시 루팅된 폰에서 적용 필요
- 단말이 재부팅되면 iptables ruleset이 초기화되므로, 단말이 재부팅되었다면 다시 ruleset 적용이 필요함
'취약점진단' 카테고리의 다른 글
내가 쓸 frida 정리 (0) | 2024.07.23 |
---|