반응형

 

μTorrent Web* 분석 기법

* 2018년 개발된 웹브라우저 기반 토렌트 클라이언트 프로그램

 

I. 최근 불법촬영물 · 아동음란물 범죄동향

최근 불법촬영물·아동음란물의 유포 및 소지자 검거시, 피압수자의 PC에서 μTorrent Web이 활용된 흔적이 다수 발견됨

μTorrent Web은 기존 프로그램(μTorrent Classic) 형식에서 웹 형식으로 바뀐 것으로, 다운로드를 하는 동안에도 스트리밍 형식으로 바로 영상을 볼 수 있음

기존 프로그램은 다운로드 완료시에만 해당 동영상 플레이가 가능한 점에 비추어 볼 때, 앞으로 많은 사용자들이 활용할 것으로 예상됨

 

II. μTorrent Web 분석방법 공유 필요성

μTorrent Web 개발사(BitTorrent Inc.)에서는 사용흔적을 확인할 수 있는 포렌식 분석 관련 문서는 제공하지 않음

2019. 10. 10. 현재까지 Google에서 μTorrent Web’ 포렌식 관련 문서 및 웹페이지는 전혀 확인되지 않음(한글, 영문 포함)

테스트를 통해 μTorrent Web 설치 및 실행시, 남겨지는 아티팩트 등을 역으로 추정하는 방법으로 포렌식을 해야하므로 정보공유가 필수적임

 

III. μTorrent, BitTorrent의 특징 및 원리

【 μTorrent의 특징

BitTorrent P2P 프로그램 중 가장 유명한 토렌트 클라이언트

윈도우, , 리눅스, 안드로이드 및 탈옥된 iOS에서 사용 가능함

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

 

BitTorrent의 원리

BitTorrent는 트래커를 사용하여 클라이언트가 'seed'라는 피어(peer)를 찾을 수 있도록 함

BitTorrent 프로토콜을 사용하면, 하나의 노드에서 파일을 다운로드하는 대신 호스트 풀(swarm)에 참여하여 서로 컨텐츠를 업로드/다운로드 할 수 있음

파일을 배포하려는 사용자는 먼저 작은 토렌트 디스크립터 파일(.torrent 파일: 오직 메타데이터만 포함됨)을 만들어야 함

.torrent 파일을 BitTorrent 클라이언트에서 불러오면, DHT(Distributed Hash Table) 통신기능을 통해 다른 BitTorrent 노드(피어 또는 seed)들과 연결할 수 있음

배포되는 파일은 여러 조각들(SHA-1 암호화 해시로 보호됨)로 나뉘는데, 각 조각을 받은 피어들은 다시 해당 조각의 새로운 배포자가 됨

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

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

 

BitTorrent의 투명성

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

연결된 피어들의 IP주소는 클라이언트 유저 인터페이스(User Interface) 또는 Windowsnetstat 명령어만으로도 쉽게 알 수 있음

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

 

IV. μTorrent Web 분석 (포렌식적 접근)

【 μTorrent Web 기본 설치주소

C:\Users\<User_Name>\AppData\Roaming\uTorrent Web\

 

【 μTorrent Web 구성파일(설정정보 등 저장) 및 로그파일

구성파일들(settings.dat, resume.dat, store.dat)에는 μTorrent Web 설정정보가 저장되며, utweb.log에는 에러로그 등이 저장됨

resume.dat, store.dat는 설치 즉시 생성되나, settings.dat
μTorrent Web을 실행하여 파일을 1회 다운로드 받으면 생성됨

μTorrent 클라이언트가 종료되면, settings.dat 파일은 백업되고 .bak 새로운 파일 확장자로 붙으며, store.dat 파일은 dat-journal 파일이 생성됨. resume.dat는 클라이언트가 종료될 때 상태 정보를 저장함

※ μTorrent Web과 달리, μTorrent Classic에서는 dat 파일(resume.dat, settings.dat, dht.dat, rss.dat)에 설정 및 로그 정보가 저장됨. μTorrent Classic 클라이언트가 종료되면, dat 파일들은 백업되고, .old가 새 파일 확장자로 붙음

 

BEncode 에디터를 활용한 분석

BEncode(B-encode) : P2P 파일 공유 시스템인 BitTorrent에서 구조화된 데이터를 저장하고 전송하기 위해 사용되는 인코딩 방식

μTorrent Web의 경우, .torrent 파일, settings.dat 파일, .ses_state 파일이 BEncode로 작성되어 BEncode 디코딩 도구를 이용해야 함

