Record: I set up a Tor Exit Node and analyzed the traffic.

最近,我研究了一些暗网的东西。花了一天的时间搭建了一个暗网的 ExitNode,并且在上面假设了一些流量检测东西。通过嗅探未加密的流量,我们可以窥探到暗网的一些活动。

我们能窥探到的东西主要是未加密的 HTTP流量。由于协议的问题,SSL 和 onion 访问我们不能解密。

这篇文章是一个记录,请不要把它当做教程使用。教程请移步👇

1. 安装 Tor 并设置 TorExit 节点(ubuntu)

安装 tor

sudo apt install tor

设置成 ExitNode,在 /etc/tor/torrc 中填入信息⬇️

Nickname imfht
ORPort 2333
ExitRelay 1
SocksPort 0
ControlSocket 0
## Change the email address bellow and be aware that it will be published
ContactInfo [email protected]

#ExitPolicy accept *:443
ExitPolicy accept *:8080
ExitPolicy accept *:8000
ExitPolicy accept *:8081
ExitPolicy accept *:9000
ExitPolicy accept *:9201
ExitPolicy accept *:9002
ExitPolicy accept *:80
ExitPolicy reject *:*
ControlPort 9051
CookieAuthentication 1

重启 tor 服务,不出意外的话 Tor ExitNode 已经设置好了。

这里指定了容许的端口范围,这样可以有效减少对外的 spam 事件。

嗅探流量

流量嗅探工具有很多,我尝试了这三个流量嗅探工具。

1. http dumper

http dumper 是一个 golang 的程序。从名字我们就可以知道,这个程序能够从网卡中解析出 http 流量。github地址:https://github.com/hsiafan/httpdump

简要记录安装过程:

sudo snap install go --classic
sudo apt install libpcap-dev
go get github.com/hsiafan/httpdump

前往 ~/go/bin/ 目录,执行 sudo ./httpdump -level=url 即可开始解析出 URL 数据。

➜  bin sudo ./httpdump -level=url
 [sudo] password for i:
 GET icanhazip.com/
 POST tmsearch.uspto.govhttp://tmsearch.uspto.gov/bin/gate.exe
 POST 66.135.211.96/services/search/FindingService/v1
 GET rapid4me.com/?q=xlntsound+dubsauce&p=1
 POST 66.135.211.96/services/search/FindingService/v1
 GET www.ebay.de/itm/163723866639
 POST 66.135.211.96/services/search/FindingService/v1
 POST emonitoring.poczta-polska.pl/wssClient.php
 GET www.medadesorkh.ir/ajax/getuser

我运行的结果👆 可以看到解析出来了实时的http 流量

httpdump 也支持解析出 body 信息,但是不方便存储。所以我只解析了 url 信息。

2. package beat

package beat 是 Elastic 这家出的一个包解析工具,没错,就是 开发大名鼎鼎的 Elasticsearch的母公司。产品地址:https://www.elastic.co/cn/products/beats/packetbeat

package beat 的定位是一款轻量型网络数据包分析器,需要配合 Elasticsearch 或者 logstash 来使用。能够解析包括http、mongodb、thrift 等一系列协议。

简单记录一下配置过程:

wget https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-7.2.1-linux-x86_64.tar.gz
tar -zx -f packetbeat-7.2.1-linux-x86_64.tar.gz
cd packetbeat-7.2.1-linux-x86_64
docker run -d --name elasticsearch -p 127.0.0.1:9200:9200 -e "discovery.type=single-node"  -e ES_JAVA_OPTS="-Xms2g -Xmx2g" docker.elastic.co/elasticsearch/elasticsearch:7.3.0
docker pull docker.elastic.co/kibana/kibana:7.3.0
docker run --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.3.0

编辑 packagebeta.yml,在 output.elasticsearch 下加入

   hosts: ["localhost:9200"]
   pipeline: geoip-info

初始化 kibana 图表并启动 packetbeat

./packetbeat setup --dashboards
sudo ./packetbeat

然后在 Kibana 上可以看到一些流量信息。

截图分享👇

3. maltrail

maltrail 是一个恶意流量检测系统。用在这里有一点大炮打蚊子了。但是抱着玩玩看的心态,我也部署了一个。

简要记录一下部署过程:

sudo apt-get install git python-pcapy
git clone https://github.com/stamparm/maltrail.git
cd maltrail
sudo python sensor.py & 
python server.py

这里要注意,这里的 sensor.py 接了国内安全公司的情报数据,需要从国内下载数据。而 GFW会同步 ExitNode的列表进行屏蔽,这里需要一个翻回墙内的操作,使用 proxychains启动,配合 shadowsocks 可以解决这个问题。

截图分享👇

可以看到maltrail分析出了一些恶意的 HTTP 流量,其中一些是 sql 注入和 xss 攻击的 URL。说是在监视黑客的一举一动可真是没错了 😀

总结

  1. 不要使用明文流量。
  2. 在Tor 中的明文流量也不安全。
  3. 在流量中看到很多对 wp 站点的爆破流量,有时间的话可以分析一下这些流量拿到这些爆破成功的wp 站点。

Leave a Reply

Your email address will not be published. Required fields are marked *