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)-[~] └─$ 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:
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:
Exploitatie
Laten we eens kijken of deze versie van de webserver kwetsbaar is:
----------------------------------------------------------------------------------------- --------------------------------- 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)-[~] └─$ 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):
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
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:
Alle gebruikers in de groep Administrators
We vinden geen gebruikers in de groep Administrators.
Laten we Winlogon controleren op opgeslagen referenties
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)
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
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.
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:
[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:
Nu zou je een shell moeten hebben als SYSTEM.
0 Comments