exitmap:tor出口中继节点扫描器-k8凯发游戏

exitmap:tor出口中继节点扫描器
作者:freebuf.com 发布时间:2017-01-25

工具简介

exitmap是一个基于python的tor出口中继节点扫描器,具有快速和模块化的特点。 exitmap模块执行在所有出口中继节点(的子集)上运行的任务。如果你有函数式编程的知识背景,可以把exitmap看作是tor出口中继节点的map()接口。

这些模块可以执行任何基于tcp的网络任务,例如获取网页、上传文件、连接到ssh服务器或加入irc频道(internet relay chat,互联网中继聊天,它是由芬兰人jarkko oikarinen于1988年首创的一种网络聊天协议)。

exitmap的实际功能是监测出口中继节点的可靠性。当然很多人会利用exitmap在tor项目的检查服务中检查误报情况,并发现恶意的出口中继节点。为exitmap开发新的模块也非常便捷,只需查看doc或目录中的hacking文件,或者查看其中一个现有模块即可。

exitmap使用stem为所有给定的出口中继节点创建线路,并且一旦tor向exitmap发出线路已建立的通知,exitmap就会为新建立的线路调用模块。模块可以是纯python脚本,也可以是可执行文件。对于可执行文件则需要用到torsocks工具(https://github.com/dgoulet/torsocks/)。

最后请注意exitmap是一个网络评估工具,对普通的tor用户没有用。tor项目正在定期运行该工具,过多的exitmap扫描只会导致额外的网络负载。exitmap之所以开源是因为有人可能会对其源代码和结构感兴趣。

安装

exitmap使用stem库(tor的python控制器库)与tor进行交互。安装stem的方式很多,最简单的应该是使用pip与现有的requirements.txt文件结合:

$ pip install -r requirements.txt

运行exitmap

exitmap所需的唯一参数是模块名称。例如,你可以通过以下方式运行exitmap的checktest模块:

$ ./bin/exitmap checktest

然后命令行输出将显示如何进行tor bootstrap,checktest模块输出和扫描摘要。如果你不需要3个hops,倾向于使用在静态的第一个hop之后的两个hops,请运行:

$ ./bin/exitmap --first-hop ccef02aa454c0ab0fe1ac68304f6d8c4220c1912 checktest

若在德国出口中继节点上运行同样的测试,请执行:

$ ./bin/exitmap --country de --first-hop ccef02aa454c0ab0fe1ac68304f6d8c4220c1912 checktest

如果要在线路创建之间暂停五秒钟以减少tor网络和扫描目标的负载,请运行:

$ ./bin/exitmap --build-delay 5 checktest

注意:

ccef02aa454c0ab0fe1ac68304f6d8c4220c1912是一个由瑞典卡尔斯塔德大学运行的出口节点,你可以自由使用。但是分配扫描负载时请尽量使用自己的出口中继节点。

若想看到exitmap的其它选项,请运行:

$ ./bin/exitmap --help

功能

exitmap包含以下模块:

testfds:测试某出口中继节点是否能够获取简单网页的内容。若不能则说明该出口中继节点可能没有足够可用的文件描述符(打开一个文件需要维护很多数据,不光是权限的问题,内核对每一个打开文件都分配了一个数据结构,而文件描述符则是指向这些数据结构的索引,内核可以通过一个文件描述符查到相应文件的数据)。

checktest:尝试发现tor项目检查服务中的误报。

dnspoison:尝试解析多个域名,并将接收到的dns a记录与预期记录进行比较。

dnssec:检测解析器不证实dnssec(dns安全扩展)的出口中继节点。

patchingcheck:检查是否存在文件篡改。

cloudflared:检查网站是否返回cloudflare的验证码。

rtt:测量从某出口到各个目的地的往返时间。

配置

默认状态下,exitmap会读取你的主目录中的.exitmaprc文件。该文件能够接受所有命令行选项,但是你必须用下划线代替减号。例如:

[defaults]

first_hop = ccef02aa454c0ab0fe1ac68304f6d8c4220c1912

verbosity = debug

build_delay = 1

analysis_dir = /path/to/exitmap_scans

测试

在提交代码合并请求之前,通过运行以下程序来确认所有配置均已通过测试:

$ pip install -r requirements-dev.txt

$ py.test --cov-report term-missing --cov-config .coveragerc --cov=src test

exitmap下载链接:https://codeload.github.com/nullhypothesis/exitmap/zip/v2016.04.21

若对exitmap的使用存在任何问题,可联系philipp winter phw@nymity.ch。


网站地图