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:
Can 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!
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
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 "#######################################################################################" print |
And if anyone could tell me how to do easy and working arguments in python that could be AWESOME!
Lots of love!