{"id":726,"date":"2020-07-26T17:52:13","date_gmt":"2020-07-26T15:52:13","guid":{"rendered":"http:\/\/pentester.blog\/?p=726"},"modified":"2021-01-04T22:52:27","modified_gmt":"2021-01-04T21:52:27","slug":"analyse-statique-dun-word-malveillant-a-laide-dun-amstrad-cpc","status":"publish","type":"post","link":"https:\/\/hacktarus.fr\/?p=726","title":{"rendered":"Analyse statique d&rsquo;un Word malveillant avec l&rsquo;aide d&rsquo;un Amstrad CPC"},"content":{"rendered":"\n<p>J&rsquo;ai r\u00e9cup\u00e9r\u00e9 il y a quelques jours un document Word tr\u00e8s suspect, en effet son taux de d\u00e9tection sur VirusTotal \u00e9tait \u00e9lev\u00e9, 17\/62 :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"800\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2020\/07\/VirusTotal.png\" alt=\"\" class=\"wp-image-727\"\/><\/figure>\n\n\n\n<p>J&rsquo;ai donc commenc\u00e9 cette analyse \u00e0 l&rsquo;aide de l&rsquo;outil \u00ab\u00a0<a href=\"https:\/\/blog.didierstevens.com\/\">oledump<\/a>\u00a0\u00bb de Didier Stevens afin de voir si ce document contenait des macros, et bien oui (les 3 \u00ab\u00a0M\u00a0\u00bb) :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1288\" height=\"452\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2020\/07\/oledump.png\" alt=\"\" class=\"wp-image-728\"\/><\/figure>\n\n\n\n<p>J&rsquo;ai ensuite extrait les macros de ce document Word toujours \u00e0 l&rsquo;aide de \u00ab\u00a0oledump\u00a0\u00bb.<\/p>\n\n\n\n<p>Le code n&rsquo;\u00e9tait pas sp\u00e9cialement obfusqu\u00e9, juste des noms de fonction et de variable \u00e0 rallonge, rien de m\u00e9chant.<\/p>\n\n\n\n<p>Ce qui est d&#8217;embl\u00e9e suspect c&rsquo;est l&rsquo;appel \u00e0 la fonction \u00ab\u00a0exec\u00a0\u00bb depuis un objet de type \u00ab\u00a0WshShell\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Dim de4f1856 As New WshShell\nCall de4f1856.<strong>exec<\/strong>(d088f7a6 &amp; \" \" &amp; ed38e7bb)<\/pre>\n\n\n\n<p>Mais quel sont les valeurs des arguments pass\u00e9s \u00e0 \u00ab\u00a0exec\u00a0\u00bb, d088f7a6 et ed38e7bb ?<\/p>\n\n\n\n<p>En cherchant dans le code, on s&rsquo;aper\u00e7oit que d088f7a6 est une chaine de caract\u00e8res retourn\u00e9e par la fonction c2ec170d :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Function d088f7a6()\nd088f7a6 = c2ec170d(\"rd0e01gb0sfev9ar013792eb\")\nEnd Function<\/pre>\n\n\n\n<p>En remontant le code on trouve bien cette fonction c2ec170d :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Function c2ec170d(c553066f)<br>For bc6602fc = 1 To Len(c553066f) Step 3<br>e8a444c7 = e8a444c7 &amp; Mid(c553066f, bc6602fc, 1)<br>Next<br>c2ec170d = e8a444c7<br>End Function<\/pre>\n\n\n\n<p>OK, c&rsquo;est une petite fonction qui manipule des caract\u00e8res.<\/p>\n\n\n\n<p>L&rsquo;auteur a voulu masqu\u00e9 le r\u00e9sultat de cet appel :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">c2ec170d(\"rd0e01gb0sfev9ar013792eb\")<\/pre>\n\n\n\n<p>La fonction \u00e9tant toute petite, soit on la d\u00e9roule \u00e0 la main, ce qui est vraiment trivial soit on l&rsquo;\u00e9mule. <\/p>\n\n\n\n<p>Comme en parall\u00e8le j&rsquo;\u00e9tais en train de jouer \u00e0 un vieux jeu sur Amstrad CPC, je me suis dit que j&rsquo;allais utiliser le Basic de l&rsquo;Amstrad !<\/p>\n\n\n\n<p>J&rsquo;ai donc simplement recopier le code de la fonction c2ec170d (en la simplifiant au passage) et ensuite un petit \u00ab\u00a0RUN\u00a0\u00bb pour obtenir le r\u00e9sultat.<\/p>\n\n\n\n<p>Voici donc le r\u00e9sultat de l&rsquo;\u00e9mulation sous un Amstrad CPC (et oui un \u00e9mulateur, WinAPE car snif je n&rsquo;ai plus de vrai Amstrad&#8230;) :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1149\" height=\"579\" src=\"https:\/\/hacktarus.fr\/wp-content\/uploads\/2020\/07\/Amstrad-basic-regsvr32.png\" alt=\"\" class=\"wp-image-729\"\/><\/figure>\n\n\n\n<p>On y est, l&rsquo;auteur a voulu masqu\u00e9 l&rsquo;appel \u00e0 l&rsquo;ex\u00e9cutable \u00ab\u00a0regsvr32\u00a0\u00bb.<\/p>\n\n\n\n<p>Je pense que cette petite obfuscation \u00e9tait simplement l\u00e0 pour bypasser des outils de d\u00e9tection en \u00ab\u00a0pattern matching\u00a0\u00bb.<\/p>\n\n\n\n<p>Quant au deuxi\u00e8me argument de la fonction \u00ab\u00a0exec\u00a0\u00bb, ed38e7bb, il n&rsquo;est pas obfusqu\u00e9, il &lsquo;agit du chemin d&rsquo;un fichier \u00ab\u00a0jpg\u00a0\u00bb dans le r\u00e9pertoire TMP de l&rsquo;utilisateur :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Function ed38e7bb()<br>ed38e7bb = Environ(\"tmp\") &amp; \"\\1.jpg\"<br>End Function<\/pre>\n\n\n\n<p>Voila je me suis arr\u00eat\u00e9 l\u00e0 pour l&rsquo;analyse statique. En effet \u00e0 partir du moment o\u00f9 il y a un appel \u00e0 regsvr32 dans un document Word ce n&rsquo;est pas bon signe, c&rsquo;est bien un malware.<\/p>\n\n\n\n<p>Dans un prochain post on passera \u00e0 l&rsquo;analyse dynamique.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai r\u00e9cup\u00e9r\u00e9 il y a quelques jours un document Word tr\u00e8s suspect, en effet son taux de d\u00e9tection sur VirusTotal \u00e9tait \u00e9lev\u00e9, 17\/62 : J&rsquo;ai donc commenc\u00e9 cette analyse \u00e0 l&rsquo;aide de l&rsquo;outil \u00ab\u00a0oledump\u00a0\u00bb de Didier Stevens afin de voir si ce document contenait des macros, et bien oui (les 3 \u00ab\u00a0M\u00a0\u00bb) : J&rsquo;ai ensuite &hellip; <a href=\"https:\/\/hacktarus.fr\/?p=726\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Analyse statique d&rsquo;un Word malveillant avec l&rsquo;aide d&rsquo;un Amstrad CPC<\/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-726","post","type-post","status-publish","format-standard","hentry","category-malware"],"_links":{"self":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/726","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=726"}],"version-history":[{"count":21,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/726\/revisions"}],"predecessor-version":[{"id":751,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=\/wp\/v2\/posts\/726\/revisions\/751"}],"wp:attachment":[{"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hacktarus.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}