Beispiel #1
0
class ScapySniffer(ScapyProtocol):
    def __init__(self, pcap_filename, *arg, **kw):
        self.pcapwriter = PcapWriter(pcap_filename, *arg, **kw)

    def packetReceived(self, packet):
        self.pcapwriter.write(packet)

    def close(self):
        self.pcapwriter.close()
Beispiel #2
0
def scapy_io(f_in,f_out):
    f = PcapReader(f_in)
    o = PcapWriter(f_out)
    pkt = f.read_packet()
    while pkt is not None:
        o.write(pkt)
        pkt = f.read_packet()
    f.close()
    o.close()
Beispiel #3
0
def scapy_io(f_in, f_out):
    f = PcapReader(f_in)
    o = PcapWriter(f_out)
    pkt = f.read_packet()
    while pkt is not None:
        o.write(pkt)
        pkt = f.read_packet()
    f.close()
    o.close()
def writePCAP(src, dst, data):
	try: 
		pktdump = PcapWriter(sOutfile + '.pcap', append=True, sync=True)
		pktinfo = Ether()/IP(src=src[0],dst=dst[0])/TCP(sport=src[1],dport=dst[1])/data
		pktdump.write(pktinfo)
		pktdump.close()
	except Exception as Error: 
		#print(str(Error))
		pass
Beispiel #5
0
class ScapySniffer(ScapyProtocol):
    def __init__(self, pcap_filename, *arg, **kw):
        self.pcapwriter = PcapWriter(pcap_filename, *arg, **kw)

    def packetReceived(self, packet):
        self.pcapwriter.write(packet)

    def close(self):
        self.pcapwriter.close()
Beispiel #6
0
def writePCAP(src, dst, data):
    try:
        pktdump = PcapWriter(sOutfile + '.pcap', append=True, sync=True)
        pktinfo = Ether() / IP(src=src[0], dst=dst[0]) / TCP(
            sport=src[1], dport=dst[1]) / data
        pktdump.write(pktinfo)
        pktdump.close()
    except Exception as Error:
        #print(str(Error))
        pass
Beispiel #7
0
    def _log_packets(self, file_path, client_mac):
        with self.log_lock:
            cap_writer = PcapWriter(file_path)
            if not self.wpa_handshakes[client_mac]['logged']:
                self.wpa_handshakes[client_mac]['logged'] = True
                for packet in self.wpa_handshakes[client_mac]['packets']:
                    if Dot11Beacon not in packet:
                        cap_writer.write(packet)
                cap_writer.close()
                cap_writer = PcapWriter(file_path, append=True)
                for packet in self.wpa_handshakes[client_mac]['packets']:
                    if Dot11Beacon in packet:
                        cap_writer.write(packet)

            cap_writer.close()
    def _log_packets(self, file_path, client_mac):
        with self.log_lock:
            cap_writer = PcapWriter(file_path)
            if not self.wpa_handshakes[client_mac]['logged']:
                self.wpa_handshakes[client_mac]['logged'] = True
                for packet in self.wpa_handshakes[client_mac]['packets']:
                    if Dot11Beacon not in packet:
                        cap_writer.write(packet)
                cap_writer.close()
                cap_writer = PcapWriter(file_path, append = True)
                for packet in self.wpa_handshakes[client_mac]['packets']:
                    if Dot11Beacon in packet:
                        cap_writer.write(packet)

            cap_writer.close()
Beispiel #9
0
def foo(in_filename, out_filename):
    # open the input file for reading
    f = PcapReader(in_filename)
    # open the output file for writing
    o = PcapWriter(out_filename)

    # read the first packet from the input file
    p = f.read_packet()

    # while we haven't processed the last packet
    while p:
        layer = p.firstlayer()
        while not isinstance(layer, NoPayload):
            if (type(layer) is IPv6):
                new_layer = IP()
                del new_layer.ihl
                new_layer.ttl = layer.hlim
                new_layer.proto = layer.nh
                new_layer.src = ".".join(map(str, six2four(layer.src)))
                new_layer.dst = ".".join(map(str, six2four(layer.dst)))
                new_layer.add_payload(layer.payload)
                prev_layer = layer.underlayer
                del layer
                prev_layer.remove_payload()
                prev_layer.add_payload(new_layer)
                if type(prev_layer) is Ether:
                    prev_layer.type = ETH_P_IP
                layer = new_layer

            if layer.default_fields.has_key('chksum'):
                del layer.chksum
            if layer.default_fields.has_key('len'):
                del layer.len

            # advance to the next layer
            layer = layer.payload

        # write the packet we just dissected into the output file
        o.write(p)
        # read the next packet
        p = f.read_packet()

    # close the input file
    f.close()
    # close the output file
    o.close()