使用Arkime抓包,捕获解密HTTPS流量

由于TSL的流量流量都是加密的,对TSL的抓包一般比较麻烦,比如用Wireshar抓包还需要网站服务器私钥 。最新版本的Arkime(以前叫做Moloch)可以通过PolarProxy接收抓包并解密HTTPS流 。本文我们就来介绍如何将通过Arkim和PolarProxy 实时捕获并解密更HTTPS流量 。

使用Arkime抓包,捕获解密HTTPS流量

文章插图
 
概述Arkime是一个开源数据包捕获软件,它可以收集到PCAP数据并对其索引 。Arkime自带Web前端,用于浏览和搜索捕获的并建立索引的网络流量 。
Arkime抓包并解密TSL流量需要其pcap-over-ip-server功能,并用"--pcapoveripconnect 127.0.0.1:57012"选项启动PolarProxy 。PolarProxy通过TCP端口57012连接到Arkime的PCAP-over-IP侦听器,并将其解密的所有TLS数据包的副本发送给它 。
安装TLS解密是通过PolarProxy(透明的TLS拦截代理)来实施的:
使用Arkime抓包,捕获解密HTTPS流量

文章插图
 
PolarProxy和Arkime可以安装在服务器上,可以实现拦截,解密,索引和存储网络上多个客户端的TLS网络流量 。甚至有可能在单独的服务器上安PolarProxy和Arkime,以便PolarProxy将解密的流量转发到Arkime服务器 。为了避免不必要的麻烦,本文我们在Ubuntu安装了Arkime和PolarProxy 。操作系统是Ubuntu 20.04.1机器,也支持其他linux发行版版本使用,比如Arch,centos,Debian,Fedora和SUSE等 。
安装配置Arkime可以在Arkime官方下载适用于CentOS (rpm)和Ubuntu(deb)的预安装包安装,也可以下载源码或者从Github clone源码编译安装:
安装Arkime软件包后,通过运行以下命令配置Arkime:
sudo /data/moloch/bin/Configure
Found interfaces: lo;eth0
Semicolon ';' seperated list of interfaces to monitor [eth0] none
输入"none"作为要监视的界面(当Arkime被配置为IP上的PCAP服务器时,该界面设置将被忽略)
根据提示,选择"Yes"来安装额外的ElasticSearch服务器
编辑/data/moloch/etc/config.ini,添加"pcapReadMethod = pcap-over-ip-server",将Arkime配置为监听PCAP连接 。
使用Arkime抓包,捕获解密HTTPS流量

文章插图
 
接下来,用以下命令启用ElasticSearch systemd服务 。
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
启动Arkime search集群 。
/data/moloch/db/db.pl localhost:9200 init
创建一个新的管理员用户 。
/data/moloch/bin/moloch_add_user.sh admin "Admin User" THEPASSword - admin
【使用Arkime抓包,捕获解密HTTPS流量】然后启用Moloch捕获和查看器服务 。
sudo systemctl start molochcapture.service
sudo systemctl enable molochviewer.service
sudo systemctl start molochviewer.servic
启动后,测试一下主机上监听的TCP端口57012,确保服务已经启动 。
ss -nta | grep 57012
LISTEN 0 10 0.0.0.0:57012 0.0.0.0:*
安装配置PolarProxy为PolarProxy的systemd服务创建一个启动用户,并按下载PolarProxy:
sudo adduser --system --shell /bin/bash proxyuser
sudo mkdir /var/log/PolarProxy
sudo chown proxyuser:root /var/log/PolarProxy/
sudo chmod 0775 /var/log/PolarProxy/
sudo su - proxyuser
mkdir ~/PolarProxy
cd ~/PolarProxy/
curl https://www.netresec.com/?download=PolarProxy | tar -xzf -
exit
复制PolarProxy配置复制到systemd 。
sudo cp /home/proxyuser/PolarProxy/PolarProxy.service /etc/systemd/system/PolarProxy.service
修改/etc/systemd/system/PolarProxy.service,在ExecStart命令的末尾添加"--pcapoveripconnect 127.0.0.1:57012"
使用Arkime抓包,捕获解密HTTPS流量

文章插图
 
启动PolarProxy服务
sudo systemctl enable PolarProxy.service
sudo systemctl start PolarProxy.service
 
验证PolarProxy已在TCP端口57012已经连接到Arkime的PCAP-over-IP监听端口 。
ss -nta | grep 57012
 
LISTEN 0 10 0.0.0.0:57012 0.0.0.0:*
ESTAB 0 0 127.0.0.1:40801 127.0.0.1:57012
ESTAB 0 0 127.0.0.1:57012 127.0.0.1:40801
抓包测试PolarProxy当前正在监听TCP端口10443上的传入TLS连接 。因此,我们可以使用以下curl命令通过TLS解密代理运行流量:
curl --insecure --connect-to www.xxx.com:443:127.0.0.1:10443 https://www.xxx.com/
如果一切正常,解密的流量将显示在Arkime中 。在浏览器中打开http:// localhost:8005/sessions并查找与www.xxx.com的连接 。
使用Arkime抓包,捕获解密HTTPS流量

文章插图
 


推荐阅读