首先,要说的是,在互联网里,最重要的就是通信,没有通信,大家都只能玩单机游戏。所以一台服务器对另一台服务器的问候默认会回复。
一台叫小明
的服务器想与另一台叫小红
的服务器通信,他会先在自己小区(内网
)里喊一下:小红在吗。要是小红听到了,会直接回复小明。如果没人回复小明,说明小红和小明不在同一个小区里。
小明就会借助小区门卫的喇叭(网关
)进行全网广播:小红在吗。其他小区的门卫听见了,就会在各自的小区里问:谁是小红,有人找。
其他人一听在叫小红,不是叫自己,听了就忘了,会忽略此消息。 真正的小红听到了,会借助她们小区的门卫的喇叭回复小明:我就是小红,你有啥事吗。(不算伪装欺骗的,每台机器的mac地址都是唯一的,和人的身份证一样,所以不考虑有重名的)
说白了,只要你对一个服务器发出消息,他必然会回复你一条消息。(当然,你被对方拉黑了除外,或者对方只允许美女给他发消息,你不是美女,那也白搭)
英文名称是Denial of Service
,简称DOS,即拒绝服务,造成其攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽, 最后导致合法的用户请求无法通过。
连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。常用攻击手段有:同步洪流、WinNuke、死亡之PING、Echl攻击、ICMP/SMURF、Finger炸弹、Land攻击、Ping洪流、Rwhod、tearDrop、TARGA3、UDP攻击、OOB等。
说了这么多,啥意思呢? 举个例子吧,你加了女神的QQ,你不想让别人和你的女神聊天。但是女神的好友显然不止你一个,咋办。 不停的给女神发消息,把她的流量耗光,没流量了,看她跟谁聊天。 什么?女神是个富婆,不差这点流量?那也没关系,我还是不停的给她发消息。前面说过了,互联网最重要的是通信,有来有回。你给女神发一句消息,女神必然回你一句消息。女神不停的在回你消息,自然没时间处理其他人的消息了。 以前别人给女神发消息,女神可能秒回他;现在别人给女神发消息,女神可能要一个小时才能回消息。这个“别人”思来想去,自然也慢慢的不会给女神发消息了。
dos这玩意杀敌一千自损八百,你要消耗女神的流量,首先你自己也要消耗这么多流量来给她发消息。
如果说dos是一打一,那么ddos就是多打一。用成千上万个肉鸡去进攻一个服务器,这就要求你需要提前拿下一大批肉鸡去进行攻击。
前面说了,dos杀敌一千自损八百,为了节约流量,就有了rdos
互联网最重要的就是交互,你问我答。 但是,正如人有话痨,人有哑巴一样,服务器也分几种。有的服务器你问他一句,他才回一句;有的服务器是个话痨,你发他一句话,他会回你100句话。
于是你伪装成受害者,给话痨发一句话,话痨回复了受害者100句话。你只要说一句话,就让受害者听了100句废话。典型的以小博大
放大主要利用的是NTP的monlist(listpeers也行)、DNS的AXFR(ANY也行)、SNMP的getbulkrequest
分布式拒绝服务攻击,顾名思义,就是让很多机器对受害者进行rdos攻击,和ddos不一样,dros不需要提前将这些肉鸡拿下。你只要伪装成受害者对100个“话痨”肉鸡群发一句话,受害者就会收到10000句话
snmp放大6倍 dns 放大30到50多倍 ntp 放大500多倍 mem 11211端口 同时支持tcp11211与udp11211 理论上可以放大40万倍,实际上可以发大5万倍
这是一些常用协议的反射倍数
python脚本
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()