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


Pour être informé des derniers articles, inscrivez vous :