def unpack(self, buf): dpkt.Packet.unpack(self, buf) if self.family == 2: self.data = ip.IP(self.data) elif self.family == 0x02000000: self.family = 2 self.data = ip.IP(self.data) elif self.family in (24, 28, 30): self.data = ip6.IP6(self.data) elif self.family > 1500: self.data = ethernet.Ethernet(self.data)
def test_llc(self): s = '\xaa\xaa\x03\x00\x00\x00\x08\x00\x45\x00\x00\x28\x07\x27\x40\x00\x80\x06\x1d\x39\x8d\xd4\x37\x3d\x3f\xf5\xd1\x69\xc0\x5f\x01\xbb\xb2\xd6\xef\x23\x38\x2b\x4f\x08\x50\x10\x42\x04\xac\x17\x00\x00' import ip llc_pkt = LLC(s) ip_pkt = ip.IP(llc_pkt.data) self.failUnless(llc_pkt.type == ethernet.ETH_TYPE_IP) self.failUnless(ip_pkt.dst == '\x3f\xf5\xd1\x69')
def test_IP_version_header_length(): raw_ip_packet = b'\x45\x00\x00\x54\x1c\xff\x40\x00\x40\x01\x07\x80\x0a\x14\x01\x01\x0a\x14\x01\x02\xaa\xbb' ip_packet = ip.IP(raw_ip_packet) ip_packet.version = 5 ip_packet.header_length = 24 assert ip_packet.version == 5 assert ip_packet.header_length == 24 assert ip_packet.header == b'\x56\x00\x00\x54\x1c\xff\x40\x00\x40\x01\x07\x80\x0a\x14\x01\x01\x0a\x14\x01\x02\xaa\xbb'
def __init__(self): self.meias = {} self.fd = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(eth.ETH_P_ALL)) self.fd.bind((eth.if_name, 0)) self.ip_handler = ip.IP() self.loop = asyncio.get_event_loop() self.loop.add_reader(self.fd, self.recebe_binario, self.fd)
def test_llc(): s = ('\xaa\xaa\x03\x00\x00\x00\x08\x00\x45\x00\x00\x28\x07\x27\x40\x00\x80\x06\x1d' '\x39\x8d\xd4\x37\x3d\x3f\xf5\xd1\x69\xc0\x5f\x01\xbb\xb2\xd6\xef\x23\x38\x2b' '\x4f\x08\x50\x10\x42\x04\xac\x17\x00\x00') import ip llc_pkt = LLC(s) ip_pkt = ip.IP(llc_pkt.data) assert (llc_pkt.type == ethernet.ETH_TYPE_IP) assert (ip_pkt.dst == '\x3f\xf5\xd1\x69')
def unpack(self, buf): dpkt.Packet.unpack(self, buf) if self.family > 1500: self.data = ethernet.Ethernet(self.data) else: v = ord(self.data[0]) >> 4 if self.family == 2 or v == 4: # AF_INET appears consistent self.data = ip.IP(self.data) elif v == 6: # XXX - AF_INET6 differs on *BSD, MacOS X, etc. self.data = ip6.IP6(self.data)
def test_llc(): import ip s = ( '\xaa\xaa\x03\x00\x00\x00\x08\x00\x45\x00\x00\x28\x07\x27\x40\x00\x80\x06\x1d' '\x39\x8d\xd4\x37\x3d\x3f\xf5\xd1\x69\xc0\x5f\x01\xbb\xb2\xd6\xef\x23\x38\x2b' '\x4f\x08\x50\x10\x42\x04\xac\x17\x00\x00') llc_pkt = LLC(s) ip_pkt = llc_pkt.data assert isinstance(ip_pkt, ip.IP) assert llc_pkt.type == ethernet.ETH_TYPE_IP assert ip_pkt.dst == '\x3f\xf5\xd1\x69' assert str(llc_pkt) == s assert len(llc_pkt) == len(s) # construction with SNAP header llc_pkt = LLC(ssap=0xaa, dsap=0xaa, data=ip.IP(s[8:])) assert str(llc_pkt) == s # no SNAP llc_pkt = LLC(ssap=6, dsap=6, data=ip.IP(s[8:])) assert isinstance(llc_pkt.data, ip.IP) assert str(llc_pkt) == '\x06\x06\x03' + s[8:]
def run(self): print "" self.output.info('Starting disclosures module...') try: resp = self.request.send(url=self.url, method="GET", payload=None, headers=None, cookies=self.cookie) ip.IP(resp.content) email.Email(resp.content) card.Card(resp.content) except Exception, e: pass
def test_80211_data(): s = '\x08\x09\x20\x00\x00\x26\xcb\x17\x3d\x91\x00\x16\x44\xb0\xae\xc6\x00\x02\xb3\xd6\x26\x3c\x80\x7e\xaa\xaa\x03\x00\x00\x00\x08\x00\x45\x00\x00\x28\x07\x27\x40\x00\x80\x06\x1d\x39\x8d\xd4\x37\x3d\x3f\xf5\xd1\x69\xc0\x5f\x01\xbb\xb2\xd6\xef\x23\x38\x2b\x4f\x08\x50\x10\x42\x04\xac\x17\x00\x00' ieee = IEEE80211(s, fcs=True) assert ieee.type == DATA_TYPE assert ieee.subtype == D_DATA assert ieee.data_frame.dst == '\x00\x02\xb3\xd6\x26\x3c' assert ieee.data_frame.src == '\x00\x16\x44\xb0\xae\xc6' assert ieee.data_frame.frag_seq == 0x807e assert ieee.data == '\xaa\xaa\x03\x00\x00\x00\x08\x00\x45\x00\x00\x28\x07\x27\x40\x00\x80\x06\x1d\x39\x8d\xd4\x37\x3d\x3f\xf5\xd1\x69\xc0\x5f\x01\xbb\xb2\xd6\xef\x23\x38\x2b\x4f\x08\x50\x10\x42\x04' assert ieee.fcs == struct.unpack('I', '\xac\x17\x00\x00')[0] import llc, ip llc_pkt = llc.LLC(ieee.data_frame.data) ip_pkt = ip.IP(llc_pkt.data) assert ip_pkt.dst == '\x3f\xf5\xd1\x69'
def run(self): if '--verbose' in sys.argv: self.output.test('Disclosure attacks...') try: email.Email(agent=self.agent, proxy=self.proxy, redirect=self.redirect, timeout=self.timeout, url=self.url, cookie=self.cookie).run() ip.IP(agent=self.agent, proxy=self.proxy, redirect=self.redirect, timeout=self.timeout, url=self.url, cookie=self.cookie).run() except Exception, e: pass
def unpack(self, buf): dpkt.Packet.unpack(self, buf) self.data = self.ip = ip.IP(self.data)