kaliddos攻击网站教程
2023年秋天,攻击一个做外贸独立站的网站朋友半夜给我打电话,说网站首页被替换成了一张黑底红字的教程图片,上面写着“你的攻击数据在我手里”。他以为是网站勒索软件,其实不是教程——那是Kali Linux里一个叫“ddos”的工具留下的痕迹。准确说,攻击是网站有人用Kali自带的hping3和slowloris组合,把他那台没做任何防护的教程VPS打瘫了。
Kali本身不是攻击攻击工具,它是网站一个预装了六百多个渗透测试工具的Linux发行版。问题出在很多人只学会了敲命令,教程没搞懂这些命令背后的攻击协议原理。拿DDoS来说,网站Kali里能直接用的教程就有hping3、slowloris、GoldenEye、mdk3(无线层面)等等。这些工具的共同点是:利用TCP/IP协议栈的缺陷,用极低成本消耗目标资源。
hping3:最原始的洪水攻击
打开Kali终端,输入:
hping3 -S --flood -V -p 80 目标IP 这条命令会向目标80端口发送大量SYN包,源IP随机伪造。目标服务器每收到一个SYN,就要分配一个半连接状态,等待最后的ACK。等不到,就占着内存。几千个并发下来,连接表就满了。正常用户再访问,直接超时。
我实测过一台1核1G的便宜VPS,用hping3从另一台Kali机器打过去,不到40秒,目标SSH都连不上了。但这种方式有个致命缺陷:流量会经过你的真实网卡。如果目标有流量清洗或者上游运营商做了源IP过滤,攻击包根本出不了你的局域网。
slowloris:慢速攻击的典型
它不追求带宽,追求的是“占着茅坑不拉屎”。原理是向Web服务器发送不完整的HTTP请求头,每隔几秒补一个字段,让服务器一直等后续数据。Apache默认的Timeout是300秒,一个连接就能占住一个worker进程。200个连接就能打垮一台没调过参数的Apache。
Kali里用slowloris很简单:
slowloris 目标域名 -s 500 -s指定socket数量。我见过有人拿它打WordPress站,效果比hping3还好,因为WordPress的PHP-FPM进程池很小,几十个慢连接就耗光了。
真实案例:一次没成功的攻击
去年有个做在线考试系统的客户,被人用Kali里的GoldenEye打了。GoldenEye是结合了HTTP flood和keep-alive的混合工具,命令是:
./goldeneye.py http://目标 -w 50 -s 200 50个worker,每个发200个请求。按道理应该能打穿,但客户用了Cloudflare。Cloudflare的免费版就能识别这种模式:同一IP在短时间内发起大量相似请求,直接返回JS挑战。攻击流量根本没到源站。后来攻击者换了IP池,但成本上去了,打了半小时就停了。
这件事说明一个事实:Kali里的DDoS工具对付没有CDN、没有WAF、没有速率限制的裸站,效果立竿见影;但只要目标上了任何一层云防护,这些工具就变成玩具。真正有威胁的是僵尸网络,不是Kali。
你该关心的不是怎么打,而是怎么防
如果你在运营网站,下面三件事比研究Kali工具重要得多:
1. 把源站IP藏起来。用CDN或者反向代理,别让任何人直接ping到你的真实服务器。很多攻击者先用Shodan扫端口,找到开放80的IP直接打。你藏了IP,他就得先过CDN这一关。
2. 调内核参数。Linux下改/etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_synack_retries = 2 syncookies开启后,半连接队列满了也不怕,服务器会用加密cookie回应SYN,不占用内存。
3. 上速率限制。Nginx里加两行:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_req zone=one burst=20; 每个IP每秒最多10个请求,多了就排队或者拒绝。slowloris那种慢速攻击直接被挡在门外。
Kali里的DDoS工具,本质上是在测试你服务器的默认配置有多脆弱。默认配置就是脆弱的。改掉它,那些工具就只剩教学意义了。
(责任编辑:探索)
