[PYTHON] Einführung in Scapy ② (ICMP, HTTP (TCP) -Übertragung mit Scapy)

Einführung in die Übertragung von Scapy (ICMP, HTTP (TCP) mit Scapy)

Einführung

Hallo. Das ist Akako. Dieses Mal möchte ich vom letzten Mal an die Paketübertragung zusammenfassen, die Scapy gemacht hat.

Erklärung der Umgebung / Scapy usw.

Siehe Vorheriger Artikel. Auch hier wird davon ausgegangen, dass Sie Zeile für Zeile in der interaktiven Shell ausgeführt werden, in der scapy direkt gestartet wird.

Von der Paketerstellung bis zur Übertragung

ICMP(PING)

#Erstellen eines ICMP-Pakets für einen Google-Server
#Bild von ICMP auf IP-Paket
packet = IP(dst='www.google.com')/ICMP()

#Zeigen Sie den Inhalt des Pakets an
packet.show()

#Paket senden
#& Anzeige der zurückgegebenen Pakete
sr1(packet)

TCP(HTTP)

Von der Verbindung zur Übertragung

'''Verbindungsfluss in TCP'''

'''Erstellen eines Basispakets'''
#Erstellen eines IP-Pakets
ip = IP(dst='www.google.com')

# TCP(HTTP)Ein Paket erstellen
# sport,seq ist angemessen
#dport ist ein Standardport der 80. Ausgabe,Flagge ist'S'
tcp = TCP(sport=50000,dport=80,flags='S',seq=100)


'''3 Implementierung von Handshake'''
#Erstellen eines SYN-Pakets
syn= ip/tcp
#SYN-Paket senden
#& SYN ACK empfangen
syn_ack = sr1(syn)

'''Erstellen einer HTTP-Anfrage(Erstellen eines ACK-Pakets)'''
#ACK-Paketeinstellungen
tcp.seq += 1
tcp.ack = syn_ack.seq + 1
#Das Flag des ACK-Pakets ist'A'
tcp.flags = 'A'
#ACK-Paketübertragung
ack = ip/tcp
send(ack)

#Kann HTTP-GET-Pakete übertragen
get = 'GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n' 
http = ip/tcp/get
#Anfrage senden
response = sr(http, multi=1, timeout=1)
tcp.seq += len(get)

#Anzeige der Antwort
response[0][1][1]["Raw"].load

Trennen

'''Trennen'''
#Fortsetzung des obigen Codes
 
#Senden von FINACK-Paketen mit FA-Flag
tcp.flags = 'FA'
fin_ack = sr1(ip/tcp)
tcp.seq += 1

#Gibt am Ende ACK zurück
tcp.ack = fin_ack.seq + 1
tcp.flags = 'A'
send(ip/tcp)

Recommended Posts

Einführung in Scapy ② (ICMP, HTTP (TCP) -Übertragung mit Scapy)
Einführung in discord.py (3) Verwenden von Stimme
Einführung in die diskrete Ereignissimulation mit Python # 1
[PyTorch] Einführung in die Dokumentklassifizierung mit BERT
Einführung in die diskrete Ereignissimulation mit Python # 2
Einführung in Scapy ① (Von der Installation bis zur Ausführung von Scapy)
Einführung in Tornado (3): Entwicklung mit Vorlagen [Übung]
[PyTorch] Einführung in die Klassifizierung japanischer Dokumente mit BERT
Versuchen Sie, mit Node.js einen HTTP-Server zu erstellen
Einführung in Tornado (2): Einführung in die Entwicklung mit Vorlagen - Dynamische Seitengenerierung -
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Erste Schritte mit Supervisor
Einführung in Tkinter 1: Einführung
Einführung in PyQt
Einführung in Scrapy (2)
Einführung in Scrapy (4)
Einführung in discord.py (2)
[Einführung in cx_Oracle] (13.) Verbindung über Verbindungspool (Client-Seite)
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
[Technisches Buch] Einführung in die Datenanalyse mit Python -1 Kapitel Einführung-