0x01 暗网简介
暗网作为全球最为隐蔽的地下黑市,毒品交易、非法色情、人口贩卖等非法活动如火如荼,不允许在阳光下进行的,在暗网里光明正大,这里是阳光照不到的地方。而从另外一个维度,在暗网里交易的各种数据,对明网安全会带来很大威胁。暗网对明网的挑战,不言而喻,破坏性非常大。随着各地执法机构的打击,一个又一个暗网市场倒下,暗网服务的数量越来越少,暗网中的Tor节点现今大约还有几万个。
通往暗网的路并不好走,很多人并不知道怎么去,设置这样门槛,是为了保证绝对自由之地的隐秘性,也是为了逃避法律的监管。暗网一般用TOR浏览器访问,通过复杂的路由跳转和加密手段,隐匿访问者的真实位置。由于GWF的限制,连接暗网可以通过F墙和网桥的方式,由于可用网桥的获取难度较大,所以一般会使用F墙的方式连接Tor网络。
深网(DeepWeb):指那些存储在网络数据库里、不能通过超链接访问而需要通过动态网页技术访问的资源集合,不属于那些可以被标准搜索引擎索引的表面网络。深网不单单指存在数据库中的数据,更主要是运行着但不能被普通爬虫进入的私有网络。比如你们常用的什么种子搜索神器、我们常用的迅雷及很多公司自己构建的p2p网络都属于深网;从定义出发内网也属于深网,需要注册登录后才能查看的内容也属于深网。
暗网(Darknet Web):域名不由公共DNS解析而由专用系统维护解析的网站体系,暗网是深网的子集。tor维护的.onion是当前最大的暗网但不是唯一的暗网,还有例如I2P网络。暗网指只能通过特殊软件、授权或对电脑作特别设置才能访问,在流行的搜索引擎上无法查到的特殊网络。
0x02 I2P网络
Tor (The Onion Router)和I2P (Invisible Internet project)网络有许多相似之处和不同之处。它们都是基于多层加密匿名网络。它们有如下区别:
Tor是用C语言编写的匿名P2P网络的多应用程序;I2P是用Java编写的匿名P2P网络的多应用程序框架
Tor是通过“电路”双向传递消息的,即:入站和出站消息是同一条电路;而I2P是通过“隧道”单向传递消息,即入站和出站消息是不同的两条隧道,并且这两条隧道每隔10 min重新建立,
Tor的出站端点是公开的,未隐藏;而I2P的出站端点被隐藏。
Tor是基于SOCKS,只能通过TCP传输消息,而I2P可以在UDP和TCP之间进行选择
Tor和I2P之间由于其设计理念上存在差别,因此其网络关键技术存在明显差异。Tor主要是为匿名访问公共互联网而设计的,因此它设计了许多退出节点和代理,而I2P网络的核心设计目标是允许匿名托管服务(隐藏服务),并不是专注于匿名访问公共互联网。I2P可以通过“out proxies”提供对公共互联网的直接访问,但该功能由各种内部服务提供,以代理到其他匿名系统。
Tor和I2P的设计理念区别关键在于:I2P试图将现有的互联网服务转移到I2P网络,并在框架内提供服务实现,而Tor则允许匿名访问分别实施和操作外部的互联网服务。因此,Tor是一个“覆盖网络”,而I2P是一个“虚拟互联网”。
0x03 TOR原理
Tor是一个三重代理(也就是说Tor每发出一个请求会先经过Tor网络的3个节点),其网络中有两类主要服务器:
中继服务器:负责中转数据包的路由器,可以理解为代理;
目录服务器:保存Tor网络中所有中继服务器、暗网服务器列表相关信息(保存中继服务器地址、公钥),全球权威目录服务器共9个。
中继服务器包含两类节点:
第一种是中继节点,而中继节点又分两种:
Tor Relay,需要加入Directory。虽然现在GFW是通过流量特征屏蔽Tor,但作为第一跳的IP还是可能会被探测屏蔽。
Tor Bridges,自己可以部署,第一跳的IP不在公共directory里,手动获取也方便。
第二种是出口节点 Exit Nodes。所谓蜜罐也都是部署在出口节点上的。出口节点以外的访问的目标网站如果不是 SSL,那么从出口到目标网站就是明文的,会暴露 DNS 记录和明文密码。
用户访问Tor服务并建立网络连接一般需要7个过程。
1.选取介绍点:
暗网中的网站建立后,需要将自己发布出去才能让用户访问,为了将自己的URL信息放到目录数据库上,暗网服务器需要选取三个Tor节点作为介绍点,并建立Tor电路,这样这些介绍点就不知道暗网服务器的具体地了。这些介绍点用于以后客户端想要访问暗网服务器时与会合点的通信。
2.发布网站:
暗网服务器组合一个描述符,包括自己的公钥和各个介绍点,并用私钥进行签名认证,上传到目录数据库上。这些描述符和暗网服务器的网址是一一对应的,客户端通过请求暗网服务器的网址可以在目录数据库中找到对应的描述符,只有通过描述符里的介绍点才能访问到暗网服务器。暗网服务器的网址以 onion为顶级域名,并由它的公钥派生出的16个或56个字符组成。至此,暗网服务器(网站)就建立好了。
Tor主要有两个版本,一个V2版本,一个V3版本,V2版本洋葱地址有16个字符长,V3有56个字符长。其中,V3版本的优势:
更好的加密(用SHA3 / ed25519 / curve25519替换SHA1 / DH / RSA1024)
改进了目录协议,向目录服务器泄漏的信息少得多。
改进的目录协议,具有较小的表面用于目标攻击。
更好的洋葱可以抵御假冒行为。
更可扩展的介绍/会合协议。
更清晰,更模块化的代码库。
3.查询描述符:
客户端通过某个渠道得知了暗网服务器的网址,但是它不能直接访问暗网服务器,必须获取更多的信息。客户端需要通过Tor电路与目录数据库建立连接,查找该网址对应的描述符,从而获取该暗网服务器的介绍点和公钥信息,通过介绍点来连接暗网服务器。与此同时,客户端随机选择一个中继节点作为 “会合点”。
4.客户端与会合点建立连接:
客户端与会合点建立Tor电路,随机选取Tor 节点进行连接,在此电路中会合点作为Tor电路中的出口节点。连接时携带一个一次性的“secret”给会合点,以校验将要与之连接的暗网服务器。
5.请求转发:
客户端查找到暗网服务器的描述符并与会合点建立好连接之后,选择描述符里的其中一个介绍点与它通信,建立Tor电路并携带一个用暗网服务器的公钥加密的信息(该信息包括会合点地址和一次性的 “secret”)发送给介绍点,请求介绍点通知要访问的暗网服务器。
6.转发信息:
介绍点收到请求消息后将用公钥加密的信息传送给暗网服务器,暗网服务器收到客户端请求后,用自己的私钥对加密信息进行解密,得到会合点的地址和一次性“secret” 。由于经过Tor电路传输,介绍点不知道服务器的具体地址。
7. 终极连接:
暗网服务器得知会合点地址之后,经过Tor电路与会合点建立连接,并携带一次性 “secret”,会合点将此“secret”与之前客户端发给它的进行校验。如果校验成功,则会合点通知客户端,至此,客户端与暗网服务器的连接建立完成。
0x04 暗网应用
1.搜索引擎及暗网导航
暗网也有许多搜索引擎,TOR内置的搜索引擎为duckduckgo,还有一些小众搜索引擎,如not Evil:http://hss3uro2hsxfogfq.onion。
还有开源的暗网搜索引擎ahmia:https://ahmia.fi/,开源地址为:https://github.com/ahmia/search。
暗网比较出名的导航有hidden wiki和tor link list。
2.交易市场
目前暗网最大的中文交易市场为暗网交易市场,其他还存在许多较小的交易市场,对于企业而言,该市场是最需要值得注意的。什么非法交易的都是在这些交易市场里面,而且暗网上不管你购买什么东西都只能通过比特币购买。
3.暗网邮箱
暗网中邮箱也是多种多样,具有很强的隐蔽性,并且也是暗网中最常用的交流工具之一,暗网邮箱不能与明网邮箱进行相互发送邮件,常见的暗网邮箱如下。
4.匿名聊天室
匿名聊天室是暗网服务的一大特色,但现在已经有很多在线匿名聊天室纷纷关闭,只存在少量的可访问的聊天室。对匿名聊天感兴趣的还可以尝试TorChat。
0x05 匿名货币
1.匿名货币简介
全世界645种数字货币总市值达到125亿美元,比特币大概占了100亿美元市值,然而数字加密货币交易大部分还是通过传统金融机构来完成。
2.常见的匿名货币
除了最火的比特币,常见的匿名货币还有门罗币、Zcash、暗黑币等。
门罗币:
没人可以通过检测区块链辨别资金来自哪里(不可追踪性)
没人可以通过检测区块辨别出资金将发往何处(无关联性)。
由于采用了环保密交易(RCT),所涉及的交易金额是隐藏的。
可审计的。通过向审计员提供你的观察秘密密钥(private view key),你可以看到你所有的交易来源。
动态手续费。
Zcash:
2016年10月号称终极匿名的Zcash发布。采用了零知识证明技术。
“如果说比特币有95%的匿名性,那么Zcash就有100%的匿名性。它可以保证支付 的完全机密,同时通过公共区块链维护去中心化网络的运行。
和比特币不同,Zcash交易可以隐藏区块链上的发送人、接收人以及交易金额。
有正确浏览密钥的人才可以看到交易信息。用户可以完全掌控并选择向谁提供这个 浏览密钥。
暗黑币:
与比特币类似,但是它有一个特性就是 能够在很大程度上掩盖转账痕迹
你可以把暗黑币从一个账户A转移到另一 个账户B
你使用账户B里的暗黑币兑换现金时,网 警不能发现这些钱是从账户A转移过去的
3.匿名货币的获取
匿名货币的获取途径主要有两个,一个是直接购买,一个是挖矿。
如果需要入手比特币通过购买的方式会更为快捷,可以在如火币网等各大交易市场进行购买,使用法币交易的形式即可使用现金来购买匿名货币。
挖矿存在两种方式,独立挖矿和矿池挖矿,除非自己拥有很强的算力,否则一般用户都会选择通过矿池挖矿的方式来赚取匿名货币。
独立挖矿:
独立挖矿是指使用自己计算机当前拥有的计算能力去参与比特币的挖掘,获取到的新区块的收益全归个人所有。比特币平均每十分钟产生一个区块,而参与比特币挖掘的用户数量非常庞大,独立挖矿可能一整年也无法抢到一个区块。
矿池挖矿:
矿工是参与比特币勘探竞争的网络成员的昵称。而矿池是一个通过特定算法而设计的服务器,所有连接到矿池服务器的用户,会组队进行挖矿。
个人设备的性能虽然渺小,但是成千上万的人进行组队挖矿,总体性能就会变得十分强大,在这种情况,挖矿的成功率会大大提升,一旦矿池中的队伍成功制造了一个区块,那么所有队伍中的人会根据每个人贡献的计算能力进行分红。矿池的开发者一般会对每个用户收取一定手续费,但由于这种方法让大家更稳定得获得比特币,大部分矿工都会选择矿池挖矿,而不是单独挖矿。
0x06 TOR实践
1.搭建匿名WEB服务
第一步:安装tor
yum install tor
windows系统可直接去官网下载安装包安装
https://www.torproject.org/download/。
第二步:搭建一个http服务
搭建本地网站,可使用nginx、apache、iis等,主要看自己的需求。为了简便可直接使用python快速搭建一个HTTP网站,监听本地8080端口。
python -m SimpleHTTPServer 8080
第三步:编缉torrc文件
linux在/etc/tor/torrc
windows在Tor_Browser_Dir\Browser\TorBrowser\Data\Tor\torrc
torrc文件为tor服务的核心配置文件,要搭建一个匿名服务需要配置两个参数,HiddenServiceDir配置用于存放匿服务信息的目录。HiddenServicePort匿名服务信息,8000是让别人访问时以为访问的端口,127.0.0.1:8080是真正提供服务的地址。
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 8000 127.0.0.1:8080
由于GWF的干扰,可能需要一个梯子才能连接到tor网络,并且配置如下参数。
Socks5Proxy 127.0.0.1:1080 # 科学上网代理地址
第四步:重启tor重新加载配置
重启tor重新加载配置,windows可以关掉tor浏览器然后重新打开。
service tor restart
此时在设置的HiddenServiceDir就会被创建,然后其下会有以下两个文件。
private_key 网站的私钥文件,在向tor目录服务器注册时用的
hostname 注册后获取到的域名。在tor网络中访问这个域名就会重定向到你搭建的服务。
第五步:确认匿名服务成功搭建
使用hostname中的域名访问,即可访问到自己的匿名服务。
2.搭建Tor节点
(1)搭建中继节点
搭建中继节点一般需要配置以下三个参数,Nickname为节点的昵称,ORPort中继节点服务所侦听端口,OR(Onion Router)表示洋葱路由,ExitRelay可以设置是否允许作为出口节点,如果只需要搭建中继节点直接蛇者为0即可。
Nickname name #节点的昵称(限用字母和数字)
ORPort 9001 #节点服务侦听端口
ExitRelay 0 #出口节点开关(0为否,1为是)
(2)搭建Tor网桥
搭建网桥只需要在之前的配置中加入BridgeRelay为1即可配置成网桥。
ORPort 443
ExitRelay 0
BridgeRelay 1 #网桥节点开关(0为否,1为是)
(3)搭建退出节点
自己搭建中继节点或网桥是没有法律风险的。由于 Tor 的链路是不可回溯的,所有黑锅都得出口节点背,律师函也是发给 VPS 服务商的。因此不建议在个人的商业 VPS搭建出口节点,欧美国家的出口节点大都是 ISP 或图书馆院校机构。
Nickname name #节点的昵称(限用字母和数字)
ORPort 9001 #节点服务侦听端口
ExitRelay 1 #出口节点开关(0为否,1为是)
如果这是一个出口节点,建议进行出站规则的配置,这决定了该出口节点可以访问互联网上其它主机的哪些端口。精心配置出站规则,可以避免节点被骇客滥用,如禁止 3389 端口,可避免节点被用来实行远程桌面暴力破解。当然,如果想最大程度地减少 abuse 来信,可以只开放80和443端口,只为 Tor 浏览器用户提供最基本的网页浏览服务。
出站规则配置参数如下(地址和端口都可以使用通配符):
exitpolicy accept *:port #允许访问某个目标端口
exitpolicy reject *:port #拒绝访问某个目标端口
exitpolicy accept : #表示全部允许,使用端口黑名单制时需加上
exitpolicy reject : #表示全部拒绝,使用端口白名单制时需加上
0x07 暗网监控
近年来,一些互联网企业发生过机密数据泄漏到暗网平台上进行售卖的情况,比如12306数据泄露、华住集团数据泄露等。对于企业而言,非常需要一款实时监控暗网数据泄露的威胁情报平台。GitHub上已经存在了不少暗网监控爬虫,这里推荐一个最好用的暗网监控爬虫:https://github.com/aoii103/DarkNet_ChineseTrading。该项目便是监控上述的暗网交易市场。
如下是该爬虫系统的运行流程图:
需要注意的是,由于系统使用了tesseract来识别验证码,安装时,如果遇到tesseract报错,需要将DarkNet_ChineseTrading-master/media文件夹下的snum.traineddata移至tesseract安装目录的tessdata目录下。
cd DarkNet_ChineseTrading-master/media/
cp snum.traineddata /usr/share/tesseract/tessdata/
对于企业而言可以基于此项目进行二次开发,监控指定关键词并报警,当然也可以完全进行自主开发一个符合公司需要的爬虫监控系统。暗网网站反爬虫机制较为落后,一般最常用的仅仅是一些简单的验证码,编写爬虫难度不是很高。暗网监控的原理是使用Tor软件开放一个暗网代理,使用该代理即可像访问明网一样编写爬虫脚本爬取网站,开放暗网代理对应的torrc文件配置项为:
SOCKSPort 9150 # socks5代理地址
如果想要对暗网所有服务进行监控,可以尝试onionscan,再此不在详细展开。
0x08 结语
Tor的目的本是致力于在线匿名与隐私的技术研究,然而如今却造就一个黑暗网络的是非之地,暗网成为人性黑暗面最真实的体现,如何合理的使用暗网需要大家自行判断,切莫掉进法律的深渊。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !