Jul-01-2018, 10:05 AM
Hello! I'm new to python... so i did a TCP Packet Sniffer to have an idea on how python is on hacking since i wanna to do anti-TCP Packet sniffers etc.
So i got a python code for sniffing ;D great right?...right??
Anyway, i modified it so it can be like beautiful and nit for the user. So i decide to put arguments like:
--sniff-tcp - Sniff TCP packets / Hosts
--sniff-arp - Sniff ARP packets
So i found this module called ArgParse or argparse or whatever xD i imported it and i did the code so i made a function which will start TCP sniffing
if the user puts --sniff-tcp but everytime i do it i get an error which is haunting me cause this error i have saw it ON EACH OF EVERY SCRIPT I DID EVEN COPIED FROM INTERNET...
File "sniffer.py", line 25
try:
^
IndentslError: unindent does not match any outer indentation level
When i see this error i feel like getting a real python and burn it DOWN >:(
So here's my code:
And if anyone could tell me how to do easy and working arguments in python that could be AWESOME!
Lots of love!
So i got a python code for sniffing ;D great right?...right??
Anyway, i modified it so it can be like beautiful and nit for the user. So i decide to put arguments like:
--sniff-tcp - Sniff TCP packets / Hosts
--sniff-arp - Sniff ARP packets
So i found this module called ArgParse or argparse or whatever xD i imported it and i did the code so i made a function which will start TCP sniffing
if the user puts --sniff-tcp but everytime i do it i get an error which is haunting me cause this error i have saw it ON EACH OF EVERY SCRIPT I DID EVEN COPIED FROM INTERNET...
File "sniffer.py", line 25
try:
^
IndentslError: unindent does not match any outer indentation level
When i see this error i feel like getting a real python and burn it DOWN >:(
So here's my code:
import socket, sys, time, os
from struct import *
from termcolor import colored
from argparse import ArgumentParser
def helpArg():
print "--sniff-arp"
print "--sniff-tcp"
parser = ArgumentParser()
parser.add_argument("--sniff-tcp", action=tcpSniffer())
args = parser.parse_args()
#create an INET, STREAMing socket
def tcpSniffer():
print colored("[+]", 'green') + (" Starting Sniffers...")
time.sleep(2)
print colored("[+]", 'green') + (" Creating socket...")
try:
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
except socket.error , msg:
print colored("[!]", 'red') + ('Socket could not be created. Error Code : ' + str(msg[0])) + (' Message ' + msg[1])
sys.exit()
print colored("[+]", 'green'), ("Getting Ready Spoofers...")
time.sleep(3)
# receive a packet
while True:
packet = s.recvfrom(65565)
#packet string from tuple
packet = packet[0]
#take first 20 characters for the ip header
ip_header = packet[0:20]
#now unpack them :)
iph = unpack('!BBHHHBBH4s4s' , ip_header)
version_ihl = iph[0]
version = version_ihl >> 4
ihl = version_ihl & 0xF
iph_length = ihl * 4
ttl = iph[5]
protocol = iph[6]
s_addr = socket.inet_ntoa(iph[8]);
d_addr = socket.inet_ntoa(iph[9]);
hostname2solv = socket.gethostname()
host = socket.gethostbyname(hostname2solv)
print "############################# IP : " +str(s_addr) + " HOST : " +str(hostname2solv) + " #######################"
print 'Client Name : ' + str(hostname2solv)
print 'Version : ' + str(version)
print 'IP Header Length : ' + str(ihl)
print 'TTL : ' + str(ttl)
print 'Protocol : ' + str(protocol)
print 'Source Address : ' + str(s_addr)
print 'Destination Address : ' + str(d_addr)
tcp_header = packet[iph_length:iph_length+20]
#now unpack them :)
tcph = unpack('!HHLLBBHHH' , tcp_header)
source_port = tcph[0]
dest_port = tcph[1]
sequence = tcph[2]
acknowledgement = tcph[3]
doff_reserved = tcph[4]
tcph_length = doff_reserved >> 4
print 'Source Port : ' + str(source_port)
print 'Dest Port : ' + str(dest_port)
print 'Sequence Number : ' + str(sequence)
print 'Acknowledgement : ' + str(acknowledgement)
print 'TCP header length : ' + str(tcph_length)
h_size = iph_length + tcph_length * 4
data_size = len(packet) - h_size
#get data from the packet
data = packet[h_size:]
print 'Data : ' + data
print "#######################################################################################"
printCan anyone please help me with this error?And if anyone could tell me how to do easy and working arguments in python that could be AWESOME!
Lots of love!