μTorrent Classic은 구성파일(.dat)들이 모두 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나, μTorrent Websettings.dat, .ses_state 외 구성파일(resume.dat, store.dat)sqlite로 작성됨

BEncode 디코딩 도구로는 BEncode 에디터* 등이 있음

다운로드 주소 : https://sites.google.com/site/ultimasites/bencode-editor

 

BEncode Editor - Ultima's Projects

BEncoding is a data encoding scheme used primarily in the BitTorrent world. Because BEncoded files can contain binary data, and because of some of the intricacies involved in the way binary strings are stored, it is often not safe to edit such files in tex

sites.google.com

 

.torrent 파일 분석 by BEncode Eidtor

.torrent 파일은 BEncode로 작성되므로 BEncode Editor로 디코딩 하여 확인 가능함

해당 .torrent 파일에 대한 모든 트래커 사이트의 URL, 파일크기, 파일이름, 토렌트 이름 등이 저장됨

 

settings.dat 파일 분석 by BEncode Eidtor

◦ μTorrent Websettings.dat 파일은 프로그램 1회실행 후 생성됨

settings.dat 파일은 μTorrent Web의 환경설정 데이터를 저장함

자동실행 여부, 새로운 다운로드 시 파일저장 위치 등 확인가능함

 

.ses_state 파일 분석 by BEncode Eidtor

◦ μTorrent Web.ses_state 파일은 μTorrent Classic에서 resume.datpeer6 필드 또는 dht.dat(Distributed Hash Table 네트워크에 연결시 필요한 정보가 저장)와 유사한 기능을 하는 것으로 추정

nodes(l)[561]에서 ‘561’μTorrent Web과 통신하는 피어(peer)들의 총합을 의미하며, 561개의 각 Binary값은 IP주소:Port번호를 의미하는 것으로 판단됨

예를 들어, nodes(l)의 첫 번째 Binary값인 ‘0x2EB66DBE9609’IP주소 46.182.109.190, Port번호 38409를 의미함

 

resume.dat 파일 분석

◦ μTorrent Classicresume.dat 파일은 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나, μTorrent Websqlite로 작성됨

◦ μTorrent Classicresume.dat 파일은 μTorrent 종료시 상태정보를 저장하였음. 예를 들어, 지금까지 다운로드한 파일 크기(bytes), 마지막으로 파일을 공유한 시각 등 각종 시간정보 및 특히 ‘peer6’ 필드 정보*를 저장함

* 연결된 다른 μTorrent 클라이언트들의 IP주소 및 포트번호를 저장하는 필드

μTorrent WebTorrent 테이블 내 INFOHASH라는 마그넷 해시 코드(Magnet Hash Code)*만 저장됨

* 토렌트 배포수단에는 위에서 기술한 1) seed 파일을 이용한 방법과 2) 마그넷(magnet) 주소를 이용한 방법이 있음. 마그넷 해시 코드는 마그넷 주소(마그넷 링크)의 주요 구성부분임
(마그넷 주소 예시. magnet:?xt=urn:btih:마그넷 해시코드)

마그넷을 이용한 경우와 seed 파일을 이용한 경우 차이점 : 1) 통상 트래커 정보가 없어 다운로드의 시작이 느리고(트래커 주소 추가기능도 존재하므로 이런 경우 차이 없음), 2) 다운로드 시작 전에는 파일정보를 알 수 없으며, 3) 비공개 토렌트의 경우 트래커 정보가 없어 마그넷 주소로는 다운로드 불가함

본 보고서의 .torrent 파일을 마그넷 주소로 변환 가능하며, 역으로 마그넷 주소를 .torrent 파일로 변환도 가능함
(https://grep.kr/torrent 등 온라인 웹사이트를 이용하여 변환 가능)

 

store.dat 파일 분석

μTorrent Webstore.dat 파일은 sqlite로 작성되었으며, μTorrent Classic에서는 없었던 구성파일임

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

μTorrent Web의 공인 IP주소 확인 가능함

그 밖에 μTorrent Classicresume.dat 파일에 저장되던 시간정보 등이 UNIX Time 형식으로 저장됨
(https://epochconverter.com/ 등 웹사이트를 이용하여 GMT, KST로 변환 가능)

 

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

μTorrent Web은 기존 μTorrent Classic 클라이언트와는 달리 다음 레지스트리키만 확인됨

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

프로그램 실행시 윈도우에서 프로그램 이름등 저장하는 MuiCache

- 토렌트 실행된 경우 아티팩트 확인됨

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

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

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

 

비교 : μTorrent Classic 클라이언트 관련 윈도우 레지스트리 아티팩트

1. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Uninstall\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

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

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

반응형
Posted by CCIBOMB
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