Digital Forensics/Windows2019. 10. 7. 22:05
반응형

참고: μTorrent P2P 클라이언트 포렌식

https://articles.forensicfocus.com/2018/11/02/forensic-analysis-of-the-%CE%BCtorrent-peer-to-peer-client-in-windows/

 

Forensic Analysis Of The μTorrent Peer-to-Peer Client In Windows

by Michael R. Godfrey The μTorrent software client is the most popular BitTorrent peer-to-peer software application worldwide [1]. Contraband files such as copyrighted movies and music, child porno…

articles.forensicfocus.com

 

 

μTorrent Web 포렌식

 

μTorrent는 BitTorrent P2P 프로그램 중 가장 유명한 토렌트 클라이언트다.

μTorrent는 윈도우, 맥, 리눅스, 안드로이드 및 탈옥된 iOS에서 사용 가능하다.

μTorrent를 실행하는 컴퓨터는 외부장치(iOS, Android, USB 메모리 등)와 페어링하여 사용 가능하다.

 

BitTorrent는 트래커를 사용하여 클라이언트가 'seed'라는 피어를 찾을 수 있도록 한다.

BitTorrent 프로토콜을 사용하면, 하나의 노드에서 파일을 다운로드하는 대신 

호스트 풀(swarm)에 참여하여 서로 컨텐츠를 업로드하고 다운로드 할 수 있다.

 

seed는 배포되고 있는 전체 파일을 가진 노드이다.

파일을 배포하려는 사용자는 먼저 작은

토렌트 디스크립터 파일(.torrent 파일: 오직 메타데이터만 포함됨)을 만들어야 한다.

.torrent 파일에는 특정 트래커(tracker) 정보가 포함되는데,

이 트래커는 일종의 서버로, 어떤 피어와 'seed'가 배포되고 있는 전체 파일을 가지고 있는지 추적하는 기능을 한다.

 

.torrent 파일을 BitTorrent 클라이언트에서 불러오면, DHT(Distributed Hash Table) 통신기능을 통해 

다른 BitTorrent 노드(피어 또는 seed)들과 연결할 수 있다.

배포되는 파일은 여러 조각들로 나뉘는데, 각 조각을 받은 피어들은 다시 해당 조각의 새로운 배포자가 된다.

각 조각들은 SHA-1 암호화 해시로 보호된다.

BitTorrent 클라이언트는 완전한 파일을 얻기 위해 어떤 조각들이 필요한지 식별한다.

피어가 완전한 파일을 다운로드 하면, 이제 배포 seed가 된다.

 

BitTorrent는 참가자의 익명성을 보장하지 않는다.

연결된 피어들의 IP주소는 클라이언트 유저인터페이스 또는 Windows의 netstat 명령어만으로도 쉽게 알 수 있다.

μTorrent 클라이언트를 포함한 BitTorrent의 표준 포트는 TCP/UDP 6881-6889  포트이다(6969는 트래커 포트).

 

 

μTorrent Web 클라이언트

μTorrent Web 클라이언트의 기본설치 주소 -> C:\Users\<User_Name>\AppData\Roaming\uTorrent Web\

다음 구성파일들(resume.dat, store.dat)은 설정정보가 저장된다.

settings.dat 파일은 토렌트를 1회 다운로드 받고 나면 생성된다.

utweb.log에는 에러로그 등이 저장된다.

μTorrent 클라이언트가 종료되면,

settings.dat 파일의 경우 dat 파일들은 백업되고, .bak가 새로운 파일 확장자로 붙는다.

store.dat 파일의 경우 dat-journal 파일이 생성된다.

resume.dat는 클라이언트가 종료될 때 상태 정보를 저장한다.

 

<Windows 10에 μTorrent Web 설치, 1회 실행 후 생성된 settings.dat>

// autostart = 0이면 자동실행 off, 1이면 자동실행 on

save_path = 새로운 다운로드시 파일을 저장하기 위해 사용자가 설정 한 위치

 

 

<Windows 10에 μTorrent Web 설치, 1회 실행 후 생성된 로그파일 utweb.log>

 

<Windows 10에 μTorrent Web 설치 후 프로그램 종료 전>

 

<Windows 10에 μTorrent Web 설치 후 프로그램 종료 후

: store.dat 크기 및 수정시각 변경됨, settings.dat 생성됨, .ses_state 생성됨>

 μTorrent Web과 달리,

μTorrent Classic 클라이언트에는 dat 파일(resume.dat, settings.dat, dht.dat, rss.dat)에 설정 및 로그 정보가 저장된다.

μTorrent Classic 클라이언트가 종료되면, dat 파일들은 백업되고, .old가 새 파일 확장자로 붙는다.

 

 

BEncode 에디터

.torrent 파일은 BEncode로 작성된다.

그 내용을 보려면, BEncode Editor와 같은 BEncode 디코딩 도구를 이용해야 한다.

※ μTorrent Classic 클라이언트는 구성파일(.dat)들도 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나,

 μTorrent Web은 settings.dat, .ses_state 외 구성파일(resume.dat, store.dat)는 sqlite로 작성되어 있어

DB Browser for SQLite 등으로 확인 가능하다.

 

<BEncode Editor로 본 test.torrent 파일의 내용>

// announce = 트래커 사이트의 url

