ALPHACON BBSGość · pl
← Protipy

Protipy / Python

Podgląd payloadu ICMP w Scapy

python3 -c 'from scapy.all import *; sniff(filter="icmp and icmp[0]=8", prn=(lambda x: print(x[1].src, x[ICMP].load) if hasattr(x[ICMP], "load") else None ))'

Wstęp

Scapy to nieoceniona biblioteka do wszelkich zabaw z pakietami sieciowymi. Nasz oneliner sniffuje pakiety ICMP Echo Request ( filter="icmp and icmp[0]=8") i jeśli taki pakiet wyłapie, przekazuje go do callbacka, który wyświetli adres IP nadawcy oraz payload pod warunkiem, że payload istnieje ( prn=(lambda x: print(x[1].src, x[ICMP].load) if hasattr(x[ICMP], "load") else None )).

Co można zobaczyć

Przykład otrzymania trzech standardowych pakietów ICMP Echo Request z Windows 10 oraz trzech z ustawionym payloadem na 64 bajty (ping -l 64 host):

root@aptexfil:~# python3 -c 'from scapy.all import *; sniff(filter="icmp and icmp[0]=8", prn=(lambda x: print(x[1].src, x[ICMP].load) if hasattr(x[ICMP], "load") else None ))'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghi'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghi'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghi'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwabcdefghijklmnopqr'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwabcdefghijklmnopqr'
172.253.195.4 b'abcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwabcdefghijklmnopqr'

Linki