专栏名称: 信息时代的犯罪侦查
一切行为皆有犯罪的可能性,而在信息时代,这一过程变得更加复杂或者隐晦了。本号致力于传播打击和预防犯罪的手段、方法、理念,并希望能够推动侦查犯罪的机制变革,而这需要了解方方面面的信息。
目录
相关文章推荐
营养师顾中一  ·  这2种「调料」,开封之后必须放冰箱! ·  昨天  
51好读  ›  专栏  ›  信息时代的犯罪侦查

μTorrent对等客户端的数字取证分析

信息时代的犯罪侦查  · 公众号  ·  · 2018-11-04 12:09

正文

案例

知识

随笔

声音

其他


编者按

针对 P2P客户端 的取证分析资料比较少。笔者从国外论坛上找到此篇,用蹩脚的英语翻译了一下,不知道合不合大家的胃口。

原作者: Michael  Godfrey

注: 此P2P,非互联网P2P金融,想一想“快播”……

μTorrent软件客户端是全球最受欢迎的BitTorrent点对点软件应用程序。诸如受版权保护的电影和音乐,儿童色情和盗版内容等违禁品文件经常通过点对点(P2P)文件共享协议BitTorrent获取。该研究将包括μTorrent客户端的数字取证分析,特别是utorrent.com上发布的免费版本(3.5.3 for Windows)。 与其他的P2P客户端有所不同, μTorrent客户端较好的保持了P2P协议原生态。它与BitTorrent(bittorrent.com)都归BitTorrent,Inc所有。


μTorrent适用于Windows,Mac,Linux,Android和iOS(仅适用于越狱设备)。运行μTorrent的计算机可以与外部设备配对进行查看(iOS和Android移动设备,USB存储设备和某些流媒体设备)。


用户可以 远程安全地管理 在计算机上运行的μTorrent。然后可以从另一台配备网络浏览器的计算机或移动设备访问他们的μTorrent客户端。


BitTorrent使用跟踪器允许客户端找到对等物,称为 种子 。 BitTorrent协议不是从单个源(节点)下载文件,而是允许用户加入一群主机来上传和下载内容。种子是拥有整个文件的节点。想要分发文件的用户必须首先创建一个只包含元数据且具有.torrent文件扩展名的小型torrent描述符文件。 .torrent文件通过一个或多个Torrent网站(称为Indexer)分发,允许用户搜索特定内容并下载适用的.torrent文件。 .torrent文件包含特定的跟踪器信息。跟踪器是一种服务器,用于跟踪哪些对等体和种子具有要分发的文件片段。为“无跟踪”种子创建分布式哈希表(DHT)方法使得跟踪器变得多余。


将.torrent文件加载到其BitTorrent客户端的用户可以通过BitTorrent的DHT通信功能在其他BitTorrent节点(对等体或种子)之间建立连接。正在分发的文件被分成段(片段),因为每个新对等体接收新片段,该对等体现在成为该片段的分发者。每个部分都受加密哈希(SHA1)保护。 BitTorrent客户端将识别需要哪些部分才能获得完整的文件。一旦对等体下载了完整的文件,它就会成为分发种子。


BitTorrent不保证其参与者的匿名性 。可以通过客户端用户界面或netstat Windows命令轻松识别连接对等体的IP,该命令将显示连接的对等体和种子。 BitTorrent的标准端口(包括μTorrent客户端)是TCP / UDP端口6881-6889(跟踪器端口为6969)。


μTorrent客户端


默认安装将μTorrent客户端的所有文件放在用户的应用程序数据目录中,如下所示: C:\ Users \ \应用程序数据\漫游\ uTorrent的\

以下配置文件包含有关应用程序设置和历史的相关信息:


resume.dat

settings.dat

dht.dat(分布式哈希表)

rss.dat


如果客户端关闭,则备份上述DAT文件并附加.old作为新文件扩展名。以下图形是在Windows 10中进行全新安装后的μTorrent目录。安装后,但在启动之前,应用程序显示在左侧。右边是首次启动μTorrent后的应用程序文件,将TEST.torrent添加到客户端,然后将其关闭。

BEncode编辑器

DAT文件和.torrent文件是用BEncode编写的。因此,要查看内容,必须使用能够解码BEncode文件的工具,例如BEncode Editor。


在BEncode编辑器中查看这些文件时,将显示数据,其中的指示符显示每个标题旁边的数据类型:


