{"id":919,"date":"2021-11-05T14:31:04","date_gmt":"2021-11-05T13:31:04","guid":{"rendered":"https:\/\/pentester.blog\/?p=919"},"modified":"2021-11-05T14:32:25","modified_gmt":"2021-11-05T13:32:25","slug":"analyse-dun-maldoc-word","status":"publish","type":"post","link":"https:\/\/hacktarus.fr\/?p=919","title":{"rendered":"Analyse d&rsquo;un maldoc Word"},"content":{"rendered":"\n<p>Dans le cadre d&rsquo;un CTF, j&rsquo;ai eu \u00e0 analyser un \u00ab\u00a0maldoc\u00a0\u00bb, un document Word malveillant.<\/p>\n\n\n\n<p>Vous pouvez t\u00e9l\u00e9charger ce maldoc \u00ab\u00a049b367ac261a722a7c2bbbc328c32545\u00a0\u00bb sur le (tr\u00e8s bon) site : <a href=\"https:\/\/cyberdefenders.org\/labs\/76\">https:\/\/cyberdefenders.org\/labs\/76<\/a><\/p>\n\n\n\n<p>Tout d&rsquo;abord comment savoir qu&rsquo;il s&rsquo;agit d&rsquo;un document Office ?<\/p>\n\n\n\n<p>Le plus simple est d&rsquo;utiliser la commande file sous Linux (il existe m\u00eame une version compil\u00e9e pour Windows), \u00e0 d\u00e9faut vous pouvez ouvrir le fichier dans un \u00e9diteur hexad\u00e9cimal et comparer les premi\u00e8res valeurs avec ce tableau (document de r\u00e9f\u00e9rence, <a href=\"https:\/\/www.sstic.org\/media\/SSTIC2021\/SSTIC-actes\/oletools\/SSTIC2021-Slides-oletools-lagadec.pdf\">https:\/\/www.sstic.org\/media\/SSTIC2021\/SSTIC-actes\/oletools\/SSTIC2021-Slides-oletools-lagadec.pdf<\/a>)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1215\" height=\"351\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-1.png\" alt=\"\" class=\"wp-image-921\"\/><\/figure>\n\n\n\n<p> Dans notre cas on a ceci :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"391\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-2.png\" alt=\"\" class=\"wp-image-922\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>C&rsquo;est un fichier OLE (Word\/Excel\/PPT 97).<\/p>\n\n\n\n<p>S&rsquo;agissant d&rsquo;un fichier OLE, je vous conseille l&rsquo;outil \u00ab\u00a0olevba\u00a0\u00bb (https:\/\/github.com\/decalage2\/oletools) qui va nous \u00eatre d&rsquo;une grande aide pour d\u00e9sosser ce fichier \u00e0 la recherche des macros et mots-clefs suspicieux sans pour autant l&rsquo;ex\u00e9cuter.<\/p>\n\n\n\n<p>Voici les \u00e9l\u00e9ments le plus int\u00e9ressant relev\u00e9s par olevba, \u00e0 la lecture du code des macros il semble y avoir :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Un drop d&rsquo;un fichier maintool.js dans le dossier AppData de l&rsquo;utilisateur<\/li><li>Ex\u00e9cution de ce fichier maintool.js avec la valeur EzZETcSXyKAdF_e5I2i1 en param\u00e8tre<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture.png\" alt=\"\" class=\"wp-image-923\" width=\"690\" height=\"235\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1208\" height=\"544\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture2.png\" alt=\"\" class=\"wp-image-924\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1184\" height=\"851\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture3.png\" alt=\"\" class=\"wp-image-925\"\/><\/figure>\n\n\n\n<p>On peut confirmer cette hypoth\u00e8se en ex\u00e9cutant la macro dans une sandbox (en local ou sur Internet), dans un Word en vrai mais en mode debug (little dangerous) ou bien via un parseur et \u00e9mulateur de code VBA (pas besoin de Word dans ce cas), par exemple avec ViperMonkey (<a href=\"https:\/\/github.com\/decalage2\/ViperMonkey\">https:\/\/github.com\/decalage2\/ViperMonkey<\/a>)<\/p>\n\n\n\n<p>Testons donc avec ViperMonkey (dans mon cas il tourne dans un container docker) :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2156\" height=\"548\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture-decran-du-2021-11-05-13-45-35.png\" alt=\"\" class=\"wp-image-926\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1960\" height=\"772\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture-decran-du-2021-11-05-13-44-43.png\" alt=\"\" class=\"wp-image-927\"\/><\/figure>\n\n\n\n<p>On voit bien dans le flot d&rsquo;ex\u00e9cution le drop d&rsquo;un fichier (\u00ab\u00a0Dropped File Hash\u00a0\u00bb).<\/p>\n\n\n\n<p>On va maintenant s&rsquo;int\u00e9resser \u00e0 ce fichier dropp\u00e9, le fichier maintool.js.<\/p>\n\n\n\n<p>Pour le r\u00e9cup\u00e9rer j&rsquo;ai choisi la m\u00e9thode via la sanbox sur Internet via \u00ab\u00a0App Any Run\u00a0\u00bb, en voici une ex\u00e9cution (<a href=\"https:\/\/app.any.run\/tasks\/5840a1fa-9ad9-4c9e-963a-7bc5b6fa3eff\/\">https:\/\/app.any.run\/tasks\/5840a1fa-9ad9-4c9e-963a-7bc5b6fa3eff\/<\/a>) <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1985\" height=\"949\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-4.png\" alt=\"\" class=\"wp-image-929\"\/><\/figure>\n\n\n\n<p>On voit \u00e0 droite l&rsquo;ex\u00e9cution du fichier js via la commande native Windows WScript.exe.<\/p>\n\n\n\n<p>Pour r\u00e9cup\u00e9rer le fichier maintool.js, il suffit de cliquer sur \u00ab\u00a0More Info\u00a0\u00bb puis \u00ab\u00a0Download\u00a0\u00bb (il vous faut un compte) :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1728\" height=\"981\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-5.png\" alt=\"\" class=\"wp-image-930\"\/><\/figure>\n\n\n\n<p>Le fichier js est compress\u00e9 dans un zip avec un mot de passe (\u00ab\u00a0infected\u00a0\u00bb).<\/p>\n\n\n\n<p>Comme d&rsquo;habitude les fichier js sont obfusqu\u00e9s :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1615\" height=\"403\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/Capture-1.png\" alt=\"\" class=\"wp-image-931\"\/><\/figure>\n\n\n\n<p>Dans un premier temps on va arranger tout \u00e7a (au sens faciliter la lecture du code) avec CyberChef et son Javascript Beautify : (<a href=\"https:\/\/gchq.github.io\/CyberChef\/#recipe=JavaScript_Beautify('%5C%5Ct','Auto',true,true\">https:\/\/gchq.github.io\/CyberChef\/#recipe=JavaScript_Beautify(&lsquo;%5C%5Ct&rsquo;,&rsquo;Auto&rsquo;,true,true<\/a>) :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1634\" height=\"1191\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-6.png\" alt=\"\" class=\"wp-image-932\"\/><\/figure>\n\n\n\n<p>On voit que ce Javascript a besoin d&rsquo;un argument, s\u00fbrement la clef pour d\u00e9coder\/d\u00e9chiffrer le vrai code malveillant.<\/p>\n\n\n\n<p>J&rsquo;ai donc remplacer la variable ssWZ par la valeur vu au d\u00e9but avec olevba (<span style=\"font-size: revert;\">EzZETcSXyKAdF_e5I2i1<\/span>) et j&rsquo;ai remplac\u00e9 l&rsquo;appel \u00e0 la fonction eval() par une sortie console via WScript.Echo :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"348\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-7.png\" alt=\"\" class=\"wp-image-933\"\/><\/figure>\n\n\n\n<p>Maintenant je n&rsquo;ai plus qu&rsquo;\u00e0 lancer l&rsquo;ex\u00e9cution avec cscript.exe sans grand risque (plus d&rsquo;eval) afin de r\u00e9cup\u00e9rer le code d\u00e9sofusqu\u00e9 :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1804\" height=\"753\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2021\/11\/image-8.png\" alt=\"\" class=\"wp-image-934\"\/><\/figure>\n\n\n\n<p>Les choses sont plus claires maintenant, on voit les URL cibles, les commandes ex\u00e9cut\u00e9es, les net view\/share\/add administrator, etc&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre d&rsquo;un CTF, j&rsquo;ai eu \u00e0 analyser un \u00ab\u00a0maldoc\u00a0\u00bb, un document Word malveillant. Vous pouvez t\u00e9l\u00e9charger ce maldoc \u00ab\u00a049b367ac261a722a7c2bbbc328c32545\u00a0\u00bb sur le (tr\u00e8s bon) site : https:\/\/cyberdefenders.org\/labs\/76 Tout d&rsquo;abord comment savoir qu&rsquo;il s&rsquo;agit d&rsquo;un document Office ? Le plus simple est d&rsquo;utiliser la commande file sous Linux (il existe m\u00eame une version compil\u00e9e pour &hellip; <a href=\"https:\/\/hacktarus.fr\/?p=919\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Analyse d&rsquo;un maldoc Word<\/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":[6],"tags":[],"class_list":["post-919","post","type-post","status-publish","format-standard","hentry","category-malware"],"_links":{"self":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/919","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=919"}],"version-history":[{"count":4,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/919\/revisions"}],"predecessor-version":[{"id":938,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/919\/revisions\/938"}],"wp:attachment":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}