Windows lokal gespeicherte WLAN Passwörter auslesen

Vielen ist nicht bekannt, dass auch bei der Verbindung zu einem WPA Personal geschützten WLAN-Netzwerk der eingegebene PSK (Preshared Key) lokal gespeichert wird. Dabei werden die Kennwörter nicht gehasht sondern liegen im klartext in einer .xml Datei vor.

Die einzelnen Dateien sind unter folgendem Pfad auffindbar:

c:\ProgramData\Microsoft\Wlansvc\Profiles\

Schaut man sich den Inhalt einer solchen Datei genauer an findet man zwei ausschlaggebende Tags:

<SSID> und <KeyMaterial>

Logischerweise befindet sich zwischen den „SSID“-Tags der Name und die BSSID des WLAN-APs.

Zwischen den Tags „KeyMaterial“ befindet sich der Netzwerkschlässel im Klartext.

Automatisches auslesen und speichern der Kennwörter in einer Datei

Mit folgendem Batch-Script (.bat) werden die Kennwörter ausgelesen und automatisch in einer .txt Datei gespeichert. Somit müssen die .xml Dateien nicht händig durchgeschaut werden.

 

Das Script exportiert alle vorliegenden .xml files und ändert das Dateiformat in .txt, dass die weiteren Befehle problemlos in die Dateien schauen können.

Als nächstes wird der gesamte Inhalt der Dateien in eine .txt Datei geschrieben. Die „WLAN1.txt“-Datei. In dieser wird anschließend nach den beiden o.g. Tags gesucht. Alles was dabei gefunden wird wird in eine weitere .txt-Datei geschrieben. Die „WLAN.txt“. Wenn das geschehen ist wird ein Ordner erstellt in dem die neue Datei abgelegt wird.

Danach wird die alte Datei  (WLAN1.txt) gelöscht und es popt eine Meldung auf, dass der Vorgang abgeschlossen ist.

Hier der Quellcode:

# by Tech-Tip.de - Bastian Grossmann
netsh wlan export profile key=clear
rename *.xml *.txt
type *.txt > WLAN1.txt
type NUL > WLAN.txt
find /N /OFF "keyMaterial" WLAN1.txt >>WLAN.txt && find /N /OFF "name" WLAN1.txt >> WLAN.txt
mkdir WLAN
move WLAN.txt WLAN\
del *.txt
msg */SERVER:172.0.0.1 "PA55W0RD C0PY D0N3!"
exit
0 Kommentare
Inline Feedbacks
View all comments