针对TCP协议的攻击实验~
四类攻击:
SYN 洪泛攻击
TCP RST攻击
TCP会话劫持
反弹shell
工具:netwox/scapy,实测netwox即可完成
SYN 洪泛攻击
先康康受害者主机半开连接的等待队列有多大:
先关掉SYN cookie机制进行攻击:
指定IP,netwox进行攻击:
能看到受害者主机有大量23号端口的半开连接:
此时如果从观察者主机telnet受害者主机,没有响应直到超时:
再打开SYN cookie进行攻击:
依然有很多很多半开连接:
但这时候从观察者主机telnet受害者主机,是可以正常登录的:
这就是SYN cookie机制的作用:它在接收到客户端的SYN包时,不立刻为连接分配资源,而是根据SYN包计算一个cookie值作为SYN ACK包的初始序列号
若客户端正常返回ACK包,则根据包头信息计算cookie值,与其确认序列号对比,若验证通过则分配资源并建立连接;若验证不通过或没有收到第三个ACK包,则不会为非正常的连接分配资源
这一机制保证了在遭受SYN洪泛攻击时,受害者主机的半开连接队列的资源不会被耗尽,从而能接受观察者主机的正常连接
TCP RST 攻击
telnet登录后,看到连接状态是ESTABLISHED:
发动攻击:
RST报文发出后,这条TCP连接被关闭了:
scapy一样的:
结果一致:
然后是ssh登录:
登录方会下线,提示TCP连接断开:
若尝试登录会被拒绝:
scapy还是一样的:
抓包能看到RST包:
流媒体的TCP RST攻击
这里用的是B站,随便放一个视频,如果需要的话先安装flash(不得不说,虚拟机看视频太卡了…
和B站服务器建立了两条TCP连接用于传输视频内容:
然后在视频播放的时候进行攻击:
然后视频就会华丽丽地卡住…(不知道是不是正常情况,反正我的就一直在缓冲
(看鬼畜hhh
两条连接也被断开了:
TCP会话劫持
在两台主机之间建立一个telnet连接,同时抓包,我们要根据最后一个包来伪造后面的数据包:
康康上面的数据包,主要关注双方端口、窗口大小、序列号、确认号
伪造的数据包里,seq=最后一个数据包的ack,ack=wireshark里能看到的next seq
(-j 即TTL似乎一定要写,不然抓不到包,或许是被丢弃了吧…
(如果存在疑问,仔细学习TCP协议
传输的数据必须是hex,要求里教了用python转换:
抓包能看到成功发送了data:
其实这关是要求我们传一个恶意指令进行执行,所以搞个ls康康:
(方法与上面相同,只是替换-H的数据)
(这里我把ls\n放在一个数据包里传,也可以分成三个传)
能看到发送了ls指令:
收到的数据包包含了ls的结果,即指令被执行:
同样的,scapy:
指令也能被执行:
反弹shell
和前一关一样的呀,就是替换指令
发送了反弹shell的指令:
这时候攻击者开启的9090端口显示登录信息,然后就能远程使用shell啦~
再根据要求验证一下pwn:
铛铛铛,就做完啦~
做完这个再看Mitnick也很简单
文档很清晰,跟着做就没问题
感谢大佬:
https://www.cnblogs.com/vege/p/12995699.html
https://www.pianshen.com/article/31291562106/
TCP会话劫持的大佬:
https://blog.csdn.net/xxx_qz/article/details/70945769