当您必须使用请求而不透露IP地址时,Tor非常有用,尤其是在进行网络抓取时。本教程将在python中使用包装器,以帮助您解决此问题。
什么是TOR? TOR是“洋葱计划”的缩写,“洋葱计划”是美国海军使用的全球服务器网络。TOR在使人们能够匿名浏览Internet的同时,还充当着非盈利组织的角色,致力于研究和开发在线隐私工具。
TOR可能意味着两件事
您安装在计算机上以运行TOR的软件管理TOR连接的计算机网络 简而言之,TOR允许您通过其他几台计算机路由Web流量,以使第三方无法将流量追溯到用户。任何尝试查找流量的人都会在TOR网络上看到随机的不可追踪节点。
安装TOR TorRequest将TOR作为依赖项。首先安装TOR。
这些说明适用于Ubuntu / Debian用户。要在Windows或Mac上安装,请在此处检查。
sudo apt-get更新 sudo apt-get安装 重新启动TOR服务
sudo /etc/init.d/tor重新启动 配置TOR 让我们对新密码进行哈希处理,以防止外部代理随机访问端口。
tor --hash-password <在此处输入密码> 您将获得字母和数字的长组合作为新的哈希密码。现在,我们转到TOR配置文件(torrc)并进行必要的更改。
放置torrc文件的位置取决于您使用的操作系统以及从中接收tor的位置。我的位置在./etc/tor/torrc。您可以参考此以了解更多信息。
我们有三件事要做
为TOR启用“ ControlPort”侦听器以侦听端口9051,因为这是TOR侦听来自与Tor控制器进行通信的应用程序的任何通信的端口。更新哈希密码实施Cookie身份验证 您可以通过取消注释和编辑位置隐藏服务部分上方的以下行来实现此目的。
SOCKSPort 9050 HashedControlPassword <您在此处较早获得的哈希密码> CookieAuthentication 1 ###本部分仅用于位置隐藏的服务### 保存并退出并重新启动TOR。
sudo /etc/init.d/tor重新启动 现在,TOR已全部设置好!荣誉!
什么是TorRequest? TorRequest是围绕请求和主干库的封装库,允许通过TOR发出请求。在此处查看项目。
您可以通过PyPI安装torrequest:
pip安装torrequest 让我们尝试TorRequest。打开您的python终端。
从torrequest导入TorRequest 将密码传递给Tor
tr = TorRequest(密码='这里您的未使用密码') 让我们检查一下当前的IP地址 导入请求 response = request.get(' http://ipecho.net/plain') 打印(“我的原始IP地址:”,response.text) 我的回应是
我的原始IP地址:45.55.117.170 让我们通过TorRequest尝试相同的方法
tr.reset_identity()#重置Tor 响应= tr.get(' http://ipecho.net/plain') 打印(“新IP地址”,response.text) 您现在将获得另一个IP地址。再次重置Tor,以再次获得新的IP地址。
现在,您可以使用Torrequests在python中轻松屏蔽IP地址。
祝一切顺利!
Scallion允许你使用OpenCL创建虚构的GPG密钥和.onion地址(用于Tor的 隐藏服务)。它可以在Mono(在Arch Linux上测试)和.NET 3.5+(在Windows 7和Server 2008上测试)上运行。
它目前处于测试阶段,并且正在积极开发中。尽管如此,我们认为它已经可以使用了。预期主要在性能,用户界面和安装简便性方面有所改进,而不是在用于生成密钥的整体算法方面有所改进。
常问问题
以下是一些常见问题及其解答:
为什么要生成GPG密钥?Scallion用于在Web of Trust的强大集中查找每个32位密钥ID的冲突,这表明32位密钥ID的不安全程度。在DEFCON上有一个演讲(视频),可以在https://evil32.com/上找到更多信息。什么是有效字符?Tor .onion地址使用Base32,由所有字母和2到7(包括2和7)组成。它们不区分大小写。GPG指纹使用十六进制,由数字0-9和字母AF组成。您可以使用比特币ASIC(例如Jalapeno,KnC)来加速此过程吗?可悲的是没有。尽管Scallion使用的过程在概念上是相似的(增加随机数并检查哈希),但细节有所不同(SHA-1与比特币的双SHA-256)。此外,比特币ASIC之所以能如此之快,是因为它们非常适合比特币挖矿应用。例如,这是数据表对于CoinCraft A-1,这是一种从未问世的ASIC,但可能表示通用方法。微控制器以比特币块的最后128位,前几位的哈希中间状态,目标难度以及要尝试的最大随机数的形式发送工作。ASIC选择插入随机数的位置,然后选择满足散列的块。Scallion必须在其他位置插入随机数,并且它检查模式匹配,而不仅仅是“低于XXXX”。如何使用多个设备?运行多个Scallion实例。?葱的搜索是概率性的,因此您不会重复使用第二个设备。真正的多设备支持不是很困难,但也不会增加太多。我已经在tmux或screen中运行了多个葱实例,并取得了巨大的成功。您只要找到一个模式就可以手动中止所有作业(或编写一个shell脚本来监视输出文件,并在看到结果时将其全部杀死)。 依存关系
OpenCL和相关的驱动程序已安装和配置。请参阅您的发行版文档。OpenSSL。对于Windows,包含预构建的x86 DLL仅在Windows上,VC ++ Redistributable 2008 编译Linux
先决条件
为您的Linux发行版获取最新的Mono:http : //www.mono-project.com/download/安装通用依赖项: sudo apt-get update sudo apt-get install libssl-dev mono-develAMD /开源构建 sudo apt-get install ocl-icd-opencl-devNvidia构建 sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd最后 msbuild scallion.sln Docker Linux(仅限nvidia GPU)
具有nvidia-docker容器运行时构建容器: docker build -t scallion -f Dockerfile.nvidia .运行:docker run --runtime=nvidia -ti --rm scallion -l 预期输出的屏幕截图 建立视窗
在VS Express中为Desktop 2012打开’scallion.sln’构建解决方案后,我在调试模式下进行了所有操作。 多模式散列
Scallion支持通过原始正则表达式语法查找多个模式中的一个或多个。仅支持字符类(例如[abcd])。该.字符代表任意字符。洋葱地址始终为16个字符,GPG指纹始终为40个字符。您可以通过$在比赛的末尾放置一个后缀(例如DEAD$)。最后,管道语法(例如pattern1|pattern2)可用于查找多个模式。搜索多重模式(在合理的范围内)不会显着降低速度。许多正则表达式将在GPU上产生单个模式,并且不会降低速度。
Tor出口节点是加密的Tor流量到达Internet的网关。这意味着出口节点可能被滥用来监视Tor流量(离开洋葱网络后)。
在Tor网络的设计中,应该很难确定通过网络的流量来源。但是,如果出口流量未加密且包含标识信息,则可能会滥用出口节点。
TOR项目, 因此,依赖于一个多元化和广泛出口节点。与任何技术一样,通过对信息的工作原理有基本的了解,您将获得最大的利益并确保信息安全。通过了解,您将可以更好地评估风险。大多数出口节点可能不会受到监控,并且是“安全的”。他们由相信Tor项目目标的优秀互联网公民管理。但是,当您使用Tor网络时,出口节点也会定期更改,因此即使是少数不良节点也是一个威胁。
了解技术,了解风险 活动家和人权捍卫者对Tor项目的使用可以成为避免监视的宝贵工具。但是,由于这些出口节点中的任何一个都可能在监视您的流量,因此您应该始终对风险有充分的了解,并端对端地对流量进行加密。
在最基本的级别上,除非您使用加密协议(HTTPS / SSH / TLS),否则可以监控 Tor流量。这是两个简单的示例:
使用不使用HTTPS的论坛,您的登录名,密码,会话cookie和帖子都可以被捕获。如果您使用SMTP(无TLS)发送电子邮件,则该电子邮件可能会被拦截。 要了解技术,Tor Project网站是最好的起点。
Tor出口节点的地理位置定位和映射 地图和图表每天更新 出口节点列表以csv格式从Tor项目下载。使用MaxMind GeoLite2数据库(https://maxmind.com)对IP地址执行地理定位。
从地图上可以清楚地看到欧洲境内Tor出口节点的高度集中,一旦开始放大并看到欧洲节点,就可以清楚地看到Tor节点的运行位置相当分散。
图表中的Internet服务提供商和国家/地区是Tor出口节点集中度最高的前20名。
结论 在这篇文章中,我谈到了Tor网络的一些安全威胁和好处。我鼓励任何打算使用Tor网络的人围绕操作安全性进行可靠的研究。如果您使用Tor绕过代理,则需要了解流量的风险。如果您是使用Tor来避免通过压迫性手段进行监视的激进主义者,则需要对这项技术有深入的了解。在不知道威胁的情况下,您正在使自己以及其他人处于危险之中。
Scallion Scallion可以帮助我们使用OpenCL来创建GPG密钥以及针对Tor隐藏服务的.onion地址。Scallion基于Mono软件平台开发和运行,并已在Arch Linux平台上成功测试,工具的运行依赖.NET 3.5+(已在Windows 7和Windows Server 2008平台上测试)。
Scallion当前仍处于测试阶段,正在积极开发中,但是它目前已经可以正常使用了。我们的开发当前主要集中在性能、用户界面和安装难度方面的改进上,而不是在生成密钥以及相关算法方面。
工具依赖 1、安装并配置好OpenCL以及相关驱动器。
2、OpenSSL,在Windows环境下,已包含有预内置的x64 DLL。
3、尽在Windows平台下,需要VC++ Redistributable 2008。
工具下载 最新版本源码压缩包:【点我下载】
Linux环境下构建 依赖组件 针对自己的Linux发行版,获取最新版本的Mono:【传送门】
使用下列命令安装常用依赖组件:
sudo apt-get update
sudo apt-get install libssl-dev mono-devel
AMD/OpenSource构建命令:
sudo apt-get install ocl-icd-opencl-dev Nvidia构建命令:
sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd 最后,运行下列命令:
msbuild scallion.sln Docker Linux配置(Nvidia GPU) 1、获取nvidia-docker容器运行时环境:【点我获取】。
2、运行下列命令构建容器:
docker build -t scallion -f Dockerfile.nvidia 3、运行下列命令:
docker run --runtime=nvidia -ti --rm scallion -l Windows环境下构建 1、在VS中打开“scallion.sln”
2、构建解决方案
工具使用 枚举设备: $ mono scallion/bin/Debug/scallion.
为什么要运行 Tor 中继? 运行 Tor 中继,您可以帮助 Tor 网络:
变得更快(因此变的更好用)更难以被攻击变得更健壮使用户更安全(监视更多的中继更难) —— 洋葱路由网络官方指南
(实际上 Tor 因为越来越多的中继变快了不少。(确信)
系统需求 根据你要跑的 Tor 中继类型不同,节点硬件需求也不同。
带宽与连接 Tor 中继最重要的就是带宽需求了。
一个非出口中继需要至少可以处理 7000 个并发连接,消费级路由器在这么多连接的情况下可能会直接狗带,所以不要在自家跑。IDC 肯定是没问题的,快速出口中继(100Mbp+)一般需要处理多得多的连接(100K+)。
建议中继至少为 Tor 提供 16Mbps 的对等带宽, 多多益善。中继的最低要求是 10Mbps。
每月流量 Tor 中继每月至少使用 100GByte 的出站流量(和相同数量的传入流量),换算到每天平均也就是 10Mbps。 推荐月流量大于 2TB。 最好的情况当然是不限量的跑啦。
IP 每个中继都需要一个公共 IPv4 地址,最好是直接在主机上的,或者通过 NAT 和端口转发也可以。
不需要是静态 IPv4 地址,但是最好是静态地址。
如果你是个动态 IP, 至少应保持 3 个小时不变。因为如果经常换 IP,则在这机器上运行中继或桥接没有多大意义,因为中继IP列表每小时只分发一次。
建议有额外的 IPv6 连接,但不是必需的。
注意:每个公共 IPv4 地址只能运行最多两个 Tor 中继。如果要运行两个以上的中继,则将需要更多的IPv4地址。
内存 一个 40Mbps 的非出口中继至少需要 512M。
说是暴力一点都不奇怪,.onion的域名生成是私钥>(rsa)>公钥>(sha1)>杂凑值>(base32编码)>得到很丑的地址.onion。这道理跟比特币生成特定地址是同样的,但是因为计算量太大所以大家都会折衷,只要地址前几位有个人特色就好。
所以原理是,使用高性能运算机器,不停的一值尝试不同的私钥输入,看看有没有满意的结果,例如Facebook的洋葱地址“ facebookcorewwwi.onion ”。相当的漂亮,相当的好看,要爆破这么多位,大概也只有Facebook等拥有超大规模服务器集群的厂商可以做得到,因为在密码学上的评估要暴力解出这样的结果以1.5Ghz处理器要260万年,惊为天人Facebook展现出庞大运算的惊人实力。这是暗网目前最漂亮的域名了。
项目地址:
https://github.com/katmagic/Shallot
https://github.com/lachesis/scallion
https://github.com/cathugger/mkp224o
如果运行过程中缺了什么套件沒有办法运行
可以输入以下命令:
sudo apt-get install libssl-dev
Tor 是可以帮助你网上冲浪时保持隐私的免费开源软件系统。当你使用 Tor 浏览器冲浪时,你的流量会在到达最终目的地之前通过服务器网络随机定向,以保护你的位置安全和身份信息。
Tor 是「洋葱路由器The Onion Router」的缩写,形容 Tor 通过将数据包装在多个加密层中(如洋葱一般)来保护其数据的方式。
Tor 本质是匿名工具,代理非其所长,不加可插拔传输的直球 Tor 连接流量特征明显。
但是 Tor 是如何在让你匿名冲浪的呢?在本系列废话中,我们将深入研究 Tor 网络使用的结构和协议,以便第一手了解 Tor 的工作方式。
Tor 101 在一个非常抽象的层次上,Tor 是通过一系列服务器(称为节点或中继Relay)进行路由转发流量的。
目前 Tor 全网大约有 6300+ 个中继和 1000+ 网桥通过 Tor 网络路由流量。这些中继遍布世界各地,完全由愿意为 Tor 网络贡献带宽的志愿者,非营利机构,科研院校和图书馆和开蜜罐的 FBI、国安局等运行。中继越多越好!这是有道理的,因为每个中继只能提供一定的带宽。Tor 的节点越多,网络的性能、冗余性和安全性就越好。
Types of Relays 默认情况下,Tor 客户端通过 3 个中继建立连接,每个中继都有特定的作用。RT
中继种类有:
入口中继Guard Relay —— Tor 链路的第一个中继。当使用网桥时,网桥会取代入口中继。稳定高带宽的一般通过中继经过一段时间的使用会被挂上入口中继 Flag。中间中继Middle Relay —— 中间中继就像名字说的一样是将流量从入口中继传输到出口中继的,这样可以防止入口中继和出口中继互通有无。出口中继Exit Relay —— 出口中继是 Tor 网络边缘的出口点,将流量发送到客户端预期的最终目的地。所谓蜜罐也都是在出口中继上的。出口中继的流量如果没过 TLS,那么从出口到目标服务的连接就是明文流量,会暴露非 Onion 地址的 DNS 查询记录(因为 DNS 查询也是出口处理的)。网桥Bridge —— 不出现在公共 Directory 里的入口中继,可部署可插拔传输插件,是非公开的节点们。 要注意除了配置了现代可插拔传输插件的网桥,其他的节点是必墙的,方式是很 Old School 的路由黑洞。
洋葱路由催生了暗网的产生
1995年,美国海军研究实验室的科学家开始开发一套匿名系统,可以避免人们在互联网上的行迹被追 踪到。由于在该系统中,数据被层层密码保护,这个技术被称为叫作“洋葱路由”。
该技术最初由美国海军研究办公室和国防部高级研究项目署(DARPA)资助。早期的开发由Paul Syverson、 Michael Reed 和 David Goldschla领导。这三个人都是供职美国军方的数学家和计算机系统的研究人员。
“洋葱路由”的最初目的并不是保护隐私,或者至少不是保护大部分人认为的那种“隐私”,它的目的是让情报人员的网上活动不被敌对国监控。在美国海军研究实验室1997 年的一篇论文中指出,“随着军事级别的通信设备日益依靠公共通讯网络,在使用公共通信基础设施时如何避免流量分析变得非常重要。此外,通信的匿名性也非常必要。”
该项目初期进展缓慢,到 2002 年,来自海军研究机构的Paul Syverson 还留在项目里,两个MIT的毕业生 Roger Dingledine 和 Nick Mathewson 加入了项目。 这两个人不是海军研究实验室的正式雇员。而是作为 DARPA和海军研究实验室的高可靠性计算系统的合同工方式加入的。在后来的几年里,这三个人开发了一个新版的洋葱路由,也就是后来的 Tor(The Onion Router)。
对于 Tor 是如何从军方走向民间的,有两种说法。一是研究人员也意识到,不能仅仅让美国政府自己使 用这个系统,那等于向别人表明身份,必须让其他人也能够使用这个系统,才能够实现真正意义的隐藏。 因此,Tor面向大众推出了普通用户版本,并且允许 每个人使用Tor的节点,把政府情报人员的流量与志愿者的流量混在一起,以达到隐藏的目的。二是由于美国海军研究实验室陷入财政紧缺的状态,主动终止了对 Tor 的资金支持并将其开源,后由一个名为电子前哨基金会(EFF)的组织接管了 Tor 的后续研发和支持。
无论出于何种原因,基于Tor的暗网从此便建立了起来,并日趋庞大。由于Tor匿名的特点,很快得到了大量的青睐,其中不乏异见人士、记者、学生、公司职员等,人们可以在暗网上发表自己的观点而无需担心被报复。也正是因为Tor匿名的特点,暗网很快成为毒品、枪支和非法色情交易的温床。暗网中逐渐出现了很多交易网站,贩卖枪支、毒品、违禁药品、被盗的身份、色情物品,雇佣黑客,甚至雇佣杀手、贩卖人口、在线观看直播杀人等形形色色的非法交易,如 Agora、Silk Road、Evolution 等。有些交易网站采用比特币交易, 因此不受传统金融渠道的控制,并且像我们常用的交易平台一样,买卖双方还能进行评价,甚至提供售后 服务。现在,Tor中继节点已经遍布全球,每年有近5000万人次下载Tor,以至于连Tor的发明者都承认“自己也无力摧毁 Tor”了。
Tor 是如何实现匿名的呢?
Tor 官网上简单介绍了Tor的原理。Tor是一个三重代理,Tor 客户端先与目录服务器通信获得全球活动中继节点信息,然后再随机选择三个节点组成电路 (circuit),用户流量跳跃这三个节点(hop)之后最终到达目标网站服务器, 这样Tor网络中就有两种实体,分别是用户和中继节点。当用户需要匿名访问网络时,首先访问目录服务器,得到全球的 Tor中继节点的信息,包括IP地址、公钥、出口策略、带宽和在线时间等。然后再随机选 择三个节点组成电路(circuit),分别为入口节点、中间节点和出口节点。在构建电路时,用户和每一个中继节点协商共享的会话密钥,之后将层层加密的信息发送到电路中,每个中继节点经过一次解密后,将信息发给下一个节点。这样,中继节点中只有入口节 点知道通信发起者的身份。中间节点知道通道中入口节点和出口节点的身份,但是不知道匿名通信发起者和接收者的身份。出口节点作为网关负责Tor网络和外部Internet网络的应用层连接,并充当加密的Tor网络传输流量和非加密的Internet传输流量之间的中继,知道匿名通信接收者的身份。在这种设计下,电路中没有任何一个节点知道完整的信息,因此实现了匿名通信。
Tor 的工作原理
具体来说,当用户启动 Tor 之后,Tor 客户端会在本机上运行一个 Onion Proxy(OP),之后开始和存有全球中继节点信息的目录服务器取得联系,获取全球的中继节点信息。OP 获取到中继节点信息后,OP会随机选取三个节点,组成电路,并分别协商会话密钥。 在这个过程中,每层会话都是被加密一次的信息,一直到被三重加密,只有出口节点能看到明文。当电路被确认建立后,才开始发送真正的用户访问信息。
此外,为了加强安全性,Tor 每隔十分钟就会再重新选择三个节点以规避流量分析和蜜罐节点。
仔细分析这一过程,会发现一个问题,由于出口节点能够获得明文信息,因此这个过程中只保障了用户的访问不能被攻击者完全地获知。也就是说,只保障了用户访问表层网络时的匿名性。而对于想要隐藏自己 IP 的 暗网网站来说,这个方法是不行的,因为出口节点会获知用户的访问请求和服务器的 IP 地址。那么,如果用户匿名访问暗网网站时,情况又是怎样的呢?
你想开始调查Tor网络中的隐藏服务,却不知道从何下手?下面是二十个开源项目的列表,它将帮助你完成监控神秘的Darkweb的部分任务。
https://github.com/andreyglauzer/VigilantOnion
https://github.com/teal33t/poopak
https://github.com/CIRCL/AIL-framework
https://github.com/s-rah/onionscan
https://github.com/automatingosint/osint_public
https://github.com/trandoshan-io
https://github.com/itsmehacker/DarkScrape/blob/master/README.md
https://github.com/GoSecure/freshonions-torscraper
https://github.com/DedSecInside/TorBot
https://github.com/AshwinAmbal/DarkWeb-Crawling-Indexing/blob/master/README.md
https://github.com/k4m4/onioff
https://github.com/MikeMeliz/TorCrawl.py
https://github.com/bunseokbot/darklight
https://github.com/saidortiz/onion_osint
https://github.com/vlall/Darksearch
https://github.com/ntddk/onionstack
https://github.com/mrrva/illCrawler
https://github.com/scresh/Digamma
https://github.com/reidjs/onionup/blob/master/README.md
https://github.com/desyncr/onionuptime/blob/master/README.md
mkp224o mkp224o是Tor Onion v3隐藏服务的虚荣地址生成器,由cathugger创建 ,可 在Github上使用。
cathugger的GitHub帐户上的mkp224o存储库。
Tor提案224 是新的Onion v3规范的提案,因此就是mkp224o的名字。
mkp224o非常易于安装和运行。从GitHub下载并提取最新版本,然后在基于Debian的系统上,可以使用:
#Install dependencies if required sudo apt-get install autoconf libsodium-dev #Build ./autogen ./configure make 您可以运行“ ./mkp224o -h”以查看可用选项:
js@node0:~/onionv3/mkp224o$ ./mkp224o Usage: ./mkp224o filter [filter...] [options] ./mkp224o -f filterfile [options] Options: -h - print help -f - instead of specifying filter(s) via commandline, specify filter file which contains filters separated by newlines -q - do not print diagnostic output to stderr -x - do not print onion names -o filename - output onion names to specified file -F - include directory names in onion names output -d dirname - output directory -t numthreads - specify number of threads (default - auto) -j numthreads - same as -t -n numkeys - specify number of keys (default - 0 - unlimited) -N numwords - specify number of words per key (default - 1) -z - use faster key generation method.