网络安全-TCP-IP攻击
概述
1. SYN-Flooding攻击效果,受害者系统卡死.
2. TCP-RST攻击实现已经建立的TCP连接断开.
3. TCP会话劫持,劫持TCP会话,并实现反向Shell.
实验环境
1. 三台Linux系统主机,一台作为攻击者,一台作为受害者,一台作为观察者.
2. 为了简化TCP序列号和源端口号的“猜测”,实验处于同一局域网内,你可以使用嗅探器来获取受害者信息.
SYN-Flooding攻击
1. SYN-Flooding攻击原理
SYN-Flooding是DoS攻击的一种,攻击者向受害者的TCP端口发送很多SYN请求,但攻击者无意完成三次握手过程.
攻击者要么使用欺骗性的假的IP地址,要么不要继续完成整个三次握手过程.
通过这种攻击,攻击者可以淹没用于半连接的受害者队列,即已完成SYN,SYN-ACK但尚未得到最终ACK的连接.
当这个队列已满时,受害者不能再进行任何连接.
正常三次握手过程:
在Linux中,我们可以使用以下命令检查
我们可以使用命令“netstat -na”来检查队列的使用情况,即与监听端口相关联的半连接的数量.
这种半连接的状态是SYN-RECV。如果三次握手完成,则连接的状态将为ESTABLISHED.
在这个任务中,你需要演示SYN-Flooding攻击:
您可以使用Netwox来执行攻击,然后使用嗅探器捕获攻击性数据包.
在攻击发生时,在受害机器上运行“netstat -na”命令,并将结果与攻击前的结果进行比较.
2. Netwox 76简介
3. SYN Cookie防御机制
如果你的攻击看起来不成功,你可以检查是否启用了SYN cookie机制.
SYN cookie是抵抗SYN-Flooding的防御机制.
防御原理简介:
在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,
而是根据这个SYN包计算出一个cookie值.
在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性.
如果合法,再分配专门的数据区进行处理未来的TCP连接.
你可以使用sysctl命令打开/关闭SYN cookie机制:
4. 实验结果分析
比较 netstat -na 前后状态如下:
产生大量的TCP半连接,阻塞了队列,导致后续正常TCP连接无法建立!!
TCP-RST攻击
1. FTP协议
2. TELNET协议
3. SSH协议
4. Newox 78简介
5. 实验结果分析
-** FTP**
FTP服务器地址: 192.168.59.146/24
FTP客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
Telnet服务器地址: 192.168.59.146/24
Telnet客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
SSH服务器地址: 192.168.59.146/24
SSH客户端地址: 192.168.59.144/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP-RST打击:
结果显示:已经建立的TCP连接断开.
TCP会话劫持
1. 会话劫持简介
TCP会话劫持攻击的目标是通过向该会话中注入恶意内容来劫持两名受害者之间的现有TCP连接(会话).
如果这个连接是一个telnet会话,攻击者可以在这个会话中注入恶意命令(例如删除重要文件),导致受害者执行恶意命令.
2. Wireshark简介
如果您使用Wireshark观察网络流量,当Wireshark显示TCP序列号时,
默认情况下会显示相对序列号,它等于实际序列号减去初始序列号.
如果想查看包中的实际序列号,则需要右键单击Wireshark输出的TCP部分,
然后选择"Protocol Preference". 在弹出窗口中,取消选"Relative Sequence Number"选项.
3. Netwox 40简介
4. 实验结果分析
Telnet服务器地址: 192.168.59.148/24
Telnet客户端地址: 192.168.59.146/24
攻击者地址: 192.168.59.1/24
攻击者终端对受害者进行TCP会话劫持:
我们要伪造发下一个包:
所以直接采用nextseq作为下一个包的ack,采用ack作为下一个包的seq.
最后一个Telnet数据包内容如下:
我们伪造向服务器 192.168.59.148 发送 ls 命令,
通过netwox构造我们的攻击指令如下:
在wireshark上显示抓包数据如下:
来创建我们的肉鸡~
现在我们来通过NC反弹一个Shell,来控制我们受害者:
首先是构造NC命令:
实验结果如图:
首先看结果:我们成功拿到了服务器上的用户gu的所有权限!
咱们再来看看抓包数据,通过抓包数据,你可以看到最后一条Telnet的TCP数据,通过这些数据,就可以很方便通过Netwox构造攻击语句了!!
2023-05-30 广告