Scanner iPsilon
# -*-coding:Utf-8 -*-
import sys,time,socket
from scapy.all import *
#---------------------------------------------------------------------
# iPsilon Scanner by iZy_TeH_PariaH |
#---------------------------------------------------------------------
#Je décline toute responsabilité quant a l'utilisation que vous aurez
#de ce script et des scripts publiés sur ce blog.
if __name__ == '__main__':
if len(sys.argv) < 5 and sys.argv[1] != 'ping':
print 'Syntaxe : !/scanner.py scanType iP port de_départ port_d_arrivee'
print ' !/scanner.py ping pingtype'
print 'Type de scan : ho (TCP syn, HalfOpen) ; o (TCP connect,Open) ; a (TCP ACK); x (TCP XMAS)'
exit(0)
#Ping ARP
depart = time.time()
if sys.argv[1] == 'ping':
try:
if sys.argv[2] == 'arp':
arping('192.168.1.*')
exit(0)
except:
exit(0)
else:
print '--- iPsilon Scanner ---\n [contact : dreamofanolife@hotmail.fr]\n---Thanks you for using iPsilon Scanner\n--- Scan de : ' + sys.argv[2] + ' des ports ' + sys.argv[3] + ' aux ports ' + sys.argv[4] + '\n --- Powered by SCAPY '
try:
i = int(sys.argv[3])
except:
print 'plage de port incorrect !'
exit(0)
try:
j = int(sys.argv[4])
except:
print 'plage de port2 incorrect !'
exit(0)
if sys.argv[1] == 'ho':
print '--- scan type : half open --- '
ans,unans = sr(IP(dst = sys.argv[2])/TCP(dport = (i,j),flags = 'S'),timeout = 1)
if len(sys.argv) == 6 and sys.argv[5] == 'd':
ans.summary(lambda(s,r) : r.sprintf("%TCP.sport% \t %TCP.flags%") )
else:
for couple in ans:
try:
if couple[1][TCP].flags == 18L:
print str(couple[0][TCP].dport) + ' [open]'
except:
pass
elif sys.argv[1] == 'o' :
print '--- scan type : open ---'
while i <= j:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((sys.argv[2],i))
except:
s.close()
else:
print str(i) + ' [open]'
s.close()
i = i + 1
elif sys.argv[1] == 'x':
print '---scan type : xmas'
ans,unans = sr(IP()/TCP(dport = (i,j),flags = 'FPU'),timeout = 1)
print 'Ports non filtrés : '
for p in ans:
try:
print str(p[1][TCP].sport) + ' [not filtred]'
except:
pass
elif sys.argv[1] == 'sa':
print '---scantype : SynAck ---'
ans,unans = sr(IP(dst = sys.argv[2])/TCP(dport = (i,j),flags ='SA'),timeout = 1)
print 'Ports non filtrés :'
for t in ans:
try:
print str(t[1][TCP].sport) + ' [not filtred]'
except:
pass
elif sys.argv[1] == 'a':
print '---scan type : ack'
ans,unans = sr(IP(dst = sys.argv[2])/TCP(dport = (i,j),flags = 'A'),timeout = 1)
if len(sys.argv) == 6 and sys.argv[5] == 'd':
ans.summary(lambda(s,r): r.sprintf('%TCP.sport% \t %TCP.flags%'))
else:
print 'Ports non filtrés :'
for t in ans:
try:
print str(t[1][TCP].sport) + '[not filtred]'
except:
pass
else:
print 'Syntaxe : !/scanner.py scanType iP port de_départ port_d_arrivee'
print 'Type de scan : ho (TCP syn, HalfOpen) ; o (TCP connect,Open) ; a (TCP ACK); x (TCP XMAS)'
exit(0)
print 'Scan de ' + str(j - i) + ' ports en ' + str(time.time()-depart) + ' secondes'
print '-------------------------Fin du Scan -------------------------'
#Contact : dreamofanolife@hotmail.fr