{"id":24,"date":"2020-09-24T20:30:26","date_gmt":"2020-09-24T18:30:26","guid":{"rendered":"http:\/\/theredwindows.net\/?p=24"},"modified":"2020-09-24T20:30:27","modified_gmt":"2020-09-24T18:30:27","slug":"utilisation-offensive-de-gpo-en-environnement-active-directory","status":"publish","type":"post","link":"https:\/\/theredwindows.net\/index.php\/2020\/09\/24\/utilisation-offensive-de-gpo-en-environnement-active-directory\/","title":{"rendered":"Utilisation offensive de GPO en environnement Active Directory"},"content":{"rendered":"\n<p class=\"has-text-align-left\">Les GPOs, acronymes de <em>Group Policy Object<\/em>, sont des conteneurs mis \u00e0 disposition des administrateurs pour faire appliquer \u00e0 un ensemble d\u2019objets, un ensemble de r\u00e8gles. Ces derni\u00e8res permettent donc d\u2019am\u00e9liorer la flexibilit\u00e9 tout en offrant une grande modularit\u00e9 aux g\u00e9rants d\u2019infrastructures Active Directory. Nous verrons dans ce poste comment utiliser de mani\u00e8re offensive des droits trop cons\u00e9quents sur des strat\u00e9gies de groupes.<\/p>\n\n\n\n<p>Les exemples qui suivront seront effectu\u00e9s sur un domaine m\u2019appartenant &#8220;testlab.local&#8221; compos\u00e9 d\u2019un contr\u00f4leur de domaine (DC01) Windows Server 2019, et deux 2 machines (WS01, WS02) Windows 10 Professionnel (en version d\u2019essai). L\u2019utilisateur Bobby est compromis, ainsi que son mot de passe (&#8220;metallica123!&#8221;). Les d\u00e9monstrations des techniques seront op\u00e9r\u00e9es sur &#8220;Cobalt Strike&#8221; et &#8220;Empire&#8221;. Les antivirus sur les machines susmentionn\u00e9es sont d\u00e9sactiv\u00e9s.<\/p>\n\n\n\n<h3>Composantes<\/h3>\n\n\n\n<p>Les GPOs sont constitu\u00e9es de 2 parties:<\/p>\n\n\n\n<ul><li>Logique, ce sont des \u00e9l\u00e9ments g\u00e9r\u00e9s et stock\u00e9s au sein de l\u2019annuaire Active Directory en tant que propri\u00e9t\u00e9 d\u2019objet. Nous pouvons y retrouver les attributs sp\u00e9cifiques suivants:<ul><li>&#8220;displayName&#8221;, qui correspond au nom donn\u00e9 lors de la cr\u00e9ation de la GPO.<\/li><li>&#8220;gPCFileSysPath&#8221;, qui correspond au chemin physique de la GPO.<\/li><li>&#8220;versionNumer&#8221; qui correspond \u00e0 la version de la GPO, cette valeur doit \u00eatre la m\u00eame que celle pr\u00e9sente dans le fichier &#8220;GPT.ini&#8221; situ\u00e9e au niveau de &#8220;gPCFileSysPath&#8221;.<\/li><li>&#8220;gPCFunctionalityVersion&#8221;, qui indique la version du protocole &#8220;Group Policy&#8221; qui doit \u00eatre utilis\u00e9e.<\/li><li>&#8220;objectGUID&#8221;, abr\u00e9viation de \u201cGlobal Unique Identifier\u201d correspond \u00e0 une mani\u00e8re d\u2019authentifier la GPO (c\u2019est l\u2019\u00e9quivalent du SID).<\/li><li>&#8220;gPCMachineExtensionNames\/gPCUserExtensionNames&#8221;, aussi appel\u00e9 &#8220;CSE&#8221; (&#8220;client side extension&#8221;) correspond \u00e0 une liste de GUID permettant de d\u00e9finir les actions de la GPO. Sans ces derni\u00e8res les param\u00e8tres sp\u00e9cifi\u00e9s ne seront pas appliqu\u00e9s. Vous pouvez trouver une liste \u00e0 cet <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/fr-fr\/archive\/blogs\/mempson\/group-policy-client-side-extension-list\" data-type=\"URL\" data-id=\"https:\/\/docs.microsoft.com\/fr-fr\/archive\/blogs\/mempson\/group-policy-client-side-extension-list\" target=\"_blank\">endroit<\/a>. L\u2019attribut est structur\u00e9 de la mani\u00e8re suivante &#8220;[&lt;CSE GUID 1>&lt;CSE TOOL GUID 1>][&lt;CSE GUID 2>&lt;CSE TOOL 2>]&#8221; les &#8220;CSE GUID&#8221; sont tri\u00e9s par ordre alphab\u00e9tique, et de m\u00eame pour les \u201cCSE TOOL\u201d, ind\u00e9pendamment l\u2019un de l\u2019autre.<\/li><li>&#8220;name&#8221;, qui ressemble fortement au GUID.<\/li><li>&#8220;GpoStatus&#8221;, comme son nom l\u2019indique d\u00e9finit l\u2019\u00e9tat de la GPO, ces derniers sont &#8220;AllSettingsDisabled&#8221; (les param\u00e8tres d\u00e9finis pour les utilisateurs et pour les ordinateurs sont d\u00e9sactiv\u00e9s), &#8220;AllSettingsEnabled&#8221; (les param\u00e8tres d\u00e9finis pour les utilisateurs et pour les machines sont activ\u00e9s), &#8220;ComputerSettingsDisabled&#8221; (les param\u00e8tres d\u00e9finis pour les ordinateurs sont d\u00e9sactiv\u00e9s), &#8220;UserSettingsDisabled&#8221; (les param\u00e8tres d\u00e9finis pour les utilisateurs sont d\u00e9sactiv\u00e9s). Ces \u00e9tats seront d\u00e9finis dans l\u2019attribut LDAP &#8220;Flags&#8221; qui prend les valeurs suivantes 0 (&#8220;AllSettingsEnabled&#8221;), 1 (&#8220;UserSettingsDisabled&#8221;), 2 (&#8220;ComputerSettingsDisabled&#8221;) et enfin 3 (&#8220;AllSettingsDisabled&#8221;).<\/li><li>&#8220;objectClass&#8221; dont la valeur doit \u00eatre &#8220;{top, container, groupPolicyContainer}&#8221;.<\/li><li>&#8220;objectcategory&#8221; qui doit \u00eatre \u00e9gal \u00e0 &#8220;CN=Group-Policy-Container,CN=Schema,CN=Configuration,DC=DOMAIN,DC=COM&#8221;<\/li><li>d\u2019un point de vue plus structurel, les &#8220;GPOs&#8221; poss\u00e8dent 2 enfants dans l\u2019annuaire LDAP, ces derniers correspondent simplement aux 2 types de param\u00e8tre qu\u2019une &#8220;GPO&#8221; est susceptible d\u2019appliquer, &#8220;User&#8221; et &#8220;Machine&#8221; qui appara\u00eetront en tant que &#8220;Canonical Name&#8221; (&#8220;CN&#8221;) apr\u00e8s le &#8220;DistinguishedName&#8221; de la GPO. Ces objets LDAP sont de classe &#8220;Container&#8221;.<\/li><\/ul><\/li><li>Physique, l\u2019endroit o\u00f9 sont stock\u00e9s les fichiers de ladite GPO sur le(s) contr\u00f4leur(s) de domaine. Il sera toujours le m\u00eame et suivra la structure suivante: &#8220;\\\\domain.dns\\SysVol\\domain.dns\\Policies\\GPOName\\&#8221;. Les GPO sont divis\u00e9es en deux cat\u00e9gories, les GPOs &#8220;User&#8221; et &#8220;Machine&#8221;, ce qui correspondra \u00e0 deux dossiers diff\u00e9rents dans leur partie physique. Ainsi nous retrouverons un dossier &#8220;User&#8221; et un dossier &#8220;Machine&#8221;. Pour diff\u00e9rents param\u00e8tres, il est possible d\u2019associer certains r\u00e9pertoires et fichiers comme par exemple:<ul><li>Les param\u00e8tres de s\u00e9curit\u00e9, qui seront disponibles ici: &#8220;Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf&#8221;.<\/li><li>Les scripts de d\u00e9marrage au niveau machine, sont pr\u00e9sents \u00e0 cet endroit: &#8220;Machine\\Scripts\\Startup\\&#8221;.<\/li><li>Les t\u00e2ches planifi\u00e9es, sont situ\u00e9es au terme de ce chemin: &#8220;Machine\\Preferences\\ScheduledTasks&#8221; dans un fichier nomm\u00e9 &#8220;ScheduledTasks.xml&#8221;.<\/li><li>Bien d\u2019autres que vous pouvez retrouvez <a rel=\"noreferrer noopener\" href=\"https:\/\/www.microsoftpressstore.com\/articles\/article.aspx?p=2231763&amp;seqNum=4\" data-type=\"URL\" data-id=\"https:\/\/www.microsoftpressstore.com\/articles\/article.aspx?p=2231763&amp;seqNum=4\" target=\"_blank\">ici<\/a>.<\/li><\/ul><\/li><\/ul>\n\n\n\n<h3>Cr\u00e9ation d\u2019une GPO<\/h3>\n\n\n\n<p>Il existe trois mani\u00e8res de d\u00e9finir une nouvelle strat\u00e9gie de groupe, l\u2019outil bien connu des administrateurs &#8220;GPMC.msc&#8221;, la console &#8220;Active Directory Users and Computers&#8221;, mais nous verrons surtout PowerShell. Pour cela Microsoft a impl\u00e9ment\u00e9 un module pour pouvoir manipuler de tels objets, le module &#8220;GroupPolicy&#8221; qui est issu de la librairie .NET &#8220;Microsoft.GroupPolicy.Management.dll&#8221; (et &#8220;Microsoft.GroupPolicy.Management.Commands.dll&#8221; pour les cmdlet PowerShell).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\"># Nous commen\u00e7ons par importer le module\nImport-Module GroupPolicy -Verbose\n# Afin de cr\u00e9er une GPO la cmdlet New-GPO est tout indiqu\u00e9. Nous pouvons donc la construire ainsi:\n$GPO = New-GPO -Name SuperSecureGPO<\/code><\/pre>\n\n\n\n<p>Pour pouvoir continuer \u00e0 la param\u00e9trer il me faut faire un d\u00e9tour par l&#8217;explication d\u2019un objet important dans un annuaire LDAP : les &#8220;Organizational unit&#8221;. Les &#8220;OUs&#8221; sont les conteneurs permettant de structurer les objets de l&#8217;Active Directory, elles jouent le r\u00f4le de bo\u00eetes qui rendent l\u2019organisation d\u2019autant plus pratique. Pour \u00e9num\u00e9rer les &#8220;OUs&#8221; d\u2019un Active Directory il existe globalement 3 m\u00e9thodes; en utilisant PowerShell, avec le module ActiveDirectory en utilisant la cmdlet &#8220;Get-ADOrganizationalUnit&#8221; de la mani\u00e8re suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-ADOrganizationalUnit -Filter \"*\" | Select-Object -ExpandProperty \"DistinguishedName\"<\/code><\/pre>\n\n\n\n<p>avec PowerView en utilisant la cmdlet &#8220;Get-DomainOU&#8221; de la fa\u00e7on ci-apr\u00e8s:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-DomainOU | Select-Object -ExpandProperty distinguishedname<\/code><\/pre>\n\n\n\n<p>Si vous pr\u00e9f\u00e9rez faire les choses \u00e0 la main, vous avez plusieurs choix, le mien se profilera vers PowerShell mais il est aussi tout \u00e0 fait possible d\u2019utiliser VBScript, C#, ou VB.Net, pour faire un programme utilisant les m\u00eames fonctionnalit\u00e9s.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">$domainObj = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()\n$PDC = ($domainObj.PdcRoleOwner).Name\n$SearchString = -join @(\"LDAP:\/\/\", $PDC, \"\/\")\n$DistinguishedName = \"DC=$($domainObj.Name.Replace('.', ',DC='))\"\n$SearchString += $DistinguishedName\n$Searcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI] $SearchString)\n$objDomain = New-Object System.DirectoryServices.DirectoryEntry\n$Searcher.SearchRoot = $objDomain\n$Searcher.Filter=\"(objectClass=organizationalUnit)\"\n$Searcher.FindAll()<\/code><\/pre>\n\n\n\n<p>Dans un premier temps nous obtenons les informations de l\u2019actuel domaine, puis nous obtenons le contr\u00f4leur de domaine qui poss\u00e8de le r\u00f4le PdcEmulator (celui qui contr\u00f4le la modification des objets), et cr\u00e9ons un chemin LDAP \u00e0 partir de ce dernier. Puis nous utilisons la classe .NET &#8220;System.DirectoryServices.DirectorySearcher&#8221; qui permet, comme son nom l\u2019indique, de chercher des objets dans le domaine, enfin nous appliquons le filtre LDAP &#8220;(objectClass=organizationalUnit)&#8221;, qui permet de filtrer les &#8220;OUs&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"352\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-1024x352.png\" alt=\"\" data-id=\"59\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=59\" class=\"wp-image-59\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-1024x352.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-300x103.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-768x264.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-1536x528.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-400x137.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1-800x275.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/OUlist-1.png 1813w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Revenons au sujet principal. Pour que les GPOs puissent \u00eatre appliqu\u00e9es, il leur faut \u00eatre li\u00e9 avec une unit\u00e9 organisationnelle, cela aura pour effet de changer un attribut &#8220;LDAP&#8221;, &#8220;gplink&#8221;. Cette propri\u00e9t\u00e9 est construite de la mani\u00e8re suivante &#8220;[ADSPATHGPO 1;GPLINK STATUT]&#8221; o\u00f9 le statut peut prendre 4 valeurs diff\u00e9rentes: 0 (&#8220;LinkEnabled&#8221;), 1 (&#8220;LinkDisabled&#8221;), 2 (&#8220;LinkEnabled&#8221;, &#8220;Enforced&#8221;), 3 (&#8220;Enforced&#8221;). C&#8217;est pour cet objectif que la cmdlet &#8220;New-GPLink&#8221; doit \u00eatre utilis\u00e9. Nous pouvons donc lier la GPO pr\u00e9c\u00e9demment cr\u00e9\u00e9e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">$GPO | New-GPLink -Target \"OU=Computer,DC=testlab,DC=local\"<\/code><\/pre>\n\n\n\n<p>La prochaine \u00e9tape consiste \u00e0 param\u00e9trer l\u2019action de la GPO, ici notre GPO active le mode de langage contraint de PowerShell. Pour cela nous utilisons la cmdlet &#8220;Set-GPPrefRegistryValue&#8221;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">$GPO | Set-GPPrefRegistryValue -Context Computer -Key \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment\\\" -Action Create -ValueName \"__PSLockdownPolicy\" -Value \"4\" -Type String<\/code><\/pre>\n\n\n\n<div class=\"wp-container-1 wp-block-group\"><div class=\"wp-block-group__inner-container\">\n<figure class=\"wp-block-gallery columns-2\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"364\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-1024x364.png\" alt=\"\" data-id=\"27\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=27\" class=\"wp-image-27\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-1024x364.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-300x107.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-768x273.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-1536x547.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-1870x666.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-400x142.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO-800x285.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/CreateGPO.png 1905w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"blocks-gallery-item__caption\">Cr\u00e9ation de la GPO avec PowerShell<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"150\" height=\"150\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoApply-150x150.png\" alt=\"\" data-id=\"28\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoApply.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=28\" class=\"wp-image-28\"\/><figcaption class=\"blocks-gallery-item__caption\">Application de la GPO sur WS01<\/figcaption><\/figure><\/li><\/ul><\/figure>\n<\/div><\/div>\n\n\n\n<p>Notre GPO est d\u00e9sormais appliqu\u00e9e et c\u2019est \u00e0 la prochaine mise \u00e0 niveau des strat\u00e9gies de groupes que ses fonctionnalit\u00e9s seront activ\u00e9es (toutes les, 90 minutes sommer \u00e0 cela un temps al\u00e9atoire entre 0 et 30 minutes). Il est \u00e9galement possible de changer ou d\u2019ajouter des droits sur une GPO avec la cmdlet &#8220;Set-GPPermission&#8221;. Les arguments disponibles pour celles-ci sont les suivants:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">Set-GPPermission -Guid &lt;guid> -PermissionLevel {None | GpoApply | GpoRead | GpoEdit | GpoEditDeleteModifySecurity | GpoCustom | WmiFilterEdit | WmiFilterFullControl |      WmiFilterCustom | StarterGpoRead | StarterGpoEdit | StarterGpoFullControl | StarterGpoCustom | SomCreateWmiFilter | SomWmiFilterFullControl | SomCreateGpo |                SomCreateStarterGpo | SomLogging | SomPlanning | SomLink} -TargetName &lt;string> -TargetType {Computer | User | Group} [-DomainName &lt;string>] [-Server &lt;string>]              [-Replace] [-WhatIf] [-Confirm]  [&lt;CommonParameters>]<\/code><\/pre>\n\n\n\n<p>Regardons plus en d\u00e9tail le param\u00e8tre &#8220;-PermissionLevel&#8221;, bien que les valeurs possibles sont pour le moins \u00e9nigmatiques, elles correspondent en r\u00e9alit\u00e9 \u00e0 des acc\u00e8s pr\u00e9cis (donc \u00e0 des &#8220;ACLs&#8221; pr\u00e9cises):<\/p>\n\n\n\n<ul><li>&#8220;GpoRead&#8221; est &#8220;GenericRead&#8221;.<\/li><li>&#8220;GpoEditDeleteModifySecurity&#8221;, est &#8220;GenericWrite, WriteDacl, WriteOwner&#8221;.<\/li><li>&#8220;GpoEdit&#8221;, &#8220;GenericWrite&#8221;.<\/li><li>&#8220;GpoApply&#8221;, &#8220;GenericExecute&#8221;.<\/li><\/ul>\n\n\n\n<p>Nous approfondirons cette notion un peu apr\u00e8s.<\/p>\n\n\n\n<h3>Enum\u00e9ration<\/h3>\n\n\n\n<p>La d\u00e9couverte des GPOs peut se faire de diff\u00e9rentes mani\u00e8res. L\u2019une des premi\u00e8res, est l\u2019utilisation de &#8220;gpresult&#8221;, qui permettra de lister les GPOs qui sont actuellement appliqu\u00e9es &#8220;gpresult \/R&#8221;. Si vous \u00eates sur le contr\u00f4leur de domaine vous pouvez \u00e9galement utiliser PowerShell pour \u00e9num\u00e9rer les GPOs: &#8220;Get-GPO -All&#8221;. Si vous n\u2019\u00eates pas sur le contr\u00f4leur de domaine, rien ne vaudra alors PowerView pour gagner du temps. &#8220;Get-DomainGPO&#8221; vous fournira tout ce dont vous aurez besoin. Si vous voulez faire les choses \u00e0 la main PowerShell sera comme toujours votre meilleur ami.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">$domainObj = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()\n$PDC = ($domainObj.PdcRoleOwner).Name\n$SearchString = -join @(\"LDAP:\/\/\", $PDC, \"\/\")\n$DistinguishedName = \"DC=$($domainObj.Name.Replace('.', ',DC='))\"\n$SearchString += $DistinguishedName\n$Searcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI]$SearchString)\n$objDomain = New-Object System.DirectoryServices.DirectoryEntry\n$Searcher.SearchRoot = $objDomain\n$Searcher.Filter=\"(objectClass=groupPolicyContainer)\"\n$Searcher.FindAll()<\/code><\/pre>\n\n\n\n<p>Le code est similaire \u00e0 l\u2019exemple pr\u00e9c\u00e9dent, cependant il suffit de changer le filtre pour obtenir les GPOs, ce dernier est &#8220;(objectClass=groupPolicyContainer)&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"564\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-1024x564.png\" alt=\"\" data-id=\"31\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=31\" class=\"wp-image-31\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-1024x564.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-300x165.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-768x423.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-1536x846.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-400x220.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList-800x440.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoList.png 1793w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"282\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-1024x282.png\" alt=\"\" data-id=\"32\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=32\" class=\"wp-image-32\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-1024x282.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-300x83.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-768x211.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-400x110.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy-800x220.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoListManualy.png 1509w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Les diff\u00e9rentes mani\u00e8res de lister les &#8220;GPOs&#8221;.<\/figcaption><\/figure>\n\n\n\n<p>Enfin quasiment. En effet les GPOs \u00e9tant des &#8220;Securable objects&#8221;, elles poss\u00e8dent donc un &#8220;SecurityDescriptor&#8221;, ce qui implique que des &#8220;ACL&#8221; lui sont attribu\u00e9es, que d\u2019autres objets la contr\u00f4lent. L&#8217;int\u00e9r\u00eat ici est que, les GPOs \u00e9tant \u00e0 la fois des objets &#8220;AD&#8221; et des objets &#8220;NTFS&#8221; (pour cause, la dimension physique). Quiconque poss\u00e8de des droits sur l\u2019objet en obtiendra sur le r\u00e9pertoire de la GPO. En d\u2019autres termes, qui poss\u00e8de des droits d\u2019\u00e9criture sur l\u2019objet de la GPO peut modifier les fichiers de son dossier. Parmi toutes les ACL qui existe nous chercherons donc: &#8220;AllExtendedWrite&#8221;, &#8220;GenericAll&#8221;, &#8220;GenericWrite&#8221;,&#8221;WriteOwner&#8221;, &#8220;WriteMember&#8221;, &#8220;WriteDacl&#8221;, &#8220;WriteProperty&#8221;. Si il s&#8217;agit de reconnaissance globale vous pouvez utiliser PowerView de la sorte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-DomainObjectAcl -Identity \"SuperSecureGPO\" -ResolveGUIDs |  Where-Object {($_.ActiveDirectoryRights.ToString() -match \"GenericWrite|AllExtendedWrite|WriteDacl|WriteProperty|WriteMember|GenericAll|WriteOwner\")}<\/code><\/pre>\n\n\n\n<p>Si vous pr\u00e9f\u00e9rez obtenir des informations plus pr\u00e9cises rien ne vous emp\u00eache de rajouter des conditions ou changer la condition.\u00a0Par exemple, si nous souhaitons savoir si notre utilisateur poss\u00e8de n\u2019importe quel droit, filtrer par SID est une bonne id\u00e9e.<\/p>\n\n\n\n<p>Vous pouvez aussi utiliser BloodHound qui marque chaque fois qu\u2019un objet peut avoir ce genre d\u2019ACL sur une GPO. Si beaucoup d\u2019\u00e9l\u00e9ments se profile sur le graphe, les requ\u00eates personnalis\u00e9es vous aideront \u00e0 filtrer les r\u00e9sultats. A titre personnel j\u2019utilise <a href=\"https:\/\/github.com\/hausec\/Bloodhound-Custom-Queries\">https:\/\/github.com\/hausec\/Bloodhound-Custom-Queries<\/a>. Si vous voulez encore une fois proc\u00e9der \u00e0 la main, PowerShell vous sera tr\u00e8s utile. Il vous faudra le chemin &#8220;LDAP&#8221; de la &#8220;GPO&#8221; (&#8220;ADSPath&#8221;).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">$ADEntry = New-Object System.DirectoryServices.DirectoryEntry \"LDAP:\/\/CN={62009B2C-4CAB-4E96-82DD-6A56D055A977},CN=Policies,CN=System,DC=testlab,DC=local\"\n$aclObject = $ADEntry.PSBase.ObjectSecurity\n$aclList = $aclObject.GetAccessRules($true,$true, [System.Security.Principal.SecurityIdentifier])\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"480\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-1024x480.png\" alt=\"\" data-id=\"33\" class=\"wp-image-33\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-1024x480.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-300x141.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-768x360.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-400x188.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom-800x375.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundCustom.png 1120w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"492\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-1024x492.png\" alt=\"\" data-id=\"34\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=34\" class=\"wp-image-34\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-1024x492.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-300x144.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-768x369.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-400x192.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO-800x384.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/BloodHoundGPO.png 1278w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"410\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-1024x410.png\" alt=\"\" data-id=\"35\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=35\" class=\"wp-image-35\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-1024x410.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-300x120.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-768x308.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-1536x616.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-1870x749.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-400x160.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList-800x321.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclList.png 1899w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"333\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-1024x333.png\" alt=\"\" data-id=\"36\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=36\" class=\"wp-image-36\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-1024x333.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-300x97.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-768x250.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-1536x499.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-400x130.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1-800x260.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually1.png 1862w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"564\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-1024x564.png\" alt=\"\" data-id=\"37\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=37\" class=\"wp-image-37\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-1024x564.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-300x165.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-768x423.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-1536x845.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-400x220.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2-800x440.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GpoAclListManually2.png 1699w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Les diff\u00e9rentes mani\u00e8res d&#8217;\u00e9num\u00e9rer les ACL sur une GPO<\/figcaption><\/figure>\n\n\n\n<h3>Abus des droits<\/h3>\n\n\n\n<p>Nous avons vu pr\u00e9c\u00e9demment que les GPO sont particuli\u00e8rement puissantes. Elles nous permettent de faire appliquer \u00e0 un ensemble d\u2019objets, des r\u00e8gles arbitraires. Ainsi nous pouvons ajouter des scripts de d\u00e9marrage, des t\u00e2ches imm\u00e9diates, des droits locaux (tel &#8220;SeDebugPrivilege&#8221;), ou m\u00eame ajouter des utilisateurs \u00e0 des groupes locaux. Vous conviendrez qu\u2019il est alors possible d\u2019en tirer profit pour diff\u00e9rentes \u00e9tapes de la Kill Chain, notamment le mouvement lat\u00e9ral, mais surtout l\u2019\u00e9l\u00e9vation de privil\u00e8ge ainsi que la persistance (cependant une tr\u00e8s mauvaise &#8220;OPSEC&#8221;, est garanti avec cette m\u00e9thode). Pour ex\u00e9cuter ce genre d\u2019attaque 2 outils existent &#8220;SharpGPOAbuse\u201d, et &#8220;PyGPOAbuse&#8221;. Les deux ont des avantages mais aussi des inconv\u00e9nients. &#8220;SharpGPOAbuse&#8221; est bien plus polyvalent que &#8220;PyGPOAbuse&#8221;, mais ce dernier a l\u2019avantage de pouvoir op\u00e9rer hors du domaine et en utilisant du &#8220;PTH&#8221;. En revanche les deux restes relativement peu flexibles, bien que rarement utiliser, le premier ne permet pas d\u2019utiliser des identifiants alternatifs, et n\u00e9cessite d\u2019\u00eatre d\u00e9pos\u00e9 sur le disque si votre &#8220;C2&#8221; ne permet pas d\u2019ex\u00e9cuter des &#8220;Assembly&#8221; .NET en m\u00e9moire, c\u2019est d\u2019ailleurs dans cet objectif que &#8220;SharpGPOAbuse&#8221; a \u00e9t\u00e9 pr\u00e9sent\u00e9, en \u00e9tant usit\u00e9 au travers de la fonction &#8220;execute-assembly&#8221; de CobaltStrike. Ne trouvant pas mon compte dans ces deux outils, j\u2019ai donc d\u00e9cid\u00e9 d\u2019\u00e9crire le mien, cette fois si en PowerShell. Il gardera comme d\u00e9faut le fait de devoir \u00eatre membre d\u2019un domaine pour \u00eatre utilis\u00e9, et pour l\u2019instant un manque de polyvalence au niveau des diff\u00e9rentes fonctions d\u2019exploitation (d\u2019autres sont pr\u00e9vus). Cependant il est un peu plus flexible que le premier. En effet il permet l\u2019utilisation d\u2019identifiants alternatifs, il n\u2019a pas besoin d\u2019\u00eatre \u00e9crit sur le disque, propose plusieurs fa\u00e7ons diff\u00e9rentes de pr\u00e9senter la &#8220;GPO&#8221; \u00e0 exploiter tout comme l\u2019utilisateur, dans le cas o\u00f9 il doit \u00eatre sp\u00e9cifi\u00e9, tout en gardant les avantages du premier: plus polyvalent que &#8220;PyGPOAbuse&#8221;, peut utiliser d\u2019autres domaines ainsi que d\u2019autres contr\u00f4leurs de domaine, l\u2019utilisation est aussi plus ais\u00e9e que la version python. En tant qu\u2019exemple nous utiliserons une attaque par ajout d\u2019administrateur local. Cette derni\u00e8re repose sur plusieurs principes. Les groupes d\u2019administrations sont souvent restreints, c\u2019est donc un param\u00e8tre &#8220;Machine&#8221; qu\u2019il faudra appliquer. C\u2019est derniers sont sauvegard\u00e9s en &#8220;\\Machine\\Microsoft\\Windows NT\\SecEdit&#8221; dans un fichier &#8220;GptTmpl.inf&#8221;. Celui-ci sera structur\u00e9 de la mani\u00e8re suivantes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">[Unicode]\nUnicode=yes\nsignature=\"$CHICAGO$\"\nRevision=1\n[Group Membership]\n*S-1-5-32-544__Memberof =\n*S-1-5-32-544__Members = *SID_UTILISATEUR\/GROUP<\/code><\/pre>\n\n\n\n<p>Les GUIDS de la propri\u00e9t\u00e9 &#8220;gPCMachineExtensionNames&#8221; devront comport\u00e9 les suivants:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\n{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}<\/pre>\n\n\n\n<p>Les valeurs renseign\u00e9es dans le fichier &#8220;GPT.ini&#8221; ainsi que la propri\u00e9t\u00e9 &#8220;versionNumber&#8221; devront tous deux \u00eatre augment\u00e9s de 1, sinon les param\u00e8tres de la &#8220;GPO&#8221; ne seront pas appliqu\u00e9s. le SID du groupe (dans l\u2019exemple, &#8220;S-1-5-32-544&#8221; qui est celui des administrateurs par d\u00e9faut) peut-\u00eatre changer par n\u2019importe quel SID d\u2019un groupe du domaine.<\/p>\n\n\n\n<p>Attaque avec CobaltStrike:<\/p>\n\n\n\n<ul><li>Avec SharpGPOAbuse. L&#8217;assemby .NET est ex\u00e9cut\u00e9e en m\u00e9moire avec &#8220;execute-assembly&#8221;, la commande ressemblera donc \u00e0 celle ci-dessous. Une fois que les strat\u00e9gies de groupe auront \u00e9t\u00e9 actualis\u00e9es, il ne restera plus qu&#8217;\u00e0 utiliser &#8220;Jump&#8221; en &#8220;psexec&#8221;  (le &#8220;psexec&#8221; n\u00e9cessite d&#8217;\u00eatre administrateur local, ce que nous sommes devenu, et des r\u00e9pertoires d&#8217;administration disponible en \u00e9criture, ce qui est le cas) pour avoir notre &#8220;beacon&#8221; (ici un &#8220;listener&#8221; &#8220;SMB&#8221;, a \u00e9t\u00e9 utilis\u00e9 dans le but de mettre en place une infrastructure paire \u00e0 paire, nous y reviendrons dans un future article).<\/li><li>Avec PowerGPOAbuse. Le programme PowerShell doit d&#8217;abord \u00eatre import\u00e9 avec &#8220;powershell-import&#8221; puis &#8220;powerpick&#8221; permet d&#8217;ex\u00e9cuter une commande PowerShell sans n\u00e9cessairement avoir PowerShell. Enfin, nous finirons comme avec le premier cas, c&#8217;est \u00e0 dire en pivotant avec &#8220;psexec&#8221;.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">beacon&gt; execute-assembly D:\\tools\\bin\\SharpGPOAbuse.exe --AddLocalAdmin --UserAccount bobby --GPOName SuperSecureGPO<\/pre>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"464\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1024x464.png\" alt=\"\" data-id=\"47\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=47\" class=\"wp-image-47\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1024x464.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-300x136.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-768x348.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-400x181.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-800x363.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin.png 1255w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"736\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-1024x736.png\" alt=\"\" data-id=\"48\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=48\" class=\"wp-image-48\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-1024x736.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-300x216.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-768x552.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-400x288.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec-800x575.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdminPsExec.png 1341w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"839\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-1024x839.png\" alt=\"\" data-id=\"50\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=50\" class=\"wp-image-50\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-1024x839.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-300x246.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-768x630.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-400x328.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec-800x656.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdminPsExec.png 1115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Attaque avec PowerShellEmpire:<\/p>\n\n\n\n<ul><li>Avec SharpGPOAbuse. Ne pouvant pas ex\u00e9cuter de .NET en m\u00e9moire avec Empire, il faut donc le mettre sur la machine compromise. Ensuite, il faut l&#8217;ex\u00e9cuter avec &#8220;Start-Process&#8221; sans attendre de r\u00e9sultat malheureusement. Enfin comme dans l&#8217;exploitation avec CobaltStrike, &#8220;PsExec&#8221; nous permettra de pivoter sur le &#8220;DC&#8221; (il est fait avec &#8220;Invoke-SMBExec&#8221; the <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Kevin-Robertson\/Invoke-TheHash\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Kevin-Robertson\/Invoke-TheHash\" target=\"_blank\">Invoke-TheHash<\/a>).<\/li><li>Avec PowerGPOAbuse. En premier lieu il faut importer le programme dans l&#8217;implant avec la commande &#8220;scriptimport&#8221;. Puis &#8220;scriptcmd&#8221; permettra d&#8217;utilis\u00e9 un script PowerShell charg\u00e9. Il n&#8217;y aura pas d&#8217;output car les fonctions utilises &#8220;Write-Host&#8221; (\u00e9quivalent de &#8220;print&#8221;) qui ne retourne aucune valeur, et c&#8217;est ce qu&#8217;attend &#8220;scriptcmd&#8221;, ce comportement sera corrig\u00e9.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"945\" height=\"436\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1.png\" alt=\"\" data-id=\"51\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=51\" class=\"wp-image-51\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1.png 945w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1-300x138.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1-768x354.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1-400x185.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpAddLocalAdmin-1-800x369.png 800w\" sizes=\"(max-width: 945px) 100vw, 945px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"677\" height=\"302\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpPsExec-1.png\" alt=\"\" data-id=\"53\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=53\" class=\"wp-image-53\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpPsExec-1.png 677w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpPsExec-1-300x134.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/SharpPsExec-1-400x178.png 400w\" sizes=\"(max-width: 677px) 100vw, 677px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"902\" height=\"278\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1.png\" alt=\"\" data-id=\"54\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=54\" class=\"wp-image-54\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1.png 902w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1-300x92.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1-768x237.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1-400x123.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerAddLocalAdmin-1-800x247.png 800w\" sizes=\"(max-width: 902px) 100vw, 902px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"751\" height=\"465\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerPsExec.png\" alt=\"\" data-id=\"55\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerPsExec.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=55\" class=\"wp-image-55\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerPsExec.png 751w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerPsExec-300x186.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/PowerPsExec-400x248.png 400w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Avec PyGPOAbuse l&#8217;attaque est un peu plus complexe, il faut convertir le mot de passe de l&#8217;utilisateur ayant les droits d&#8217;\u00e9dition sur la &#8220;GPO&#8221; (ici Bobby) en son hash NT, ajout\u00e9 le &#8220;fqdn&#8221; (&#8220;fully qualified domain name&#8221; dans notre cas &#8220;testlab.local&#8221;) du domaine, obtenir le nom de la &#8220;GPO&#8221; pour enfin pouvoir lancer le programme (je n&#8217;ai cependant jamais r\u00e9ussi \u00e0 le faire marcher pour une raison qui m&#8217;\u00e9chappe).<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"138\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-1024x138.png\" alt=\"\" data-id=\"56\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=56\" class=\"wp-image-56\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-1024x138.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-300x40.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-768x104.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-1536x207.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-1870x252.png 1870w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-400x54.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse-800x108.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/pyGPOAbuse.png 1897w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h3>Enum\u00e9ration Offensive<\/h3>\n\n\n\n<p><em>les exemples qui suivront seront fait avec PowerView.<\/em><\/p>\n\n\n\n<p>Les &#8220;GPOs&#8221; \u00e9tant des objets cr\u00e9\u00e9s dans le but de configurer un grand nombre d\u2019objet, il est de ce fait possible d&#8217;\u00e9num\u00e9rer les param\u00e8tres qu\u2019elles appliquent sur quelles\/quels machines\/utilisateurs, en effet si une &#8220;GPO&#8221; d\u00e9finit les comptes Administrateurs sur les machines susmentionn\u00e9es alors il devient int\u00e9ressant de viser ces utilisateurs en question. Cette t\u00e2che peut \u00eatre effectu\u00e9e gr\u00e2ce aux cmdlets &#8220;Get-DomainGPOLocalGroup&#8221; et &#8220;Get-DomainGPOComputerLocalGroupMapping&#8221; . Il est alors possible de faire une corr\u00e9lation entre machines et utilisateurs qui peut \u00eatre tr\u00e8s avantageuse.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"654\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-1024x654.png\" alt=\"\" data-id=\"39\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=39\" class=\"wp-image-39\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-1024x654.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-300x192.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-768x490.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-400x255.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup-800x511.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOLocalGroup.png 1090w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"899\" height=\"397\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping.png\" alt=\"\" data-id=\"40\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=40\" class=\"wp-image-40\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping.png 899w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping-300x132.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping-768x339.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping-400x177.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/DomainGPOComputerMapping-800x353.png 800w\" sizes=\"(max-width: 899px) 100vw, 899px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Avec CobaltStrike<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"935\" height=\"393\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping.png\" alt=\"\" data-id=\"41\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=41\" class=\"wp-image-41\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping.png 935w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping-300x126.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping-768x323.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping-400x168.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOComputerMapping-800x336.png 800w\" sizes=\"(max-width: 935px) 100vw, 935px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"647\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-1024x647.png\" alt=\"\" data-id=\"42\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=42\" class=\"wp-image-42\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-1024x647.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-300x190.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-768x485.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-400x253.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup-800x505.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GetDomainGPOLocalGroup.png 1187w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Avec PowerShellEmpire<\/figcaption><\/figure>\n\n\n\n<p>Pour obtenir la liste de machines concern\u00e9es par une tel GPO, il est possible d\u2019utiliser la commande en une ligne suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-DomainGPO -Identity \"SuperSecureGPO\" | ForEach-Object {Get-DomainOU -GPLink $_.cn | ForEach-Object {Get-DomainComputer -SearchBase $_.distinguishedname -Properties dnshostname}}<\/code><\/pre>\n\n\n\n<p>D\u2019une mani\u00e8re similaire il \u00e9tait possible pour les administrateurs de choisir des mots de passe pour des param\u00e8tres \u00e0 appliquer (cr\u00e9ation de services en tant qu\u2019un utilisateur pr\u00e9cis, monter des partages SMB avec des identifiants pr\u00e9cis, d\u00e9finir les mot de passe d\u2019un utilisateur local pr\u00e9cis, \u2026) au travers de &#8220;Group Policy Preferences Password&#8221;. En revanche\u00a0 Microsoft a malencontreusement publi\u00e9 la clef priv\u00e9e utilis\u00e9e pour chiffrer le mot de passe (AES256), r\u00e9sultant d\u2019une vuln\u00e9rabilit\u00e9 toujours exploitable aujourd\u2019hui. D\u2019un point de vue ext\u00e9rieur, l\u2019outil &#8220;CrackMapExec&#8221; poss\u00e8de plusieurs modules permettant de faire une reconnaissance au niveau des partages SMB, et ressortir une liste de potentiel de &#8220;GPO&#8221; vuln\u00e9rable, l\u2019outil &#8220;gpp-decrypt&#8221; permet lui de retrouver le claire des mots de passe.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"868\" height=\"429\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt.png\" alt=\"\" data-id=\"43\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=43\" class=\"wp-image-43\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt.png 868w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt-300x148.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt-768x380.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt-400x198.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPDecrypt-800x395.png 800w\" sizes=\"(max-width: 868px) 100vw, 868px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"253\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-1024x253.png\" alt=\"\" data-id=\"44\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=44\" class=\"wp-image-44\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-1024x253.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-300x74.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-768x190.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-1536x379.png 1536w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-400x99.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword-800x198.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/GPPPassword.png 1607w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Enum\u00e9ration de potentiels identifiants dans les &#8220;GPOs&#8221;<\/figcaption><\/figure>\n\n\n\n<p> Il est cependant beaucoup plus simple lorsque l\u2019on poss\u00e8de un implant de tout faire depuis la machine compromise, &#8220;Get-GPPPassword.ps1&#8221; de <a href=\"https:\/\/github.com\/PowerShellMafia\/PowerSploit\/blob\/master\/Exfiltration\/Get-GPPPassword.ps1\" data-type=\"URL\" data-id=\"https:\/\/github.com\/PowerShellMafia\/PowerSploit\/blob\/master\/Exfiltration\/Get-GPPPassword.ps1\" target=\"_blank\" rel=\"noreferrer noopener\">PowerSploit <\/a>permet de mener cette \u00e9num\u00e9ration directement avec PowerShell. <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"1024\" height=\"464\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1024x464.png\" alt=\"\" data-id=\"45\" class=\"wp-image-45\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1024x464.png 1024w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-300x136.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-768x348.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-400x181.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-800x363.png 800w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword.png 1099w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" width=\"863\" height=\"671\" src=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1.png\" alt=\"\" data-id=\"46\" data-full-url=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1.png\" data-link=\"https:\/\/theredwindows.net\/?attachment_id=46\" class=\"wp-image-46\" srcset=\"https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1.png 863w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1-300x233.png 300w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1-768x597.png 768w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1-400x311.png 400w, https:\/\/theredwindows.net\/wp-content\/uploads\/2020\/09\/Get-GPPPassword-1-800x622.png 800w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">Get-GPPPassword depuis PowerShellEmpire et CobaltStrike<\/figcaption><\/figure>\n\n\n\n<p>Le r\u00e9sultat peut \u00eatre utilis\u00e9 au travers d\u2019une &#8220;pipe&#8221; afin de trouver les ordinateurs sur lesquels l\u2019utilisateur serait administrateur, ou bien les ordinateurs affect\u00e9s par la GPO. Cette t\u00e2che peut-\u00eatre automatis\u00e9e avec la commande en une ligne suivante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-GPPPassword -Verbose | ForEach-Object {$b = ($_.Files).SubString(($_.Files).IndexOf('{')); Get-DomainGPO $b.SubString(0, $b.IndexOf('\\')) | Where-Object { Get-DomainOU -GUID $_.cn | ForEach-Object {Get-DomainComputer -ADSPath $_} }; Write-Host ([System.Environment]::NewLine)}<\/code><\/pre>\n\n\n\n<p>Bien que complexe, elle fonctionne de similairement au premier exemple, \u00e0 la diff\u00e9rence qu\u2019il faut filtrer le r\u00e9sultat pour obtenir la propri\u00e9t\u00e9 &#8220;Name&#8221; incluse dans &#8220;gPCFileSysPath&#8221;. En utilisant un principe similaire, il est possible de faire une multitude de choses, savoir si ses utilisateurs ont des acc\u00e8s administrateurs<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell line-numbers\">Get-GPPPassword -Verbose | ForEach-Object {$pass = ConvertTo-SecureString -AsPlainText -Force $_.Passwords; $cred = New-Object System.Management.Automation.PSCredential($_.UserName, $pass); Find-LocalAdminAccess -Credential $cred}<\/code><\/pre>\n\n\n\n<p>attention non discret, ou si ils sont membres du domaine etc.<\/p>\n\n\n\n<h3>Impacts Forensics<\/h3>\n\n\n\n<p>Il est important de noter que chaque action qui se d\u00e9roule lors d\u2019un abus de GPO (surtout lorsque des permissions sont exploit\u00e9es) laisse un certains nombres de traces qu\u2019il est important d\u2019avoir en t\u00eate. Dans un premier temps s&#8217;il est choisi d\u2019ajouter un privil\u00e8ge \u00e0 un utilisateur, ce seront les &#8220;Event ID&#8221; 6144 ainsi que 4704 seront g\u00e9n\u00e9r\u00e9s. Si c\u2019est un utilisateur est ajout\u00e9 \u00e0 un groupe ce seront les &#8220;Event ID&#8221; 6144 et 4728 qui seront g\u00e9n\u00e9r\u00e9s. Si une t\u00e2che imm\u00e9diate est cr\u00e9\u00e9e alors les &#8220;Event ID&#8221; 6144, 4698, 4700 qui seront retourn\u00e9s. Si c\u2019est un script de d\u00e9marrage qui est ajout\u00e9 alors c\u2019est l&#8217; &#8220;Event ID&#8221; 6144 qui sera inscrit dans les logs du syst\u00e8me. Il ne faut tout de fois pas oubli\u00e9 tous les logs qui seront cr\u00e9\u00e9es \u00e0 la modification de l\u2019objet Active Directory qu\u2019est une GPO, et le fait d\u2019acc\u00e9der \u00e0 un partage SMB et de modifier ce dernier (&#8220;Event ID&#8221; 5136, 5169, 5143), en plus des diff\u00e9rents fichiers qui seront \u00e9ventuellement laiss\u00e9s derri\u00e8re. Ces traces seront laiss\u00e9es uniquement si &#8220;audit policy&#8221; sont activ\u00e9es.<\/p>\n\n\n\n<h3>Conclusion<\/h3>\n\n\n\n<p>Dans cet article nous avons vu que les strat\u00e9gies de groupes font parties des \u00e9l\u00e9ments essentiels d\u2019un Active Directory, et qu\u2019elles sont tr\u00e8s puissantes. Comme toujours leur s\u00e9curit\u00e9 ne doit absolument pas \u00eatre n\u00e9glig\u00e9e, avec de mauvaises permissions un attaquant poss\u00e8de tous les outils n\u00e9cessaires pour les utiliser de mani\u00e8re offensive, s\u2019assurant gains de privil\u00e8ge, mouvement lat\u00e9ral ainsi que persistance. J\u2019esp\u00e8re que cela vous aura plu.<\/p>\n\n\n\n<p>Beaucoup d\u2019exemples ont utilis\u00e9 un scripting PowerShell relativement pouss\u00e9, il est donc pr\u00e9vu des le\u00e7ons de PowerShell sur le blog, ce qui a plusieurs objectifs: <\/p>\n\n\n\n<ul><li>Mieux comprendre le fonctionnement de certains outils (PowerView vue dans cette exemple). <\/li><li>Mieux utilis\u00e9 ces derniers (dans le cas de commande en une ligne).<\/li><li>Ainsi que faire d\u00e9couvrir ce merveilleux langage qu\u2019est PowerShell.<\/li><\/ul>\n\n\n\n<p>PowerGPOAbuse est disponible sur github, \u00e0 cette adresse <a href=\"https:\/\/github.com\/rootSySdk\/PowerGPOAbuse\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/rootSySdk\/PowerGPOAbuse<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les GPOs, acronymes de Group Policy Object, sont des conteneurs mis \u00e0 disposition des administrateurs pour faire appliquer \u00e0 un ensemble d\u2019objets, un ensemble de r\u00e8gles. Ces derni\u00e8res permettent donc d\u2019am\u00e9liorer la flexibilit\u00e9 tout en offrant une grande modularit\u00e9 aux g\u00e9rants d\u2019infrastructures Active Directory. Nous verrons dans ce poste comment utiliser de mani\u00e8re offensive des [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/24"}],"collection":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":10,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":143,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/posts\/24\/revisions\/143"}],"wp:attachment":[{"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theredwindows.net\/index.php\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}