{"id":577,"date":"2019-08-27T10:55:58","date_gmt":"2019-08-27T08:55:58","guid":{"rendered":"http:\/\/pentester.blog\/?p=577"},"modified":"2020-05-21T19:50:00","modified_gmt":"2020-05-21T17:50:00","slug":"windows-et-les-privileges-structure-dun-access-token","status":"publish","type":"post","link":"https:\/\/hacktarus.fr\/?p=577","title":{"rendered":"Windows et les privil\u00e8ges &#8211; Structure d&rsquo;un Access Token"},"content":{"rendered":"\n<p>On a vu dans le <a href=\"http:\/\/hacktarus.fr\/?p=531\">pr\u00e9c\u00e9dent<\/a> post qu&rsquo;il est possible d&rsquo;\u00e9lever ses privil\u00e8ges et de devenir administrateur local en copiant depuis l&rsquo;espace Kernel le pointeur du Token System vers le pointeur du Token d&rsquo;un invite de commandes. Alors oui c&rsquo;\u00e9tait facile car nous \u00e9tions en mode debug Kernel et tout se faisait \u00e0 la main en Windbg, n\u00e9anmoins cela a pos\u00e9 certaines bases. Nous verrons dans un prochain post comment exploiter un driver vuln\u00e9rable \u00e0 de l&rsquo;\u00e9criture arbitraire pour \u00e9lever ses privil\u00e8ges selon une technique assez proche.  <\/p>\n\n\n\n<p>En attendant attardons-nous un peu sur ces Token, plus pr\u00e9cis\u00e9ment les Windows Access Token, que sont-ils ?<\/p>\n\n\n\n<p>Un Windows Access Token est un objet qui d\u00e9crit le contexte de s\u00e9curit\u00e9 d&rsquo;un processus ou d&rsquo;une thread. Il est g\u00e9n\u00e9r\u00e9 par le syst\u00e8me lors du logon. Il est utilis\u00e9 lorsqu&rsquo;un processus ou une thread interagit avec un objet qui dispose d&rsquo;un descripteur de s\u00e9curit\u00e9, un \u00ab\u00a0securable object\u00a0\u00bb.<\/p>\n\n\n\n<p>Un Windows Access Token contient pas mal d&rsquo;attributs, dont  :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>le SID du propri\u00e9taire<\/li><li>les SID des groupes dont il est membre<\/li><li>la liste de ses privil\u00e8ges<\/li><li>le type de Token  (Primary ou Impersonation)<\/li><\/ul>\n\n\n\n<p>Une fois que le Token est cr\u00e9\u00e9 il n&rsquo;est pas possible d&rsquo;ajouter de nouveaux privil\u00e8ges, il est seulement possible d&rsquo;activer ou de d\u00e9sactiver les privil\u00e8ges d\u00e9j\u00e0 existant.<\/p>\n\n\n\n<p>Mais qu&rsquo;est-ce qu&rsquo;un privil\u00e8ge ? <\/p>\n\n\n\n<p>Un privil\u00e8ge est un droit attribu\u00e9 \u00e0 un utilisateur ou un \u00e0 un groupe afin d&rsquo;effectuer diverses op\u00e9rations sur le syst\u00e8me comme \u00e9teindre la machine, charg\u00e9 des drivers, ou changer l&rsquo;heure.<\/p>\n\n\n\n<p>Certains utilisateurs et groupes ont des privil\u00e8ges pr\u00e9d\u00e9finis comme les administrateurs locaux, les membres du groupe Backup ou Printer Operators.<\/p>\n\n\n\n<p>Les privil\u00e8ges sont aussi administrables \u00e0 travers les strat\u00e9gies locales (gpedit.msc) dans la section \u00ab\u00a0Attribution des droits utilisateurs\u00a0\u00bb.<\/p>\n\n\n\n<p>La commande whoami \/priv liste vos privil\u00e8ges.<\/p>\n\n\n\n<p>Pour observer la structure m\u00e9moire d&rsquo;un Acces Token et des privil\u00e8ges, retournons dans Windbg.<\/p>\n\n\n\n<p>Examinons un processus cmd.exe avec la commande !process. On voit que son Access Token est r\u00e9f\u00e9renc\u00e9 \u00e0 l&rsquo;adresse 972c0a28 :<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"635\" height=\"332\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2019\/08\/cmd-process.png\" alt=\"\" class=\"wp-image-589\"\/><\/figure>\n\n\n\n<p>Affichons maintenant le contenu du Token avec la commande !token. On trouve le SID de l&rsquo;utilisateur ainsi que les SID des groupes dont il est membre. Enfin plus bas on trouve bien la liste des privil\u00e8ges, ceux que l&rsquo;on retrouve avec la commande whoami \/priv<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"501\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2019\/08\/cmd-token.png\" alt=\"\" class=\"wp-image-590\"\/><\/figure>\n\n\n\n<p>Si on regarde en m\u00e9moire, les privil\u00e8ges sont repr\u00e9sent\u00e9s par une valeur \u00ab\u00a0Present\u00a0\u00bb o\u00f9 chaque bit correspond \u00e0 un privil\u00e8ge. Not\u00e9 \u00e9galement la valeur \u00ab\u00a0Enabled\u00a0\u00bb qui est la liste des privil\u00e8ges activ\u00e9s (bit \u00e0 1) ou pas (bit \u00e0 0).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"69\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2019\/08\/cmd-priv.png\" alt=\"\" class=\"wp-image-591\"\/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On a vu dans le pr\u00e9c\u00e9dent post qu&rsquo;il est possible d&rsquo;\u00e9lever ses privil\u00e8ges et de devenir administrateur local en copiant depuis l&rsquo;espace Kernel le pointeur du Token System vers le pointeur du Token d&rsquo;un invite de commandes. Alors oui c&rsquo;\u00e9tait facile car nous \u00e9tions en mode debug Kernel et tout se faisait \u00e0 la main &hellip; <a href=\"https:\/\/hacktarus.fr\/?p=577\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Windows et les privil\u00e8ges &#8211; Structure d&rsquo;un Access Token<\/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-577","post","type-post","status-publish","format-standard","hentry","category-pentest"],"_links":{"self":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/577","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=577"}],"version-history":[{"count":15,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/577\/revisions"}],"predecessor-version":[{"id":595,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/577\/revisions\/595"}],"wp:attachment":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}