十五、Kali Linux 2 拒绝服务攻击
拒绝服务攻击
拒绝服务攻击即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安全缺陷,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。
一、数据链路层的拒绝服务攻击
在目前的网络架构中,大部分在局域网内的通信的设备都是通过交换机进行。相比较集线器,交换机的优点就是有“记忆”和“学习”的功能,这两个功能通过交换机的CAM表来实现,这张表保存了交换机每个接口所连接计算机的MAC地址信息,这些信息可以通过动态学习来完成。
而在数据链路层发起的拒绝服务攻击并不是攻击二层交换机,让其停止工作,而是让其以一种不正常的方式工作。
比如,在就局域网中,A主机向B主机发送数据时,会将这个数据包发送给交换机,由交换机进行转发,交换机在收到这个数据包时会提取出数据包的目的MAC地址,并查询CAM表,如果能查找到对应的表项,就将数据包从找到的接口发出去。如果没有找到,再将数据包向所有接口发送。在转发数据包的时候,交换机还会进行一个学习的过程,交换机会将接收到的数据包中的源MAC地址提取出来,并查询CAM表,如果表中没有这个源MAC地址对应接口的信息,则会将这个数据包中的源MAC地址与收到这个数据包的接口作为新的表项插入到CAM表中。交换机的学习是一个动态的过程,每个表象都不是固定的,而是有一个定时器(通常为5分钟),从这个表项插入到CAM表开始起,当该定时器递减到零时,该CAM项就会被删除。
这个机制保证采用交换机设备的局域网的数据包都是单播的,但是CAM表的容量时有限的,如果短时间内收到大量不同源MAC地址发来的数据包,CAM表就会被填满。当填满之后,新到的条目就会覆盖之前的条目。这样网络中正常数据包到达交换机之后,而CAM表已经被填满了,无法找到正确的对饮关系,只能将数据包广播出去。这时受到攻击的交换机实际上已经退化成集线器,hack只需要在自己的计算机上将网卡设置为混杂模式,就可以监听整个网络的通信了。
这种攻击的核心为,短时间内伪造大量的数据包发送到交换机,这些数据包中的端MAC地址和目的MAC地址都是随机的,很快就可以将CAM表填满。
专门的攻击工具——macof,它是 Dsniff 工具集的成员,常用命令如下:
Dsniff:kali@kali:~$ sudo apt install dsniff
使用方法:Usage: macof [-s src] [-d dst] [-e tha] [-x sport] [-y dport] [-i interface] [-n times]
使用macof:Kali@kali:~#sudo macof
二、网络层的拒绝服务攻击
位于网络层的协议包括 ARP、IP 和 ICMP 等,其中 ICMP 主要用于在主机、路由器之间传递控制消息。我们平时检测网络连通情况时使用的 ping 命令就基于 ICMP。
但到想办法增加发送到目标主机的数据包的数量时,这里主要就有两种方法:
一是同时使用多台主机发送 ICMP 数据包
二是提高发送 ICMP 数据包的速度
我们采用Kali Linux 2 中自带的 hping3 进行拒绝服务攻击。hping3 是一款用于生成和解析 TCP/IP 数据包的开源工具,之前还推出过 hping 和 hping2 两个版本。hping3 也是一个命令式工具,各种功能要依靠设置参数来实现。
hping3中的各个参数含义具体如下:
-h --help 显示帮助信息
-v --version 显示当前hping的版本
-c --count 发送指定数据包的次数
-i --interval 发送数据包之间的间隔时间(格式为uX,表示间隔时间为X微秒)
-n --numeric 数值化的输出
-q --quiet 静默模式,只显示最后的统计数据
-I --interface 指定需要使用的网络接口
-V --verbose 详细模式
-D --debug 调试信息
-z --bind 将“ctrl+z”键组合键与发送包的TTL值绑定,按一次TTL值加1
-Z --unbind 解除“ctrl+z”键组合键与发送包的TTL值的绑定
三、传输层的拒绝服务攻击
TCP 和 UDP 都位于传输层,这两个协议都可以实现拒绝服务攻击,但是攻击方式不相同。UDP 拒绝服务攻击与 ICMP 拒绝服务攻击原理相同,也需要向目标快速地发送大量数据包。不同之处在于 UDP 拒绝服务攻击原理相同,也需要向目标快速地发送大量数据包。
基于 TCP 的拒绝服务攻击有两种:一种是和目标端口完成3次握手,建立一个完整连接;另一种是只和目标端口完成3次握手中的前两次,建立一个不完整的连接,这种攻击之最为常见的,我们通常将这种攻击称为 SYN 拒绝服务攻击。
hping3参数来构造一次基于TCP协议的拒绝服务攻击,在Kali Linux 2中打开一个终端,然后在终端中输入:
hping3 -q -n -a 10.0.0.1 -S -s 53 --keep -p 22 --flood 192.168.0.2
四、基于应用层的拒绝服务攻击
位于应用层的协议比较多,常见的有 HTTP、FTP、DNS、DHCP 等。每个协议都有可能被用来发起拒绝服务攻击,这里我们以 DHCP 为例进行讲解。DHCP 通常被应用在大型的局域网中,主要作用是集中地管理、分配 IP 地址,使网络环境中地主机动态地获取 IP 地址、网关地址、DNS 服务器地址等信息,并能够提升地址地使用率。
DHCP 攻击地目标也是服务器,怀有恶意地攻击者伪造大量 DHCP 请求发送到服务器,这样 DHCP 服务器地址池中的 IP 地址很快就会被分配完,从而导致合法用户无法申请到 IP 地址。同时大量的 DHCP 请求也会导致服务器高负荷运行,从而导致设备瘫痪。
在本章中我们将会学到两个工具:一个是 Yersinia,这是一个功能十分强大的、图形化的拒绝服务攻击工具;另一个是我们比较熟悉的 Metasploit。
安装 Yersinia 工具的命令:
kali@kali:~$ sudo apt-get install yersinia
启动这个图形化界面工具:
kali@kali:~# sudo yersinia -G
主要是以4种发包的形式的含义具体如下:
sending RAW packet:发送原始数据包
sending DISCOVER packet:发送请求来获取 IP 地址数据包,占用所有的 IP 地址,造成拒绝服务。
creating DHCP rogue server:创建虚假 DHCP 服务器,让用户连接,导致真正的 DHCP 服务器无法工作。
sending RELEASE packet:发送释放 IP 地址请求到 DHCP 服务器,致使正在使用的 IP 地址全部失效。
在本次实验中启动 msfconsole 之前需要先切换为 root 用户:
kali@kali:~$ sudo -i
root@kali:~# msfconsole
成功启动 Metasploit 之后,可以使用 search 命令来查找与拒绝服务攻击相关的模块。
总结:
拒绝服务攻击一直是一个让网络安全人员感到无比头疼的问题,受到这种攻击的服务器将无法提供正常的服务。通常我们所说的拒绝服务攻击一般是指对HTTP服务器发起的TCP连接攻击。但实际上拒绝服务攻击的范畴要远远比这更大,本章按照TCP/IP协议的结构,依次介绍了数据链路层、网络层、传输层和应用层中协议的漏洞,并讲解了如何利用这些漏洞来发起拒绝服务攻击。本章使用几个强大的工具,如 macof、hping3、Yersinia、Metasploit 等。这几个工具各有特色,它们组合起来几乎可以完成所有的拒绝服务攻击。尤其是 hping3,是一款特别灵活的工具,使用它几乎可以构造任何需要的数据包。
本章介绍的攻击都是从一台计算机发起的,也就是拒绝服务攻击。现在更为常见的是分布式拒绝服务攻击,这种攻击方式指借助于客户端/服务端技术,将多台计算机联合起来作为攻击平台,对一个或多个目标发起 DDos 攻击,从而成倍地提高拒绝服务攻击的威力。
截至到本章结束,我们整个 Kali Linux 2 网络渗透测试实践就结束了,希望大家会认真对待渗透测试这门技术,它也是现在社会上网络安全研究的核心问题之一。
十五、Kali Linux 2 拒绝服务攻击相关推荐
- 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(十五):主角受攻击效果以及场景切换
十五章:主角受攻击效果以及场景切换 本篇博客将<黑暗之光>开发的最后工作做完,包括之前未实现的主角被击效果,以及实际运行中的场景切换. 15.1 主角的受攻击效果 我们参照WolfBaby ...
- Kali渗透-DDOS拒绝服务攻击
前言 严正声明:本文仅限于技术讨论与分享,严禁用于非法途径. 本文目的 演示如何借助 Kali Linux 系统内置的一个 TCP/IP 数据包组装/分析工具 hping 和在 Github 上开源的 ...
- linux exec 二程序,二十五、Linux 进程与信号---exec函数
25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...
- kali linux实现arp攻击对方主机
1,通过kali实现arp攻击 攻击原理: 当A发广播询问:我是192.168.43.2,硬件地址macA,我想知道主机IP是192.168.43.3的硬件地址. 此时B回应:我是192.168.43 ...
- Kali Linux SQL注入攻击教程
1 概述 SQL注入是影响企业运营最具破坏力的漏洞之一,他会泄露保存在应用程序数据库中的敏感信息,包括用户名,口令,地址,电话号码以及信用卡明细等容易被利用的信息. SQL注入是这样一种漏洞:应用程序 ...
- Linux 驱动开发 三十五:Linux 内核时钟管理
参考: linux时间管理,时钟中断,系统节拍_u010936265的博客-CSDN博客_系统节拍时钟中断 Linux内核时钟系统和定时器实现_anonymalias的专栏-CSDN博客_linux内 ...
- 十五、Linux驱动之USB鼠标驱动
1. 如何编写USB鼠标驱动 结合十四.Linux驱动之USB驱动分析中的分析,我们开始写一个USB鼠标驱动. USB的驱动可以分为3类:SoC的USB控制器的驱动,主机端USB设备的驱动, ...
- Kali linux 学习笔记(三十五)无线渗透——WPS攻击 2020.3.13
前言 WPS(wireless protected setup) wifi联盟2006年开发的技术 路由器和网卡各按一个键就能接入无线 PIN码分为前后两段各4位 1.安全漏洞 2011年发现接入发起 ...
最新文章
- DirectX10一矩阵代数(二)
- python处理数据的优势-选择python进行数据分析的理由和优势
- 理解linux time命令的输出
- wamp 配置 mysql_PHPWAMP配置应该如何修改,Web服务器、php、mysql的具体配置修改
- Numpy Math functions
- Buffer(缓冲/字节容器)详解
- Spring : BeanDefinition
- python接口自动化测试一:http协议
- 【开发工具】之source insight 4常用设置
- sql 读取本地txt文件批量插入数据库
- 室友转行软件测试,月薪1.4万,天天摸鱼没事干
- 微信小程序(第二十六章)- json-server环境搭建
- 计算机网络英语的参考文献,计算机网络实践英文参考文献 计算机网络实践英语参考文献哪里找...
- ic卡信息保存在服务器,智能IC卡网络数据安全保密系统
- Python快速计算函数耗时timeit
- Confluence使用教程
- 最大堆和最小堆(数据结构)
- 北上广深之外,互联网经济也在杭州成都西安武汉异军突起
- Mac安装brew(无需FQ)
- Java 入门练习(6 - 10)
热门文章
- 微机接口芯片(2)—— 可编程定时/计数接口芯片 8253/8254
- JBoss漏洞总结复现
- 冯炜权与他的万事达卡
- 对话三维家创始人蔡志森:AIGC让家装从“填空题”变成了“选择题”
- 2022年上半年软考(中/高级)考试报名向导
- Git 笔记 - git pull
- continue语句的作用
- 民工14辆三轮摩托风餐露宿3000公里艰辛返乡(图)
- 黑苹果完善第一步:洗白条件探究 能否自己推算三码洗白 如何进行洗白
- python1加到100_python实现1加到100