{"id":228082,"date":"2016-04-03T20:44:42","date_gmt":"2016-04-03T18:44:42","guid":{"rendered":"http:\/\/securite.intrinsec.com\/?p=1972"},"modified":"2016-04-03T20:44:42","modified_gmt":"2016-04-03T18:44:42","slug":"write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4","status":"publish","type":"post","link":"https:\/\/www.intrinsec.com\/en\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/","title":{"rendered":"Write-up \u2013 Nuit du Hack 2016 CTF Quals \u2013 Matryoshka step 4"},"content":{"rendered":"<h1><b>Introduction<\/b><\/h1>\n<p>Some of Intrinsec&#039;s consultants participated, as independent individuals, to the Nuit du Hack CTF Quals \u2013 2016. We are satisfied with our ranking (#52 over 447 teams who solved at least one challenge) and we were one of the few teams to solve the Matryochka step 4 challenge (500 points) so here is our writeup.<\/p>\n<p>This could also be useful to malware analysts who want to reverse-engineer an infected MBR (like in a recent ransomware).<\/p>\n<h1><b>Identification<\/b><\/h1>\n<p>The previous step, <i>Matryoshka step 3<\/i>, gives us a binary file (<a href=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/stage4.zip\">download<\/a>), weighing 5,120 bytes.<\/p>\n<p>Tea <i>file<\/i> command recognizes a \u00abDOS\/MBR boot sector\u00bb. HAS <i>fdisk -l<\/i> on it identifies four 1 Tb partitions with the same start and end offsets (we ignored this fact). Running <i>strings<\/i> returns an interesting one: \u00abWhat&#039;s the magic word? &quot;.<\/p>\n<h1><b>VM setup<\/b><\/h1>\n<p>Set up a minimal VM (1x vCPU and a few megabytes of RAM and hard-disk space) to execute this MBR code, using VMWare Workstation. The VM is booted on a GParted CD ISO to access the raw disk and copy the MBR on it:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-1980 size-full\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image23.png\" alt=\"image23\" width=\"596\" height=\"304\" \/>Then disconnect the ISO and reboot the VM to find the expected prompt:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-1974 size-full\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image17.png\" alt=\"image17\" width=\"214\" height=\"42\" \/>Try to type something and see it fail:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-1977 size-full\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image20.png\" alt=\"image20\" width=\"580\" height=\"243\" \/>interestingly, the \u00abbadboy\u00bb message was not found by <i>strings<\/i> so it must be decoded during the execution.<\/p>\n<h1><b>Debugging setup<\/b><\/h1>\n<p>VMWare VMs can be remotely debugged, using the GDB protocol, even during the initial BIOS and MBR steps. You have to add the following lines to the .vmx file (<a href=\"http:\/\/wiki.osdev.org\/VMware\">source<\/a>):<br \/>\n<code><br \/>\ndebugStub.listen.guest32 = &quot;TRUE&quot; # enables debugging<br \/>\ndebugStub.listen.guest32.remote = &quot;TRUE&quot; # Allows debugging from a different computer \/ VM instead of localhost. The IP for remote debugging will be that of the host.<br \/>\ndebugStub.hideBreakpoints = &quot;TRUE&quot; # Enables the use of hardware breakpoints instead of software (INT3) breakpoints<br \/>\nmonitor.debugOnStartGuest32 = &quot;TRUE&quot; # Breaks into debug stub on first instruction (warning: in BIOS!) # This will halt the VM at the very first instruction at 0xFFFF0, you could set the next breakpoint to break *0x7c00 to break when the bootloader is loaded by the BIOS<br \/>\n<\/code><br \/>\nWhen you start the VM, it hangs on a black screen, it is normal. Then you can start your preferred GDB-compatible debugger, I chose IDA. In the <i>Debugger <\/i>menu, choose <i>Attach -&gt; Remote GDB debugger<\/i>. Input the listening IP and the default TCP port 8832, click OK then select <i>attach to the process started on target<\/i>, and type F9 to continue execution.<\/p>\n<h1><b>Analysis<\/b><\/h1>\n<p>The VM should now show you the prompt, type something, but don&#039;t hit ENTER, then suspend the execution in IDA. Inspect the memory in the <i>Hex view<\/i> to find familiar strings:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1982 size-full\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image25.png\" alt=\"image25\" width=\"615\" height=\"194\" \/>Our input is stored at 0x1003 so let&#039;s place a hardware RW breakpoint. I didn&#039;t find an easier way than right-clicking in the <i>IDA view<\/i>, selecting <i>Synchronize with-&gt;Hex view<\/i> to be able to right-click on the data and select <i>Add breakpoint<\/i>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1988\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image31.png\" alt=\"image31\" width=\"482\" height=\"433\" \/><\/p>\n<p>Don&#039;t forget to synchronize back the <i>IDA view <\/i>with EIP. Hit F9 to resume execution, and hit ENTER in the VM to submit this password. The VM pauses because the breakpoint is triggered.<\/p>\n<p>Follow the execution step-by-step or hit F9 until it triggers again to see interesting comparisons:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1978\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image21.png\" alt=\"image21\" width=\"325\" height=\"200\" \/><\/p>\n<p>It looks like the beginning of a string \u00abGoo\u00bb, so edit the password in the <i>Hex view <\/i>to make it match (or set EIP at 0x14C0 to skip the checks), then continue following the execution thanks to the breakpoint.<\/p>\n<p>If you go too far and miss something, disable the breakpoint, restart from the beginning, type the password, suspend the execution to enable the breakpoint, resume with F9, hit ENTER.<\/p>\n<p>We gradually find the remaining chars of the string:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1973\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image16.png\" alt=\"image16\" width=\"308\" height=\"182\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1981\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image24.png\" alt=\"image24\" width=\"318\" height=\"213\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1986\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image29.png\" alt=\"image29\" width=\"316\" height=\"182\" \/><\/p>\n<p>So we have \u00abGood_Game_!\u00bb \u00bb which really looks like a flag, let&#039;s try:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1983\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image26.png\" alt=\"image26\" width=\"592\" height=\"224\" \/><\/p>\n<p>I submitted this flag and unfortunately it did not work. An organizer kindly answered us on IRC: it was a nice side effect but not the expected flag (very frustrating!) so I continued the analysis relying on the breakpoints to see if something else happened to the password after this.<\/p>\n<p>It found the following routine which modifies the password in-place with a promising XOR:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1984\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image27.png\" alt=\"image27\" width=\"332\" height=\"276\" \/><\/p>\n<p>I replaced the password with null bytes, to get the key after execution, we can even see that it is repeated:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1979\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image22.png\" alt=\"image22\" width=\"611\" height=\"91\" \/><\/p>\n<p>We extend the length of the breakpoint to 0x18 to catch every operation on this whole area. And we find more interesting comparisons:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1975\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image18.png\" alt=\"image18\" width=\"318\" height=\"247\" \/><\/p>\n<p>Caution: it begins with EBX=0x1004, the second letter of the password, and it adds to EBX at first 2, then 1, then 6. It means that the comparison is not done sequentially char by char. The next routines work the same way:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1987\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image30.png\" alt=\"image30\" width=\"321\" height=\"243\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1976\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image19.png\" alt=\"image19\" width=\"319\" height=\"168\" \/><\/p>\n<p>So we have everything, including the expected string after the XOR routine (length = 11), in the right order. We XOR lines 1 and 2 in the following table and obtain the expected input:<\/p>\n<table>\n<tbody>\n<tr>\n<td>Expected result<\/td>\n<td>0x28<\/td>\n<td>0x37<\/td>\n<td>0x77<\/td>\n<td>0x5b<\/td>\n<td>0x31<\/td>\n<td>0x90<\/td>\n<td>0xd4<\/td>\n<td>0x68<\/td>\n<td>0xdf<\/td>\n<td>0x2c<\/td>\n<td>0xb9<\/td>\n<\/tr>\n<tr>\n<td>XOR key<\/td>\n<td>0x6C<\/td>\n<td>0x53<\/td>\n<td>0x05<\/td>\n<td>0x6a<\/td>\n<td>0x5c<\/td>\n<td>0xfc<\/td>\n<td>0xfb<\/td>\n<td>0x0e<\/td>\n<td>0xad<\/td>\n<td>0x4a<\/td>\n<td>0xb9<\/td>\n<\/tr>\n<tr>\n<td>Expected input<\/td>\n<td>D<\/td>\n<td>d<\/td>\n<td>r<\/td>\n<td>1<\/td>\n<td>m<\/td>\n<td>l<\/td>\n<td>\/<\/td>\n<td>f<\/td>\n<td>r<\/td>\n<td>f<\/td>\n<td>0x00<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>It looks less like a flag than the previous one, but it works, and it is accepted by the submission webapp!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1985\" src=\"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2016\/04\/image28.png\" alt=\"image28\" width=\"596\" height=\"225\" \/><\/p>\n<h1><b>Things that did not work<\/b><\/h1>\n<p>It is also interesting to know what I tried but that did not lead to anything interesting:<\/p>\n<ul>\n<li>I began with a quick static analysis of the file but it was inconclusive so I switched to a debugging approach. You can read <a href=\"https:\/\/github.com\/hexpresso\/WU-2016\/tree\/master\/nuit-du-hack-ctf-quals-2016\/crackme\/Matriochka4\">Hexpresso&#039;s XeR&#039;s writeup <\/a>for a detailed reverse of the first steps of the boot.<\/li>\n<li>I tried to convert the initial file from a raw disk image to a VMDK, with VBoxManage from Oracle Virtualbox, but it was not bootable.<\/li>\n<li>The first emulation was done with qemu and the execution worked. IDA recognized a 16-bit architecture, which looked valid in this MBR context. But the debugging behavior was strange: step-by-step debugging was skipping instructions and the disassembly was always changing, because they were in fact 32-bit instructions. Perhaps it could have been fixed with an IDA setting.<\/li>\n<li>A second emulation was tried, using bochs, but it required to have the exact hard-disk geometry settings to work so I finally switched to VMWare which worked fine without tuning.<\/li>\n<\/ul>\n<h1><b>Greetings<\/b><\/h1>\n<p>Congratulations to the top 10 teams who will compete in the private CTF.<\/p>\n<p>I thank the Nuit du Hack organizers for this interesting challenge, and also my teammates (especially Adrien and Arthur) who helped me finish this, just half an hour before the end of the competition!<\/p>\n<p>&nbsp;<\/p>\n<p><em>\u2014 Cl\u00e9ment Notin<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Introduction Some of Intrinsec&#039;s consultants participated, as independent individuals, to the Nuit du Hack CTF [\u2026]<\/p>","protected":false},"author":1,"featured_media":1996,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[123,140,141],"class_list":["post-228082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-soc-securite-operationnelle","tag-ctf","tag-nuitduhack","tag-reverse"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Write-up - Nuit du Hack 2016 CTF Quals - Matriochka step 4 - INTRINSEC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intrinsec.com\/en\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Write-up - Nuit du Hack 2016 CTF Quals - Matriochka step 4\" \/>\n<meta property=\"og:description\" content=\"Introduction Some of Intrinsec\u2019s consultants participated, as independent individuals, to the Nuit du Hack CTF [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intrinsec.com\/en\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/\" \/>\n<meta property=\"og:site_name\" content=\"INTRINSEC\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-03T18:44:42+00:00\" \/>\n<meta name=\"author\" content=\"Intrinsec\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Intrinsec\" \/>\n<meta name=\"twitter:site\" content=\"@Intrinsec\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Intrinsec\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/\"},\"author\":{\"name\":\"Intrinsec\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#\\\/schema\\\/person\\\/ade590fbc7ad6f413727bae7cd3fb799\"},\"headline\":\"Write-up &#8211; Nuit du Hack 2016 CTF Quals &#8211; Matriochka step 4\",\"datePublished\":\"2016-04-03T18:44:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/\"},\"wordCount\":1004,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"CTF\",\"nuitduhack\",\"reverse\"],\"articleSection\":[\"SOC S\u00e9curit\u00e9 Op\u00e9rationnelle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/\",\"url\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/\",\"name\":\"Write-up - Nuit du Hack 2016 CTF Quals - Matriochka step 4 - INTRINSEC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2016-04-03T18:44:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.intrinsec.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Write-up &#8211; Nuit du Hack 2016 CTF Quals &#8211; Matriochka step 4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#website\",\"url\":\"https:\\\/\\\/www.intrinsec.com\\\/\",\"name\":\"INTRINSEC\",\"description\":\"Notre m\u00e9tier , Prot\u00e9ger le v\u00f4tre\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intrinsec.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#organization\",\"name\":\"INTRINSEC\",\"alternateName\":\"ISEC\",\"url\":\"https:\\\/\\\/www.intrinsec.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intrinsec.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/libellule.png\",\"contentUrl\":\"https:\\\/\\\/www.intrinsec.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/libellule.png\",\"width\":1322,\"height\":1322,\"caption\":\"INTRINSEC\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/Intrinsec\",\"https:\\\/\\\/fr.linkedin.com\\\/company\\\/intrinsec\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC0trUZAHNZOUbxYnNdecM4A\"],\"description\":\"soci\u00e9t\u00e9 de consulting, pure player cybers\u00e9curit\u00e9 fran\u00e7ais et europ\u00e9en depuis plus de 30ans, sp\u00e9cialiste dans la s\u00e9curit\u00e9 offensive & audit (pentest\\\/red team), GRC, et services IMSS comme le SOC, CTI et CERT Intrinsec est qualifi\u00e9 PASSI Elev\u00e9, PRIS Elev\u00e9 et PACS par l'ANSSI\",\"email\":\"contact@intrinsec.com\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intrinsec.com\\\/#\\\/schema\\\/person\\\/ade590fbc7ad6f413727bae7cd3fb799\",\"name\":\"Intrinsec\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g\",\"caption\":\"Intrinsec\"},\"sameAs\":[\"https:\\\/\\\/www.intrinsec.com\"],\"url\":\"https:\\\/\\\/www.intrinsec.com\\\/en\\\/author\\\/ufhtbqccsz\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Write-up - Nuit du Hack 2016 CTF Quals - Matryoshka step 4 - INTRINSEC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.intrinsec.com\/en\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/","og_locale":"en_US","og_type":"article","og_title":"Write-up - Nuit du Hack 2016 CTF Quals - Matriochka step 4","og_description":"Introduction Some of Intrinsec\u2019s consultants participated, as independent individuals, to the Nuit du Hack CTF [&hellip;]","og_url":"https:\/\/www.intrinsec.com\/en\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/","og_site_name":"INTRINSEC","article_published_time":"2016-04-03T18:44:42+00:00","author":"Intrinsec","twitter_card":"summary_large_image","twitter_creator":"@Intrinsec","twitter_site":"@Intrinsec","twitter_misc":{"Written by":"Intrinsec","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#article","isPartOf":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/"},"author":{"name":"Intrinsec","@id":"https:\/\/www.intrinsec.com\/#\/schema\/person\/ade590fbc7ad6f413727bae7cd3fb799"},"headline":"Write-up &#8211; Nuit du Hack 2016 CTF Quals &#8211; Matriochka step 4","datePublished":"2016-04-03T18:44:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/"},"wordCount":1004,"commentCount":0,"publisher":{"@id":"https:\/\/www.intrinsec.com\/#organization"},"image":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#primaryimage"},"thumbnailUrl":"","keywords":["CTF","nuitduhack","reverse"],"articleSection":["SOC S\u00e9curit\u00e9 Op\u00e9rationnelle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/","url":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/","name":"Write-up - Nuit du Hack 2016 CTF Quals - Matryoshka step 4 - INTRINSEC","isPartOf":{"@id":"https:\/\/www.intrinsec.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#primaryimage"},"image":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#primaryimage"},"thumbnailUrl":"","datePublished":"2016-04-03T18:44:42+00:00","breadcrumb":{"@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/www.intrinsec.com\/write-up-nuit-du-hack-2016-ctf-quals-matriochka-step-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.intrinsec.com\/"},{"@type":"ListItem","position":2,"name":"Write-up &#8211; Nuit du Hack 2016 CTF Quals &#8211; Matriochka step 4"}]},{"@type":"WebSite","@id":"https:\/\/www.intrinsec.com\/#website","url":"https:\/\/www.intrinsec.com\/","name":"INTRINSEC","description":"Our job is to protect yours.","publisher":{"@id":"https:\/\/www.intrinsec.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intrinsec.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intrinsec.com\/#organization","name":"INTRINSEC","alternateName":"ISEC","url":"https:\/\/www.intrinsec.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intrinsec.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2025\/02\/libellule.png","contentUrl":"https:\/\/www.intrinsec.com\/wp-content\/uploads\/2025\/02\/libellule.png","width":1322,"height":1322,"caption":"INTRINSEC"},"image":{"@id":"https:\/\/www.intrinsec.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/Intrinsec","https:\/\/fr.linkedin.com\/company\/intrinsec","https:\/\/www.youtube.com\/channel\/UC0trUZAHNZOUbxYnNdecM4A"],"description":"Intrinsec, a consulting firm and pure-play French and European cybersecurity provider for over 30 years, specializes in offensive security and auditing (penetration testing\/red teams), GRC, and IMSS services such as SOC, CTI, and CERT. Intrinsec is qualified at PASSI High, PRIS High, and PACS levels by ANSSI.","email":"contact@intrinsec.com"},{"@type":"Person","@id":"https:\/\/www.intrinsec.com\/#\/schema\/person\/ade590fbc7ad6f413727bae7cd3fb799","name":"Intrinsic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fde6ed961c7078765b03a213927b5c4001b1cef4787255188f5b502a99e6ddd6?s=96&d=retro&r=g","caption":"Intrinsec"},"sameAs":["https:\/\/www.intrinsec.com"],"url":"https:\/\/www.intrinsec.com\/en\/author\/ufhtbqccsz\/"}]}},"_links":{"self":[{"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/posts\/228082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/comments?post=228082"}],"version-history":[{"count":0,"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/posts\/228082\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/media?parent=228082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/categories?post=228082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intrinsec.com\/en\/wp-json\/wp\/v2\/tags?post=228082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}