반응형

 

μ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