sitelink1 https://blogger.pe.kr/617 
sitelink2  
sitelink3  
extra_vars6  

일을 하다보면 이따금씩 패킷을 캡쳐하고 내용을 확인해야할 때가 있습니다.

가장 대표적인 경우가 로그인 페이지 및 개인정보 입력/수정 등의 페이지가 암호화 통신을 하는지 확인해야 할 때 입니다.

웹브라우저로 확인할 때는 HTTPS 등 암호화 통신 프로토콜이 적용되어 있는지 여부만 봐도 암호화 전송 여부를 알 수 있지만 모바일 앱, 특히나 모바일 웹 페이지가 아닌 바이너리로 개발되어 있을 때는 암호화 통신 여부를 쉽게 확인하기가 어렵습니다.  

결국 모바일 앱의 통신 패킷을 캡쳐하여 .pcap 파일로 저장한 뒤 PC로 불러오고 와이어샤크 등의 패킷 분석 도구로 패킷을 열어봐야 합니다.

그 과정을 포스팅 합니다.

안드로이드에서 실행되는 앱의 통신 패킷 캡처하기

사례는 모바일 웹으로 들겠습니다.

실제로는 모바일 앱이나 웹 모두 관계 없습니다.

앱을 실행시켜 로그인 창까지 열어 놓습니다.

000.jpg

 

스마트폰에서 접속한 뽐뿌 모바일 웹페이지

안드로이드의 경우 홈버튼을 눌러 홈으로 간 뒤 tPacketCapture와 같은 안드로이드 용 패킷 스니핑 앱을 실행시킵니다.

이 앱을 먼저 설치하고 실행시켜 두어도 무방합니다.

tPacketCapture의 경우 루팅없이 동작하는 앱입니다.

001.jpg

 

아래에 tPacketCapture 앱이 보인다.

tPacketCapture의 경우 실행 후 MAIN 탭으로 이동하면 아래 화면과 같이 CAPTURE 버튼이 보입니다.

CAPTURE 버튼을 누르면 패킷스니핑이 시작되고 캡쳐된 패킷은 .pcap 파일로 저장되기 시작합니다.

002.jpg

 

스마트폰의 스니핑앱 : tPacketCapture

CAPTURE 버튼이 RUNNING 버튼으로 바뀌고 Current File: 항목에 패킷이 캡쳐되어 저장되는 파일이 보입니다.

이 상태에서 이전에 실행해 둔 앱의 로그인 화면으로 갑니다.

작업관리자를 이용해도 되고 앱 전환 버튼을 눌러 이동해도 됩니다.

003.jpg

 

tPacketCapture 앱 스니핑 실행 중

로그인 화면에서 아이디와 비밀번호를 입력하고 로그인을 합니다.

004.jpg

 

모바일 웹 페이지에서 로그인

제가 즐겨 들어가는 뽐뿌라는 커뮤니티의 경우 로그인을 완료하면 아래 화면처럼 초기화면이 보입니다.

이 상태가 되면 tPacketCapture 앱에서 로그인 시 전송된 아이디와 패스워드가 캡쳐되었을 겁니다.

암호화가 되었다면 패킷을 열어봐도 아이디와 패스워드가 보이지 않을 것이고 암호화가 되지 않았다면 아이디와 비밀번호가 그대로 노출되어 보일 것입니다.

005.jpg

 

로그인 완료

이제 tPacketCapture에서 스니핑을 중단해야 합니다.

아래 화면처럼 화면 상단을 쓸어내려 알림창을 열고 적색 상자에 보이는 tPacketCapture 활성화 이벤트를 터치합니다.

006.jpg

 

tPacketCapture 상태

다음에 나타나는 tPacketCapture 창에서 “연결 끊기”를 선택합니다.

007.jpg

 

tPacketCapture 스니핑 중지

tPacketCapture로 전환하여 FILE LIST 탭으로 이동하면 패킷이 저장된 .pcap 파일이 보입니다.

약 304KB의 패킷이 캡쳐되었습니다.

디렉토리를 확인하여 위의 파일을 구들드라이브, 네이버 클라우드 혹은 USB연결 등을 통해 PC로 이동시킵니다.

008.jpg

 

스니핑되어 저장된 pcap 파일

PC에서 패킷 내용 확인하기

PC에서 Wireshark(와이어샤크)를 설치하고 실행합니다.

와이어샤크는 오픈소스 패킷 스니핑 유틸리티입니다.

포터블버전도 있습니다만 Winpcap 드라이버를 별도로 설치해야 하는 불편함이 있습니다.

어쨌든 와이어샤크를 설치하고 실행한 뒤 아래 화면과 같이 안드로이드에서 PC로 옮긴 .pcap 파일을 엽니다.

009.jpg

 

WireShark에서 pcap 파일 열기

.pcap 파일을 열면 자동으로 아래 화면과 같이 내용을 분석해 보기 쉽게(?) 표시해 줍니다.  

