Sekcje

Przejdź na skróty do treści. | Przejdź do nawigacji


Baza wiedzy Publikacje Scapy mini cheat sheet

Scapy mini cheat sheet

Poniżej udostępniamy podstawowe polecenia generatora pakietów scapy

oraz prosty skrypt wykorzystujący scapy, a wykonujący skanowanie wybranego portu posługując się adresem IP multicast.

Dokument jest jednym z materiałów przekazywanych uczestnikom szkolenia: bezpieczeństwo sieci.

 

Podstawowe tworzenie pakietów i odczytywanie odpowiedzi

ls()

Listowanie obsługiwanych przez scapy pakietów

lsc()

Listowanie funkcji scapy

ls(ICMP)

Wyświetlanie struktury pakietu

pakiet = IP()/ICMP()

Tworzenie nowego pakietu

pakiet =IP(dst=’192.168.1.100’,ttl=10)/ICMP()

Tworzenie pakietu z ustalaniem wartości

pakiet.show()

Wyświetlanie szczegółów pakietu

odpowiedz = sr1(pakiet)

Wysyłanie pakietu i odczytywanie pierwszej odpowiedzi (bez konieczności uzupełnienia pakietu o ramkę Ethernet)

odp = srp1(Ether()/IP(dst=’192.168.1.100’)/ICMP())

Wysyłanie pakietu i odczytywanie pierwszej odpowiedzi (z podaniem ramki Ethernet)

pakiet = IP()/TCP()

pakiet[IP].dst = ‘192.168.1.100’

pakiet[TCP].dport = 80

Modyfikacja zawartości stworzonego pakietu


Operacje na grupach pakietów

p = IP(dst=’192.168.1.1’)/TCP(dport=(10,30))

Stworzenie 20 pakietów TCP
(dport od 10 do 29)

p = IP(dst=’192.168.1.1’)/TCP(dport=[10,30])

Stworzenie 2 pakietów TCP
(dport 10 i 30)

answered, uanswered = sr(p,timeout=10)

Wysłanie grupy pakietów
ans ­­­­– komunikacji, na którą przyszła odpowiedź
uans – komunikacji, na którą nie przyszła odpowiedź

answered.show()

Podsumowanie wysłanej /odebranej komunikacji

pakiet = answered[3][1]

Podstawienie do zmiennej o nazwie pakiet trzeciej z kolei odpowiedzi

 

Inne operacje na pakietach

res = sniff(filter=’TCP’)
^C
res.show()

Podsłuchanie komunikacji sieciowej docierającej do stacji nasłuchującej z zastosowaniem filtru BPF.
Wyświetlenie podsumowania zebranych pakietów

p = fuzz(IP())
send(p,loop=1)

Wykonanie podstawowego fuzzingu

wrpcap(‘pakiety.pcap’,pakiety)

Zapisanie pakietów w pliku pcacp

res = rdpcap(‘pakiety.pcap’)

Odczytanie pakietów z pliku pcap

p = IP(ttl=10)/IP(ttl=2)
p[IP:1].ttl
p[IP:2].ttl

p[0].ttl
p[1].ttl

Dostęp do warstw o tej samej nazwie

 

Inne przydatne możliwości scapy

dir()

Wyświetlenie zadeklarowanych zmiennych

<Strzałka w górę>

Dostęp do historii poleceń

<Tabulator>

Dokańczanie nazw zmiennych / pakietów

<CTRL+C>

Zakończenie nasłuchiwania (np. przy funkcjach sniff(), sr()

help(funkcja)

Wyświetlenie pomocy

ICMP.type.i2s

Wyświetlenie możliwych wartości przyjmowanych przez dane pole (mapowanie cyfry – znaczenie słowne; dla pól typu enum)

conf.noenum.add(TCP.sport)
conf.noenum.add(TCP.dport)

p=TCP()
p.show()

Wyłączenie zamiany numerów portów na nazwy

 

# scan.py
# skanowanie wybranego portu – adres źródłowy jest adresem
# multicastowym – wybieranym w pierwszej pętli

 

from scapy.all import *

for i in range(1,15):

    addr = "224.0.0."+str(i)

    print addr

    p = IP(src=addr,dst='192.168.2.1')/TCP(sport=19952,dport=80,flags="S")

     try:   

        r = sr1(p,timeout=4,verbose=0)

        print "addr:" + addr

        print r.sprintf("flags: %TCP.flags%")   

    except:

        print "timeout"

 

Przydatne informacje? Polub nas na facebooku.

Nawigacja
 
Darmowy magazyn o ITsec

zine
Subskrybuj RSS:
RSS