字节串:(b)

整数:(i)(基本10个ASCII字符)

列表:(l)

字典:(d)

括号括起来的数字:[48],表示基于数据类型的数量(字节字符串,整数,列表或字典):

字节字符串:字节数或字符数

整数:位数

列表和词典:列表或词典中的项目数

以下是使用BEncode Editor查看的settings.dat文件的内容。



μTorrentDAT文件


settings.dat

文件 包含设置和配置数据。


autostart =:0 = OFF,否则将无法进入

ct_hist [#]:此客户端创建的.torrent文件数(括号内),包括用户用来创建.torrent文件的文件/文件夹的路径和名称; 知识和意图的良好指标; 可能指向外部媒体或其他存储驱动器/目录位置

born_on = 13036184115:轻量级目录访问协议(LDAP)时间或FILETIME,自1601年1月1日起100纳秒间隔的数量 - 必须在EpochConverter中添加7个尾随零

设备:此处列出的配对设备包括设备名称,USB VID和PID以及序列号

auto_transfer =:0 = OFF / 1 = ON

usb_id:包含USB设备供应商ID(VID)和产品ID(PID),以及USB设备电子序列号和可能的设备友好名称


下图显示了连接两个设备的μTorrent设备界面:iPhone / iPod和Apple iPhone 3GS。

dir_last条目是当用户添加相关的.torrent文件并选择“选择保存目录”选项时,用户选择下载Torrent文件的目录(见下图)。 对于以这种方式添加的每个新.torrent文件,都会更新dir_last条目。

* dir_active_download:用户设置的位置,用于保存新的下载

* dir_autoload:用户设置的位置自动加载Torrent文件

* dir_completed_torrents:用户设置的位置,用于存储已完成的下载

* dir_completed_torrents:用户设置的位置,用于存档已完成的.torrent文件

* dir_torrent_files:用户设置的位置,用于存储客户端下载的torrent文件


(*)仅当用户使用“首选项”菜单更改了特定目录的默认位置时,才会显示上述设置(请参见下图),否则不会出现任何条目。

runs_since_born:自安装以来程序启动和关闭的次数

runtime_since_born_secs:程序运行的秒数

search_list:μTorrent工具栏中使用的Torrent搜索站点列表,可以由用户添加,导致用户的Web浏览器加载搜索站点,因此请查看Internet History

settings_saved_systime:上次更改客户端设置时,UNIX时间


远程访问


配置为远程访问的系统将允许用户使用Web界面控制在远程系统上运行的uTorrent客户端。 要启动远程访问,用户将导航到https://remote.utorrent.com并输入以前配置的计算机名称和密码。 在进行身份验证后,将向用户显示一个Web界面,该界面与远程系统上的uTorrent客户端状态几乎完全相同。 下图描绘了远程访问Web界面(顶部)和实际的uTorrent客户端(底部)。


以下是settings.dat中更相关的条目,如果客户端设置为通过操作,将出现

使用首选项>远程菜单设置进行远程访问连接。 必须提供唯一的名称

任何密码都将被接受。 下图显示了启用的远程访问设置:


upnp.external_ip:安装客户端的计算机的最后一个外部(可路由)IP将存储在此处; 见下图

upnp_cached_host:本地网络上IGDdevicedesc.xml文件的通用即插即用(upnp)URL; 将包括本地网络网关IP和端口; 用于促进网络连接


upnp.external_ip:安装客户端的计算机的外部(可路由)IP

webui.ssdp_uuid:通用唯一标识符(最后6个字符代表网络接口的MAC地址)

webui.ucinnect_hashword:远程访问登录密码的Salted SHA-1哈希

webui.ucinnect_username:用户在“首选项”>“远程”中分配的计算机的名称



resume.dat


在客户端关闭时存储状态信息


added_on =:Time Torrent已添加到客户端(UNIX时间)

completed_on =:完全下载或创建Time Torrent(UNIX时间)

created_torrent =:1 =客户端创建了torrent,0 =客户端没有创建torrent

download_url =:如果客户端使用“从URL添加torrent”功能

downloaded =:到目前为止下载的文件的字节数

last_seen_complete =:上次客户端正在播种整个文件(UNIX时间)

last_active =:此客户端上次播放或共享文件的时间(UNIX时间)

path [##] =:保存传入文件的路径,括号中此Torrent的文件数

runtime =:时间文件已在客户端下载(或下载后的播种时间)

seedtime =:客户端已播种文件的秒数

started =:客户端上次退出时的文件状态(0 =已停止,1 =强制启动,2 =已启动,3 =正在运行/未下载)

uploaded =:该特定文件的上传(共享)字节数

uploaded =:该特定文件的上传(共享)字节数

peers6 [##] =:在客户端退出时共享此文件的IP和端口(包括客户端的本地和外部IP,IPv4和IPv6),请参阅下面的转换数据以识别IP地址的过程。


使用以下过程查看每个对等方的IP地址:


o resume.dat文件的peers6字段包含客户端与之通信的每个对等方的IP地址,以便通过BitTorrent协议参与内容共享。

o在resume.dat文件的peers6字段中,选择“Raw BEncoded Data”和“as Binary”的显示选项。

o从十六进制转换为十进制以获取IP。

o最后4个十六进制字符代表端口(Big Endian)。

o按照以下步骤翻译数据,以便识别每个对等方的IP地址。


打开peers6条目旁边的数据字段:



将此十六进制数据复制并粘贴到Notepad ++中,然后创建一个每行36个字符的新行。 每行显示IPv6(如果不存在IPv6则全为零),后跟IPv6端口(如果没有IPv6,则为FFFF),后跟IPv4(8个字符)和IPv4端口(4个字符):



字节字符串(36个字符):00000000000000000000FFFFC0A80177B0E3


IPv4 IP和端口:FFFFC0A80177B0E3

IPv4地址(从十六进制转换为十进制):


C0A80177:E3B0

C0 = 192

A8 = 168

01 = 1

77 = 119


端口(Little Endian):E3B0 = 58,288(端口)

转换:192.168.1.119:58288


dht.dat


包含客户端在连接到分布式哈希表(DHT)网络以共享联系信息时使用的数据,因此从事下载相同文件的用户可以相互发现。此文件还存储客户端面向外的IP地址。这是一个有用的工件,因为大多数Windows工件只存储本地不可路由的IP地址。请务必查看dht.dat.old,因为这是该用户上次关闭μTorrent客户端时的文件的先前版本。


age:上次更新的时间,或客户端关闭时(UNIX十进制),将客户端的IP与日期/时间相关联的良好指示。

ip:以十六进制表示客户端的可路由IP地址(由客户端的服务提供商分配),按照以下步骤转换数据以识别面向外部的客户端IP。


双击右侧的文本数据(例如:G>#!):

选择显示选项:“Raw BEncoded Data”和“as Binary”:


将hex转换为十进制:


47= 71

3E= 62

23= 35

21 =33

转换IP:71.62.35.33


在上面的测试示例中,访问网站www.whatismyipaddress.com公开了测试Windows计算机系统的正确翻译的IP地址,而不仅仅是本地IP。


nodes:包含客户端正在与之通信的每个对等方的IP地址(IPv6和IPv4),以便通过BitTorrent协议参与内容共享。 要转换数据,请按照以下步骤操作。


26字节(52个十六进制数字):

要确定客户端正在与之通信的对等端的总数,请将括号中的数字(在下面的示例中为10036)除以26(字符串中的十六进制字节),以确定数据中包含的IP地址总数(386) 下例中的IP) - 显示类型“Binary / as Binary”,如下所示。


id(b)[20] =:包含客户端节点的唯一ID,20个十六进制字符对。 要显示数据,请选择:“Raw BEncoded Data”和“as Binary”:


Torrent文件

要使用BitTorrent协议分发文件,需要创建.torrent文件并播种。 在客户端中,可以使用以下过程创建.torrent文件。


在μTorrent中,选择FILE,创建Torrent

选择单个文件或包含将与torrent文件关联的文件的目录的内容

添加或更改种子跟踪器URL信息

根据需要添加有关torrent内容的任何评论

检查开始播种

选择创建

提供torrent文件的名称,并确保文件类型是Torrent文件:

需要BEncode查看器(BEncode Editor)才能查看.torrent文件的内容。


宣布:跟踪网站的网址

announce-list:一个新密钥,包含此torrent的所有跟踪器的URL列表


o将按顺序处理等级的通知

o在客户端进入下一层之前,必须检查每个层中的所有URL

o与跟踪器的第一次成功连接将导致它移动到层的前面







请到「今天看啥」查看全文