이제 앞에서 입력한 아이디와 비밀번호를 찾아봐야겠죠 ? 아래에 보면 No. 에 표시된 각 번호가 하나의 패킷이라고 생각하면 됩니다.

잠시 통신을 했을 뿐인데도 패킷의 갯수는 수백개가 됩니다.

각각의 패킷 번호를 클릭하여 화면 맨 아래의 16진수와 아스키코드가 보이는 부분을 확인하는 것은 매우 힘들죠.

그래서 검색 기능을 이용해야 합니다.

010.jpg

 

스니핑된 pcap 파일을 연 화면

검색은 대부분의 윈도 애플리케이션이 그렇 듯 Ctrl + F 를 누르면 됩니다. Ctrl + F 를 누르면 아래 화면의 적색 상자가 표시됩니다.

각 옵션을 아래와 같이 선택합니다.

그리고 “Find” 버튼 옆의 작은 텍스트 상자, 아래 화면에서는 초록색으로 표시된 상자에 찾고자 하는 문자열을 입력합니다.

먼저 앞에서 로그인 창에서 입력한 ID 혹은 password를 입력하고 “Find” 버튼을 눌러봅니다.

011.jpg

 

패킷 내용 검색

Find 버튼을 누르면 현재 열고 있는 .pcap 파일의 패킷에서 문자열 기준으로 검색한 뒤 발견된 곳으로 이동해 줍니다.

만약 찾을 수 없다면 위 화면의 맨 하단 적색상자와 같이 “No packet contained that string in its converted data.” 라는 메시지를 보여줍니다.

즉 plain text 인 id 혹은 password 가 cipher text로 암호화되었기 때문에 찾지 못하는 것입니다.

암호화 하지 않고 전송하는 경우 노출되는 id와 password

만약 로그인 페이지나 개인정보를 수정하는 페이지에서 id , password 와 기타 개인정보를 입력한 뒤 로그인 혹은 저장 버튼을 눌렀을 때 아래와 같이 id, password 와 개인정보가 보인다면 암호화하지 않고 네트워크를 통해 서버로 전송하는 것입니다.

아래 창의 적색 상자에 암호화 되지 않은 id, password가 그대로 노출되어 있습니다.

012.jpg

 

암호화 되지 않은 패킷에서 ID와 passwd 보기

이런 웹사이트는 접속 시 매우 주의를 요합니다.

PC가 있는 네트워크의 다른 컴퓨터나 웹 서버가 있는 네트워크의 다른 컴퓨터가 해킹되었을 때 id와 password는 물론 수정되는 개인정보 등을 해커가 모두 가로챌 수 있기 때문입니다.

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
» 모바일 앱(안드로이드) 패킷 캡쳐하고 와이어샤크로 확인하기 file 황제낙엽 2023.08.05 297
23 NTLMv1 황제낙엽 2021.08.31 266
22 WireShark 패킷 로그에서 발견되는 메세지들의 의미 황제낙엽 2021.07.05 5460
21 How to Flush DNS Cache Locally in Windows, macOS, & Linux file 황제낙엽 2021.07.01 37
20 DNS 관리 - TTL (Time To Live) 황제낙엽 2021.07.01 26
19 특정 포트가 오픈되어 있는지 확인하는 커맨드 명령어 황제낙엽 2021.06.11 30
18 Fiddler 프록시(Proxy) 설정하기 - 모바일 패킷 추적 (packet trace) file 황제낙엽 2021.03.26 71
17 wireshark로 패킷 헤더 확인하기 file 황제낙엽 2021.01.04 351
16 Stream index 란? 황제낙엽 2021.01.04 411
15 WireShark를 이용한 TCP/UDP 패킷 분석 secret 황제낙엽 2021.01.03 0
14 WireShark, 네트워크마이너(Networkminer) 를 이용하여 PCAP에 포함된 악성코드 여부를 판단하는 절차 알아보기 secret 황제낙엽 2021.01.03 0
13 WireShark를 이용한 ARP, ICMP, TCP, DHCP 캡처 및 분석하기 secret 황제낙엽 2021.01.02 1
12 repeater, hub, bridges, switches, router, VLAN(Virtual LAN) file 황제낙엽 2021.01.02 38
11 TCP Control Flag (TCP 제어 플래그 - FIN,ACK,SYN,URG,PSH,RST) file 황제낙엽 2020.12.31 131
10 TCP (Transmission Control Protocol, 전송 제어 프로토콜) file 황제낙엽 2020.12.31 25
9 L2, L3, L4, L7 스위치 file 황제낙엽 2020.12.24 471
8 피들러(Fiddler) AutoResponder file 황제낙엽 2020.11.04 126
7 L4 Sticky Session & Sticky Time 황제낙엽 2020.07.31 410
6 [ngrok] localhost 개발서버를 외부에 잠시 오픈 file 황제낙엽 2020.07.20 281
5 피들러(Fiddler) 활용 - binary Response 의 decode capture (응답데이터를 text string으로 저장) file 황제낙엽 2020.03.24 62