前言
- 靶机1:seedubuntu 12.01,IP:192.168.199.137
- 靶机2:WindowsXP SP2,IP:192.168.199.135
- 攻击机:Kali-2020.4,IP:192.168.199.129
- 工具:ettercap
原理
TCP会话劫持目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。
TCP会话劫持攻击
Kali通过ARP欺骗成为中间人,从而通过截获TCP数据包,对seedubuntu和WinXP之间的TCP会话进行劫持,首先在kali中设置ip路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
在kali中打开ettercap的图形界面
ettercap -G
将seedubuntu和WinXP分别设置为target1和target2
选择菜单“MITM”中的“ARPpoisoning”进行ARP欺骗,选嗅探远程连接
在WinXP和seedubuntu上使用arp -a
查看,确认欺骗已经生效了
模拟劫持telnet登录
在WinXP上使用telnet访问seed并登陆
telnet 192.168.199.137
在kali发现连接包
双击打开就能获取seedubuntu的用户名和密码
劫持命令
TCP会话劫持攻击的防御
由于TCP通信需要提供两段序列号以保证连接同步和安全通信,如果双方序列号不同,会导致ACK风暴。所以攻击者在不知道序列号的情况下是不可能攻击成功的。因此,若能够使得要攻击的网络通信经过攻击者控制的主机,那结合网络嗅探技术就可以获取到序列号等信息,从而很容易地实施会话劫持攻击。比较好的解决办法是先进行ARP欺骗,使双方的数据包“正常”的发送到攻击者这里,然后设置包转发,最后就可以进行会话劫持了,而且不必担心会有ACK风暴出现。除了arp欺骗外,IP源路由路由选项和ICMP路由重定向攻击都能使得攻击者可以指定IP数据包的路由路径,通过攻击者所控制的路由器,然后实施劫持。但现在大多数路由设备都禁用和过滤源路由选项和ICMP路由重定向,因此目前比较普遍的方法是结合ARP欺骗来进行TCP会话劫持。