利用原始套接字实现一个TCP SYN flooding 程序

实验要求

  1. 客户端不断向攻击端发送SYN连接请求
  2. 客户端在发送数据时,通过源地址随机地址的方式隐藏自己的IP地址
  3. 检验:在shell下通过“netstat -tn”检查syn_recv连接数检验自己的程序是否成功

实验环境

Red Hat 9

代码

利用原始套接字实现一个TCP SYN flooding 程序_第1张图片
利用原始套接字实现一个TCP SYN flooding 程序_第2张图片
利用原始套接字实现一个TCP SYN flooding 程序_第3张图片
利用原始套接字实现一个TCP SYN flooding 程序_第4张图片
利用原始套接字实现一个TCP SYN flooding 程序_第5张图片
利用原始套接字实现一个TCP SYN flooding 程序_第6张图片
利用原始套接字实现一个TCP SYN flooding 程序_第7张图片

运行

  1. 首先查看目标机子有哪些开放端口,由于本次实验利用RedHat 9为目标机,因此通过命令netstat -tn查看,结果如下,IP为192.168.xxx.xxx,可见只开放22号端口
    利用原始套接字实现一个TCP SYN flooding 程序_第8张图片
  2. 运行泛洪攻击程序./synflooding 192.168.xxx.xxx 22,结果为攻击机端使用随机假IP向靶机不断发送数据包
    利用原始套接字实现一个TCP SYN flooding 程序_第9张图片
  3. 在靶机端开一个终端,输入命令netstat -tn查看在被攻击状态中的网络连接情况,发现收到大量来自8900端口的SYN数据包(在程序中指定攻击端的端口为8900)
    利用原始套接字实现一个TCP SYN flooding 程序_第10张图片
  4. 再查看已建立的连接数,由于查资料知Red Hat 9的最大连接数为769,可见泛洪攻击已经导致靶机达到最大连接数。
    在这里插入图片描述
  5. 由于以上程序是在物理机上的Xshell里运行,因此不好观察CPU的消耗情况,因此又直接在虚拟机Red Hat里运行,清晰地观察到CPU被全部占用,达到泛洪攻击的目的。
    利用原始套接字实现一个TCP SYN flooding 程序_第11张图片

你可能感兴趣的:(操作系统)