实验六 网络协议攻击——TCP攻击

实验六 TCP/IP 攻击实验
实验拓扑图
在这个实验中,telnet的账户是 seed,
SYN 泛洪攻击
网络上的两台主机在建立 TCP 请求前需要完成三次握手,起方 Client 会发送一个 TCP SYN 包,(ack=x+1) 同时自己也发送一个 SYN 包(syn=y) 即 SYN+ACK 包,RECV;客户端收到服务器的 SYN+ACK 包,客户端和服务器进入ESTABLISHED 状态,三次握手的过程在第 3 次实验中已经让大家体会过,攻击者向受害者的 TCP 端口发送许多 SYN但攻击者即使收到受害者的 SYN+ACK包也不会返回ACK包,
(发送给受害者的 IP 毕竟可以伪造) 因此,要么自己故意不返回 ACK 包。队列忙碌,即已经完成 SYN、SYN-ACK 但还没有得到最终 ACK 的连接。 当此队列已满受害者将无法再进行任何连接。
任务 1.1 使用 python程序完成 SYN泛洪攻击
而想要完成 SYN 泛洪攻击也非常简单,在 seed-attacker容器中运行 syn_flood.py 即可,如果你足够细心,可以看到这个包是发给谁的,以及发送的端口还有如何发送的,打开 victim-10.9.0.5 容器,使用命令 netstat -tna | grep SYN_RECV | wc -l 查看处于
“SYN_RECV”状态的端口数量或者直接使用 netstat -tna查看具体情况,可以发现有大量的伪造 IP地址给受害者的 23端口发送了TCP SYN 包,而且都处于等待接受 ACK 状态。,使用 ss -n state syn-recv sport = :23 | wc -l 来显示 23 端口处于 SYN_RECV 状态的队列实际上,队列容量是可以在系统中设置的。在 Ubuntu 操作系统中,我们可以使用以下命令查看容量大小
需要注意的是,队列中四分之一的空间是为“已验证的目的地”保留的,所以即便我们发动攻击,受害者的 TCP队列中最多也只有 96 个包。具体解释可以看后面的Note B。如果发包效率不高,可以多开攻击者几个终端进行发包,当然这样会消耗大量的你自的计算机资源。我们也可以通过这个命令修改受害者主机的队列容量,使攻击更容易完成实际上,当受害者发送 SYN+ACK 数据包后,受害机器将等待 ACK 数据包。 如果没
有及时到达,TCP 将重传 SYN+ACK 数据包。 它将重传多少次取决于以下内核参数(默认情况下,其值为 5):当然你也可以修改这个值,改的大也就能让这个包等待的越久,攻击也能更容易实现。为了检测攻击是否成功,我们随便选择一台机器 telnet 受害者,查看是否能够连接成功,如果一直无法连接或者是 telnet 连接中断,说明完成了 SYN 泛洪攻击。需要注意的是,这
个任务的攻击的不一定成功,可以用前面提到的方法多次尝试。并且注意看Note B
任务 1.2:使用 C 程序完成 SYN泛洪攻击
然后我们再尝试使用 C 语言的程序来发动攻击运行 sudo gcc -o synflood synflood.c来编译这个程序,运行 synflood 10.9.0.5 23来发动攻击,由于编译器的关系,C 的运行效率要比 Python 快得多,同样的程序 C 的发包速度要比
Python 快 40 倍。从你电脑的任务管理器也能看出 C 程序运行后 CPU 明显占用变高。而且攻击的成功率也更高。
任务 1.3:打开 SYN Cookie Countermeasure 再次进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值