info = .torrent 파일에 포함된 각 파일의 정보

-> length = 파일크기(바이트 수),

path = 파일이름,

name = 토렌트 이름(.torrent 파일 자체의 이름과 구분)

 

// announce-list = 해당 .torrent 파일에 대한 모든 트래커 url 목록

 

<BEncode Editor로 본 .ses_state 파일의 내용>

// μTorrent Classic 클라이언트의 dht.dat(Distributed Hash Table 네트워크에 연결시 필요한 정보가 저장됨)

와 유사한 값을 저장하는 것으로 아래와 같이 추정되나, 구글링으로 관련 문서 확인이 불가하였음

(- .ses_state 파일에서 값들이 정확히 의미하는 바를 아시는 분은 댓글로 알려주시면 정말 감사하겠습니다.)

 

// μTorrent Web 클라이언트 노드의 유니크한 ID

node-id = 0x796AFC5895B7545696E8D51A8D6A0A0C614197F400000000

 

// 클라이언트와 통신하고 있는 피어들의 총합은 561개

0x2EB66DBE9609 --(해석)--> 46.182.109.190:38409

 

위와 같은 해석이 맞는지 포트스캔으로 검증

 

 

<μTorrent Web의 'resume.dat' 파일 메모장으로 열기>

 

<μTorrent Web의 'resume.dat' 파일, DB Browser for SQLite로 열기>

 

<μTorrent Web의 'store.dat' 파일 메모장으로 열기>

 

<μTorrent Web의 'store.dat' 파일, DB Browser for SQLite로 열기

: μTorrent Web 설치시각, 마지막 실행시각 등 확인 가능>

// store.dat 파일의 store 테이블에서 source_ip 확인 가능

 

 

μTorrent Web을 통한 파일 다운로드

test.torrent 실행시 'μTorrent Web'을 통해 파일 전체가 다운로드 된다.

 

<μTorrent Web 설정화면>

 

 

μTorrent Web 관련 윈도우 레지스트리 아티팩트

μTorrent Classic 클라이언트μTorrent의 설치와 사용과 관련된 다음과 같은 레지스트리를 찾을 수 있다.

1. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Uninstall\uTorrent

-> uTorrent 버전 및 설치장소, 레지스트리 키 마지막수정시각 확인 가능함 (= uTorrent 설치시각)

 

2. ntuser.dat\Software\BitTorrent\uTorrent

-> 레지스트리 키 마지막수정시각 확인 가능함 (= uTorrent 설치시각)

 

3. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ FileExts\.torrent\OpenWithList

-> BitTorrent 멀티플 클라이언트가 설치된 경우, 아티팩트 확인됨. 지정된 프로그램 순서가 그 값(value)으로 보여짐

 

4. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ RecentDocs\.torrent

-> 최근 토렌트 파일이 접근된 경우, 아티팩트 확인됨

 

5. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ OpenSavePidlMRU\torrent

-> 토렌트 파일이 열렸거나 윈도우 대화창을 통해 저장된 경우, 아티팩트 확인됨

 

6. usrclass.dat\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

-> 프로그램 실행시 윈도우에서 프로그램 이름 등 저장됨. 토렌트 실행된 경우 아티팩트 확인됨

 

 

μTorrent Web은 기존 μTorrent Classic 클라이언트와는 달리 아래와 같은 레지스트리키만 확인된다.

1. IE8부터 쿠키(cookie, 최대 4KB 데이터 저장 가능)의 추가된 기능인 Domstorage(최대 10MB 저장 가능)

 

2. usrclass.dat\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

-> 프로그램 실행시 윈도우에서 프로그램 이름 등 저장됨. 토렌트 실행된 경우 아티팩트 확인됨

아래와 같이 프로그램 이름 및 설치주소 외 시간정보 등 확인 불가함

 

3. 컴퓨터\HKEY_CLASSES_ROOT\Magnet\DefaultIcon

-> 토렌트 배포수단에는 위에서 기술한 seed 파일을 이용한 방법과 마그넷(magnet) 주소를 이용한 방법이 있음

이러한 마그넷 주소를 이용한 경우 기본 실행프로그램 설정 아이콘이 저장됨

(참고: 마그넷 주소를 이용한 경우 seed 파일과는 달리

1) 통상 트래커 정보가 없어 다운로드의 시작이 느리고(트래커 주소 추가기능도 존재하므로 이런 경우 차이 없음),

2) 다운로드 시작 전에는 파일정보를 알 수 없으며,

3) 비공개 토렌트의 경우 트래커 정보가 없어 마그넷 주소로는 다운로드 불가함)

 

4. 컴퓨터\HKEY_CLASSES_ROOT\Magnet\shell\open\command

-> 마그넷 주소를 이용한 경우 기본 실행프로그램 커맨드가 저장됨

 

 

 

μTorrent Web이 나온지 얼마 되지 않아, 구글링해봐도 정리된 게 없네요.. 

블로그에 기재한 내용 중 틀린 점들 알려주시면, 감사하겠습니다.

수정하도록 하겠습니다.

(첩보) &mu;Torrent Web 분석_기술문서.pdf
0.63MB

μTorrent Web 분석 관련 좋은 문서나 블로그 등 공유해주시면 감사하겠습니다.

반응형
Posted by CCIBOMB