<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7283008945264267434</id><updated>2024-09-22T23:40:25.043+00:00</updated><category term="malware"/><category term="news"/><category term="ctf"/><category term="neosploit"/><category term="quals"/><category term="intrusion detection"/><category term="codegate"/><category term="reverse engineering"/><category term="zeus"/><category term="adpack"/><category term="armitage"/><category term="fbbits"/><category term="fiesta"/><category term="firepack"/><category term="history"/><category term="hitb"/><category term="icepack"/><category term="mpack"/><category term="ndh"/><category term="tornado"/><category term="unique pack"/><category term="vulnerabilities"/><title type='text'>-=[!]=-</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-6335402130586154878</id><published>2013-03-19T09:26:00.002+00:00</published><updated>2024-02-10T21:10:42.534+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="fbbits"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>ForbiddenBITS 2013 - Crunch - 250</title><content type='html'>We get a PNG image that&#39;s all black. Looking at the structure there doesn&#39;t appear to be any other data, only a single IDAT chunk with deflated image bytes. Decompressing the data we can see a lot of runs with NULL bytes. So this is likely to be an image very limited in color, perhaps all black. After some trial and error we can &quot;highlight&quot; actual content by changing the gamma of the PNG, either via CLI or in Gimp using &quot;Color&quot; -&amp;gt; &quot;Auto&quot; -&amp;gt; &quot;Normalize&quot;. This results in an image of a QR-Code that decodes to a URL.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFolIHFiUnGbNcUtiRlllgC9kYxQGF5B5StFtNkl5LdB_I8KTyA6M7yRaHXQWlSirlETDrzCg-BHje4OOKZDw12ssKAXTNCtg810H7rt9dQ-Mf9LwTZd7UE8Cbu113FQYM63WP9zdR-Tw/s1600/spawn-qr.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFolIHFiUnGbNcUtiRlllgC9kYxQGF5B5StFtNkl5LdB_I8KTyA6M7yRaHXQWlSirlETDrzCg-BHje4OOKZDw12ssKAXTNCtg810H7rt9dQ-Mf9LwTZd7UE8Cbu113FQYM63WP9zdR-Tw/s1600/spawn-qr.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ pngtopnm -gamma 8 spawn.png &amp;gt; spawn.ppm&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ file spawn.ppm&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;spawn.ppm: Netpbm PPM &quot;rawbits&quot; image data&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ zbarimg spawn.ppm&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;QR-Code:http://forbiddenbits.net/060645cc5ebdf80e84ebc91547641b49&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;scanned 1 barcode symbols from 1 images in 0.12 seconds&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The downloaded content is a long ASCII string of HEX characters, which after conversion results in a data blob.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ xxd -l64 060645cc5ebdf80e84ebc91547641b49&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000000: 3939 6261 3964 3839 3734 3633 3263 3234 &amp;nbsp;99ba9d8974632c24&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000010: 3262 3266 3734 3732 3637 3633 3632 3231 &amp;nbsp;2b2f747267636221&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000020: 3734 3362 3636 3632 3964 6232 3734 3330 &amp;nbsp;743b66629db27430&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000030: 3636 3633 3633 3638 3735 3732 3637 3633 &amp;nbsp;6663636875726763&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; from binascii import unhexlify&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; dat = open(&quot;060645cc5ebdf80e84ebc91547641b49&quot;, &quot;rb&quot;).read(1024*1024)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;gt;&amp;gt;&amp;gt; open(&quot;blob.dat&quot;, &quot;wb&quot;).write(unhexlify(dat))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ xxd -l512 blob.dat&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000000: 99ba 9d89 7463 2c24 2b2f 7472 6763 6221 &amp;nbsp;....tc,$+/trgcb!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000010: 743b 6662 9db2 7430 6663 6368 7572 6763 &amp;nbsp;t;fb..t0fcchurgc&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000020: 6368 7572 6763 6368 7572 6763 6368 7572 &amp;nbsp;churgcchurgcchur&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000030: 6763 6368 7572 6763 6368 7572 6763 6368 &amp;nbsp;gcchurgcchurgcch&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000040: 7572 6763 6368 7572 6763 6368 7572 6763 &amp;nbsp;urgcchurgcchurgc&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000050: 6368 7572 6763 6368 758c bd62 2168 7572 &amp;nbsp;churgcchu..b!hur&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000060: 6763 6368 7572 6763 6368 7572 6763 6368 &amp;nbsp;gcchurgcchurgcch&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000070: 7572 6763 6368 7572 6763 6368 7572 6763 &amp;nbsp;urgcchurgcchurgc&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000080: 6368 7572 6763 6368 7572 6763 6368 7572 &amp;nbsp;churgcchurgcchur&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000090: 6763 6368 7572 6763 6368 7572 6763 9da9 &amp;nbsp;gcchurgcchurgc..&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000a0: 7462 6e63 7768 0a70 6773 626b 6572 6573 &amp;nbsp;tbncwh.pgsbkeres&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000b0: 6396 b073 7962 6269 7372 6763 6368 7473 &amp;nbsp;c..sybbisrgcchts&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000c0: 6662 6269 7473 6566 676f 737b 6f68 6262 &amp;nbsp;fbbitsefgos{ohbb&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000d0: 7571 99a6 6203 6473 6661 616e 737b 6064 &amp;nbsp;uq..b.dsfaans{`d&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000e0: 6162 7375 6d6b 626a 7076 6764 7369 7674 &amp;nbsp;absumkbjpvgdsivt&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00000f0: 7576 4358 5032 3703 13e8 847b 7341 515d &amp;nbsp;uvCXP27....{sAQ]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000100: e5d2 a76b 702d c5a2 8774 472a 2017 9757 &amp;nbsp;...kp-...tG* ..W&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000110: 311d 6351 5420 273b 2110 e2f6 c663 6c11 &amp;nbsp;1.cQT &#39;;!....cl.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000120: 0311 17dd 5245 14e1 f1ab 5344 e4e7 f0cb &amp;nbsp;....RE....SD....&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000130: d1c6 a2b6 802f 02e6 f0c1 d0da b787 99a6 &amp;nbsp;...../..........&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000140: 6274 7573 6461 6368 7572 6762 6269 7473 &amp;nbsp;btusdachurgbbits&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000150: 6662 6269 7070 6364 6561 7571 6f9d a669 &amp;nbsp;fbbippcdeauqo..i&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000160: 2162 6662 616d 7274 6066 666b 7376 6364 &amp;nbsp;!bfbamrt`ffksvcd&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000170: 6569 7570 6262 606c 6575 4753 2338 8474 &amp;nbsp;eiupbb`leuGS#8.t&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000180: 7203 13e8 d5c2 7471 f3a8 a592 6e77 4698 &amp;nbsp;r.....tq....nwF.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0000190: 6256 5230 405c 6350 2337 10fb b655 5426 &amp;nbsp;bVR0@\cP#7...UT&amp;amp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001a0: e0cb 6c45 2400 d060 5335 3534 805a 4330 &amp;nbsp;..lE$..`S554.ZC0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001b0: 0207 16cc 8ba9 666e 6168 7471 7761 7369 &amp;nbsp;......fnahtqwasi&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001c0: 4b73 ebff 1087 ad72 7dad 46a2 769d 6438 &amp;nbsp;Ks.....r}.F.v.d8&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001d0: b219 95ff aa93 bd46 9017 4f10 4601 cb43 &amp;nbsp;.......F..O.F..C&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001e0: e5bf 05ff 0dc4 9368 f3c8 2ec2 72c3 93e2 &amp;nbsp;.......h....r...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;00001f0: 8cbc 7d05 fd6f 27ab f03c f67f 7559 8841 &amp;nbsp;..}..o&#39;..&amp;lt;..uY.A&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
So, we can see that there&#39;s some structure to the decoded data blob, but it seems to be non-sense except for the header part, which may contain &quot;encoded&quot; ASCII characters. We could try and guess the file format and at least attempt basic XOR decryption with common magic values as the key in order to get the real key. Another approach is to assume that the header will contain runs of NULL bytes in which case in simple XOR the key will be as plain-text.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the end it turned out to be a JPEG image XOR encrypted using the &quot;fbbits&quot; key. The image contains the flag in form of a hash string overlayed in red on top of the image. Also, notice that the &quot;fbbits&quot; key was in fact present in the data blob where the real JPEG had a run of NULL bytes at offset 0xC0, which is part of Huffman table.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBk77e-KdPlIFFQmuT2_Vg9p5W5JxtvOBT2iN2JF5VXYb9DyP1RAUacaJ540ibgVitTZgj3rn8NN9WGRspWkrtU-_LmPGiUxKrelCGE91X3A4kqz8x_8YbIICXDXwJJKi056Ib9dQN9Z0e/s1600/fbbits.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;232&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBk77e-KdPlIFFQmuT2_Vg9p5W5JxtvOBT2iN2JF5VXYb9DyP1RAUacaJ540ibgVitTZgj3rn8NN9WGRspWkrtU-_LmPGiUxKrelCGE91X3A4kqz8x_8YbIICXDXwJJKi056Ib9dQN9Z0e/s320/fbbits.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/6335402130586154878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/6335402130586154878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/6335402130586154878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/6335402130586154878'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2013/03/forbiddenbits-2013-crunch-250.html' title='ForbiddenBITS 2013 - Crunch - 250'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFolIHFiUnGbNcUtiRlllgC9kYxQGF5B5StFtNkl5LdB_I8KTyA6M7yRaHXQWlSirlETDrzCg-BHje4OOKZDw12ssKAXTNCtg810H7rt9dQ-Mf9LwTZd7UE8Cbu113FQYM63WP9zdR-Tw/s72-c/spawn-qr.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-5879490100810207653</id><published>2013-03-11T22:23:00.001+00:00</published><updated>2024-02-10T21:11:55.398+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="ndh"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>Nuit du Hack 2013 Quals - Crackme3 - 300</title><content type='html'>We get credentials to a SSH server which has two files in the home directory once logged in.&amp;nbsp;One is the challenge binary and the other is a Linux kernel image, both are 64-bit. Running the binary we get a password prompt and no matter what is entered is incorrect.&lt;br /&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;$ ./crackme&lt;/span&gt;&lt;span style=&quot;font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Password: qwerty&lt;/span&gt;&lt;span style=&quot;font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;You loose :(&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
After downloading the binary and looking at the assembly it quickly becomes obvious that static analysis won&#39;t work. The &quot;main()&quot; function contains what appears to be garbage code and the ELF header has some unknown flags set. Also, running the binary on anything other than their server causes a segfault, since instructions make no sense.&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;$ readelf -h crackme&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;ELF Header:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Magic: &amp;nbsp; 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Class: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELF64&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Data: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2&#39;s complement, little endian&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Version: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 (current)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; OS/ABI: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UNIX - System V&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; ABI Version: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Type: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXEC (Executable file)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Machine: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Advanced Micro Devices X86-64&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Version: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Entry point address: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x400610&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Start of program headers: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64 (bytes into file)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Start of section headers: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4752 (bytes into file)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; Flags: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x20&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;span face=&quot;Verdana, sans-serif&quot; style=&quot;color: #6aa84f;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400610 start &amp;nbsp; &amp;nbsp; proc near&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400610 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; and &amp;nbsp; &amp;nbsp; ebp, [rsi-6E561383h]&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400616 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xchg &amp;nbsp; &amp;nbsp;eax, esp&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400617 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jp &amp;nbsp; &amp;nbsp; &amp;nbsp;short near ptr _malloc+2&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400617&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040061A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; out &amp;nbsp; &amp;nbsp; 0D5h, al&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040061C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rol &amp;nbsp; &amp;nbsp; dword ptr [rsi], 1&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040061E &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xlat&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040061F &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; bl, 0Ah&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400621 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lock sbb eax, 0FF98C41Bh&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400627 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xchg &amp;nbsp; &amp;nbsp;eax, ebx&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400628 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xor &amp;nbsp; &amp;nbsp; ch, fs:[rax-47h]&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040062C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jrcxz &amp;nbsp; near ptr byte_40066F&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040062C&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:000000000040062E &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rcpps &amp;nbsp; xmm4, xmm6&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400631 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; loopne &amp;nbsp;near ptr word_4005FA&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400631&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400633 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; adc &amp;nbsp; &amp;nbsp; ch, [rbx+30879A93h]&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:0000000000400639 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sub &amp;nbsp; &amp;nbsp; [rdx+8], bl&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Noto Sans Mono;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;$ ./crackme&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Segmentation fault (core dumped)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;$ gdb crackme&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Copyright (C) 2012 Free Software Foundation, Inc.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;License GPLv3+: GNU GPL version 3 or later &lt;http: gnu.org=&quot;&quot; gpl.html=&quot;&quot; licenses=&quot;&quot;&gt;&lt;/http:&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;This is free software: you are free to change and redistribute it.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;There is NO WARRANTY, to the extent permitted by law. &amp;nbsp;Type &quot;show copying&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;and &quot;show warranty&quot; for details.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;This GDB was configured as &quot;x86_64-linux-gnu&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;For bug reporting instructions, please see:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;http: bugs.launchpad.net=&quot;&quot; gdb-linaro=&quot;&quot;&gt;...&lt;/http:&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Reading symbols from /mnt/hgfs/data/dxp/ctf/2013/ndh/crackme3/crackme...(no debugging symbols found)...done.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;gdb$ r&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Program received signal SIGSEGV, Segmentation fault.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;--------------------------------------------------------------------------[regs]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; EAX: 0x0000001C &amp;nbsp;EBX: 0x00000000 &amp;nbsp;ECX: 0x00000FFF &amp;nbsp;EDX: 0xF7DE9740 &amp;nbsp;o d I t s z a p c&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; ESI: 0x00300000 &amp;nbsp;EDI: 0xF7FFE2C8 &amp;nbsp;EBP: 0x00000000 &amp;nbsp;ESP: 0xFFFFE530 &amp;nbsp;EIP:Error while running hook_stop:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Value can&#39;t be converted to integer.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0x0000000000400610 in ?? ()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;gdb$ x/5i $pc&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;=&amp;gt; 0x400610: &amp;nbsp; &amp;nbsp;and &amp;nbsp; &amp;nbsp;ebp,DWORD PTR [rsi-0x6e561383]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0x400616: &amp;nbsp; &amp;nbsp;xchg &amp;nbsp; esp,eax&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0x400617: &amp;nbsp; &amp;nbsp;rex.XB jp 0x4005f2 &lt;malloc plt=&quot;&quot;&gt;&lt;/malloc&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0x40061a: &amp;nbsp; &amp;nbsp;out &amp;nbsp; &amp;nbsp;0xd5,al&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0x40061c: &amp;nbsp; &amp;nbsp;rol &amp;nbsp; &amp;nbsp;DWORD PTR [rsi],1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;gdb$ i r&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rax &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x1c &amp;nbsp; &amp;nbsp; 0x1c&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rbx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rcx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0xfff &amp;nbsp; &amp;nbsp;0xfff&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rdx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x7ffff7de9740 &amp;nbsp; 0x7ffff7de9740&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rsi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x300000 0x300000&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rdi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x7ffff7ffe2c8 &amp;nbsp; 0x7ffff7ffe2c8&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rbp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rsp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x7fffffffe530 &amp;nbsp; 0x7fffffffe530&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x1 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r9 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x4 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x4&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0xd &amp;nbsp; &amp;nbsp; &amp;nbsp;0xd&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r11 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x10800 &amp;nbsp;0x10800&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r12 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x400610 0x400610&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r13 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x7fffffffe530 &amp;nbsp; 0x7fffffffe530&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r14 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;r15 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;rip &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x400610 0x400610&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;eflags &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x10202 &amp;nbsp;[ IF RF ]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;cs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x33 &amp;nbsp; &amp;nbsp; 0x33&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;ss &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x2b &amp;nbsp; &amp;nbsp; 0x2b&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;ds &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;es &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;fs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;gs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Initially, I tried dumping the memory from the binary on their server but without much success as the server was constantly dropping connections and it was nearly impossible to get anything done remotely. Later they removed GDB stating it was causing resource exhaustion problems. Considering that they also supplied a kernel image it would make sense to assume that the execution of certain files has to go through a decryption routine, similar to how iPhone executes encrypted apps. In the iPhone apps case the entire &quot;.text&quot; section is encrypted and the decryption key is within a kernel module. Thus, the idea is to analyze the supplied kernel image and identify where decryption occurs.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Poking around the kernel initially did not yield anything useful. Looking at the normal process execution sequence via the &quot;execve()&quot; call and following the entire procedure from start to finish did not yield anything that may indicate handling encryption. The typical sequence is for the correct system call stub to be called, which then goes into &quot;sys_execve()&quot; and onto &quot;do_execve()&quot; where the bulk of the logic is located. Nothing related to encryption stood out.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;There&#39;s also functionality for handling various binary formats during process loading as well as the default ELF handling functions. The major one to parse the binary is the &quot;&lt;a href=&quot;http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L561&quot; target=&quot;_blank&quot;&gt;load_elf_binary()&lt;/a&gt;&quot; function. The function itself is a bit large, but not too complex and having a copy of the source code allows to go through it quicker and make sense of the structure parsing code.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Eventually, at very end of the function there&#39;s a rather peculiar code which first initializes a stack buffer with 35 constant values and then in a loop XORs a previously allocated buffer.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A39C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53], 12h&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3A0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+1], 43h ; &#39;C&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3A4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+2], 34h ; &#39;4&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3A8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+3], 65h ; &#39;e&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3AC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; rax, rsi&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3AF &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+4], 78h ; &#39;x&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3B3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+5], 0CFh ; &#39;-&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3B7 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sub &amp;nbsp; &amp;nbsp; rax, rdx&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3BA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+6], 0DCh ; &#39;_&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3BE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_53+7], 0CAh ; &#39;-&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3C2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B], 98h ; &#39;ÿ&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3C6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+1], 90h ; &#39;É&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3CA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sub &amp;nbsp; &amp;nbsp; rcx, rax&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3CD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+2], 65h ; &#39;e&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3D1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+3], 31h ; &#39;1&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3D5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xor &amp;nbsp; &amp;nbsp; edx, edx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;; cnt = 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3D7 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+4], 21h ; &#39;!&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3DB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+5], 56h ; &#39;V&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3DF &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xor &amp;nbsp; &amp;nbsp; eax, eax&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3E1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+6], 83h ; &#39;â&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3E5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; byte ptr [rbp+var_4B+7], 0FAh ; &#39;·&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3E9 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_43], 0CDh ; &#39;-&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3ED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_42], 30h ; &#39;0&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3F1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_41], 0FDh ; &#39;²&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3F5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_40], 12h&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3F9 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3F], 84h ; &#39;ä&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A3FD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3E], 98h ; &#39;ÿ&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A401 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3D], 0B7h ; &#39;+&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A405 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3C], 54h ; &#39;T&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A409 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3B], 0A5h ; &#39;Ñ&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A40D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_3A], 62h ; &#39;b&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A411 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_39], 61h ; &#39;a&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A415 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_38], 0F9h ; &#39;·&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A419 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_37], 0E3h ; &#39;p&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A41D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_36], 9&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A421 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_35], 0C8h ; &#39;+&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A425 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_34], 94h ; &#39;ö&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A429 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_33], 12h&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A42D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_32], 0E6h ; &#39;µ&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;.text:FFFFFFFF8117A431 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mov &amp;nbsp; &amp;nbsp; [rbp+var_31], 87h ; &#39;ç&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Converting this code to Python and applying it to the extracted &quot;.text&quot; section from the binary we get the &quot;executable&quot; code section. Simply replacing the original section with the new one allows us to run the binary offline. However, we still get the same &quot;Password&quot; prompt and have to figure out the correct input to get the key.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The logic of the binary is to read a stream of bytes from STDIN, check for specific characters and either increment or decrement two variables depending on the characters used. Next, the variables are used as offsets into an array of ones and zeros and when the value of &quot;1&quot; is indexed into the process will exit with failure. Thus, the solution is to construct the correct character sequence that results in proper indexing without hitting a &quot;1&quot; and the length of input must be 80 characters.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The array represents a 15x15 matrix which is a maze that has a single solution. In this case it was easier to just print out the maze and apply the character sequences (w, s, a, d) which represent direction (up, down, left, and right) without coding a maze solver. Start from top-left and finish at the bottom-right.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;$ pyton maze.py&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 &amp;nbsp; 0 0 &amp;nbsp; 0 0 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 0 0 &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 0 0 &amp;nbsp; 0 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 0 0 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 0 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; 0 0 0 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 0 &amp;nbsp; 0 &amp;nbsp; 0 0 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 0 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 0 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 0 0 0 0 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 0 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 0 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 0 0 0 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 0 &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 0 &amp;nbsp; 0 &amp;nbsp; 0 0 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 0 0 &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0 0 0 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 &amp;nbsp; 0 0 0 &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;0 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 0 0 0 0 &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&amp;nbsp; 0 0 0 0 0 0 0 &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;&lt;b&gt;$ ./crackme&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;Password: &lt;b&gt;ssddsssassdddssssdssaawaasssddddddwwwwwwddwwwwwdwwdddsssssaassssaasssddddwwddsss&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #cccccc; font-family: Noto Sans Mono; font-size: x-small;&quot;&gt;You win !&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/5879490100810207653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/5879490100810207653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5879490100810207653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5879490100810207653'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2013/03/nuit-du-hack-2013-quals-crackme3-300.html' title='Nuit du Hack 2013 Quals - Crackme3 - 300'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-5583948081861957528</id><published>2011-04-09T23:38:00.001+00:00</published><updated>2011-04-09T23:44:05.476+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="hitb"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>HITB 2011 Amsterdam Round Two Quals Binary</title><content type='html'>The provided binary is a &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;ELF&lt;/i&gt;&lt;/b&gt; file designed to be run by &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;inetd&lt;/b&gt;&lt;/i&gt; and accepts several character based commands followed by their parameters. The main loop reads a character from STDIN (in inetd a socket is duplicated into standard I/O descriptors) and based on the value picks a handler from an array of function pointers. The following commands exist:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&#39;f&#39; - return meta data for a given file name&lt;/li&gt;
&lt;li&gt;&#39;l&#39; - list filenames from the home directory&lt;/li&gt;
&lt;li&gt;&#39;q&#39; - terminate the process&lt;/li&gt;
&lt;li&gt;&#39;s&#39; - return symbolic link&#39;s path name&lt;/li&gt;
&lt;li&gt;&#39;v&#39; - verify input with a key file&#39;s data&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
After mapping out all the available handlers and reviewing how they work there were no obvious vulnerabilities (e.g. buffer overflow). The handler functions that expect additional input first allocate some heap-based memory to store this input and care is taken to make sure it&#39;s not overflowed. After the handler completes its work the memory is freed. However, there&#39;s a design flaw in the way allocated memory is used when the key text is verified. Specifically, the key data is read into a allocated buffer and compared to the string supplied by a user. Once this is done &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;the memory is simply freed&lt;/b&gt;&lt;/i&gt;, which returns the memory block to the free pool still containing the key data.&lt;br /&gt;
&lt;br /&gt;
As a result, we can use another handler, which allocates memory for its operation and returns the results to the user. One such command is the &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;&#39;s&#39;&lt;/b&gt;&lt;/i&gt; character, which accepts a symbolic link as a parameter. Additionally, after listing the contents of the home directory using the &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;&#39;l&#39;&lt;/b&gt;&lt;/i&gt; command we find few symbolic links that can be used for the &#39;s&#39; command. Thus, when requesting to view a symbolic link the real path will be copied to a allocated buffer. Since the buffer will come from the free pool and the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;contents were not cleared&lt;/i&gt;&lt;/b&gt; then whatever data was there will also be displayed. If the resulting path is shorter in length than the data size of the &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;&quot;KeyFile&quot;&lt;/b&gt;&lt;/i&gt; we can disclose part of the secret key string.&lt;br /&gt;
&lt;br /&gt;
Looking at the handler for the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&#39;v&#39;&lt;/i&gt;&lt;/b&gt; command it was identified that a string comparison is performed only on the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;last 14 bytes&lt;/i&gt;&lt;/b&gt; of the key file. This tells us how much of the disclosed key file&#39;s data we need to grab. Thus, to reproduce we need to submit the &lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;&#39;v&#39;&lt;/b&gt;&lt;/i&gt; command with any key, which stores the key data into a buffer, &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;but does not clear it after the comparison&lt;/i&gt;&lt;/b&gt;. Then, submit the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&#39;s&#39;&lt;/i&gt;&lt;/b&gt; command to display the path of the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&quot;t1&quot;&lt;/i&gt;&lt;/b&gt; link, which is short enough to disclose more than 14 bytes of the key file. Finally, take the last 14 bytes and submit them via the &lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&#39;v&#39;&lt;/i&gt;&lt;/b&gt; command again and this time the comparison succeeds and gives us the solution key.&lt;br /&gt;
&lt;br /&gt;
The solution string is (w/o quotes): &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;DwightIzK00l&lt;/i&gt;&lt;/b&gt;&quot;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/5583948081861957528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/5583948081861957528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5583948081861957528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5583948081861957528'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2011/04/hitb-2011-amsterdam-round-two-quals.html' title='HITB 2011 Amsterdam Round Two Quals Binary'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-431541286076656222</id><published>2011-03-07T23:44:00.001+00:00</published><updated>2011-03-09T17:54:10.502+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codegate"/><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>Codegate 2011 Quals - Binary 300</title><content type='html'>The question is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&lt;b&gt;Find a malicious ID!!&lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
The binary is a Browser Helper Object (BHO) DLL with a static XOR key &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;securecodegate&lt;/b&gt;&quot;, which is used to decrypt few arrays with statically assigned characters to each index. The &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;sub_1000233E&lt;/b&gt;&quot; function is called with the array and a XOR key as input to perform the decryption. This occurs three times within a handler function &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;sub_1000270A&lt;/b&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
The first two calls are irrelevant as they result in decryption of &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;google_ads_frame&lt;/b&gt;&quot; (key &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;secure&lt;/b&gt;&quot;) and &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;client&lt;/b&gt;&quot; (key &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;code&lt;/b&gt;&quot;). However, the third call produces the answer string using the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;gate&lt;/b&gt;&quot; key.&lt;br /&gt;
&lt;br /&gt;
This was identified by looking for various interesting strings in the binary and locating their use references. The XOR decryption routine is fairly simple and can be performed via a IDC script.&lt;br /&gt;
&lt;br /&gt;
We used a lazy/simple option. Register the DLL (&quot;&lt;i style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;regsvr32 b300.dll&lt;/b&gt;&lt;/i&gt;&quot;). Launch Internet Explorer, attach a debugger, locate the handler function (&quot;&lt;b style=&quot;color: #45818e;&quot;&gt;sub_1000270A&lt;/b&gt;&quot;). Modify EIP to jump to the buffer initialization sequence, which is right before the decryption function call (e.g. @ &lt;b style=&quot;color: #45818e;&quot;&gt;0x10002C96&lt;/b&gt; for the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;gate&lt;/b&gt;&quot; key).&lt;br /&gt;
&lt;br /&gt;
The answer is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;ca-pub-0123456789012345&lt;/b&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/431541286076656222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/431541286076656222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/431541286076656222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/431541286076656222'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2011/03/codegate-2011-quals-binary-300.html' title='Codegate 2011 Quals - Binary 300'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-3061490711745575502</id><published>2011-03-07T23:31:00.002+00:00</published><updated>2011-03-09T17:56:03.493+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codegate"/><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>Codegate 2011 Quals - Binary 200</title><content type='html'>The question is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;&lt;b&gt;Reverse Me!!&lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
The binary is a console based PE file. Running the file produces no output due to a certain routine terminating the process before the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;main()&lt;/b&gt;&quot; function starts. Looking around the code the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;sub_401130&lt;/b&gt;&quot; function stands out due to initialization of a local array with various bytes. At the end of this function a decryption routine is called (&quot;&lt;b style=&quot;color: #45818e;&quot;&gt;sub_401070&lt;/b&gt;&quot;) with the array as input. The decryption loop performs an XOR operation using the string&#39;s length as the key.&lt;br /&gt;
&lt;br /&gt;
To obtain the answer a breakpoint was placed @ &lt;b style=&quot;color: #45818e;&quot;&gt;0x00401494&lt;/b&gt;, which calls the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;ExitProcess()&lt;/b&gt;&quot; library function prior to &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;main()&lt;/b&gt;&quot;. Next, modify EIP to point to the start of the array initialization routine and execute until the decryption function is called. Let it do its XOR job and look at a local buffer once complete to get the answer string.&lt;br /&gt;
&lt;br /&gt;
The answer is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;http://forensic-proof.com/archives/552&lt;/b&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/3061490711745575502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/3061490711745575502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/3061490711745575502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/3061490711745575502'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2011/03/codegate-2011-quals-binary-200.html' title='Codegate 2011 Quals - Binary 200'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-694726281568974686</id><published>2011-03-07T23:21:00.002+00:00</published><updated>2011-03-09T18:01:31.404+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codegate"/><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>Codegate 2011 Quals - Forensics 300</title><content type='html'>The question is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;we are investigating the military secret&#39;s leaking. we found traffic with leaking secrets while monitoring the network. Security team was sent to investigate, immediately. But, there was no one present. It was found by forensics team that all the leaked secrets were completely deleted by wiping tool. And the team has found a leaked trace using potable device. Before long, the suspect was detained. But he denies allegations.&lt;br /&gt;
&lt;br /&gt;
Now, the investigation is focused on potable device. The given files are acquired registry files from system. The estimated time of the incident is Mon, 21 February 2011 15:24:28(KST). Find a trace of portable device used for the incident.&lt;br /&gt;
&lt;br /&gt;
The Key : &quot;Vendor name&quot; + &quot;volume name&quot; + &quot;serial number&quot; (please write in capitals)&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
Enumerate a timeline of USB activity from the backup system hive&lt;br /&gt;
&lt;blockquote&gt;&lt;i&gt;...&lt;br /&gt;
&lt;b style=&quot;color: #45818e;&quot;&gt;Disk&lt;/b&gt;&amp;amp;Ven_Corsair&amp;amp;Prod_UFD&amp;amp;Rev_0.00,Thu Feb 17 04:41:02 2011,ddf08fb7a86075&amp;amp;0,Thu Feb 17 04:41:03 2011,Corsair UFD USB Device,&lt;br /&gt;
&lt;b style=&quot;color: #45818e;&quot;&gt;Disk&lt;/b&gt;&amp;amp;Ven_FM&amp;amp;Prod_Memorette_Swing&amp;amp;Rev_1.00,Thu Feb 17 06:38:21 2011,2008090256000000000000BE&amp;amp;0,Thu Feb 17 06:38:22 2011,FM Memorette Swing USB Device,&lt;br /&gt;
...&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
The enumeration shows all of the USB devices ever connected to the system. The registry last modified times are written the first time the device is connected, but are not updated when a device is subsequently connected.&lt;br /&gt;
&lt;br /&gt;
Running a timeline on the registry (via &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;regripper&lt;/b&gt;&quot;), we see that only one USB device is connected on Feb 21:&lt;br /&gt;
&lt;blockquote&gt;Mon Feb 21 06:24:21 2011Z HKLM\ControlSet001\Enum\WpdBusEnumRoot\UMB\2&amp;amp;37c186b&amp;amp;0&amp;amp;STORAGE#VOLUME#_??_USBSTOR#DISK&amp;amp;&lt;b style=&quot;color: #45818e;&quot;&gt;VEN_CORSAIR&lt;/b&gt;&amp;amp;&lt;b style=&quot;color: #45818e;&quot;&gt;PROD_UFD&lt;/b&gt;&amp;amp;REV_0.00#&lt;b style=&quot;color: #45818e;&quot;&gt;DDF08FB7A86075&lt;/b&gt;&amp;amp;0#\Properties\{80d81ea6-7473-4b0c-8216-efc11a2c4c8b}&lt;/blockquote&gt;&lt;br /&gt;
From there, we know that the suspect device vendor is &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;CORSAIR&lt;/b&gt;&quot; and the serial number of the device is &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;DDF08FB7A86075&lt;/b&gt;&quot;. Inspection of this registry path reveals that the default name of the device has been changed. The registry key &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;FriendlyName&lt;/b&gt;&quot; has a value of &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;PR0N33R&lt;/b&gt;&quot;, which is the displayed volume name when the device is connected.&lt;br /&gt;
&lt;br /&gt;
The answer is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;CORSAIRPR0N33RDDF08FB7A86075&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;b&gt;Thanks to our team member &lt;b style=&quot;color: #45818e;&quot;&gt;tina&lt;/b&gt; for the solution&lt;/b&gt;.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/694726281568974686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/694726281568974686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/694726281568974686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/694726281568974686'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2011/03/codegate-2011-quals-forensics-300.html' title='Codegate 2011 Quals - Forensics 300'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-5982788377264304514</id><published>2011-03-07T22:50:00.002+00:00</published><updated>2011-03-09T18:02:38.792+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codegate"/><category scheme="http://www.blogger.com/atom/ns#" term="ctf"/><category scheme="http://www.blogger.com/atom/ns#" term="quals"/><title type='text'>Codegate 2011 Quals - Network 100</title><content type='html'>The question is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;i&gt;This data is related to any attack.&lt;br /&gt;
calculate the md5sum of the intended file.&lt;br /&gt;
&lt;br /&gt;
(calc md5 uppercase)&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
The provided binary is a PCAP file containing bunch of HTTP traffic and some SMB chatter. The question mentions an attack. Since it&#39;s heavy on HTTP usage then it made sense to get a list of all requests. Two strange requests stand out:&lt;br /&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;br /&gt;
&lt;span style=&quot;color: #45818e;&quot;&gt;GET /H1A1.html HTTP/1.1&lt;/span&gt;&lt;br style=&quot;color: #45818e;&quot; /&gt;&lt;span style=&quot;color: #45818e;&quot;&gt; GET /H1A1.exe HTTP/1.1&lt;/span&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
Carving out (using Wireshark&#39;s &quot;&lt;i&gt;Follow TCP Stream&lt;/i&gt;&quot; -&amp;gt; &quot;&lt;i&gt;Save As&lt;/i&gt;&quot;) the &quot;&lt;b style=&quot;color: #45818e;&quot;&gt;H1A1.exe&lt;/b&gt;&quot; response and removing the HTTP response header we end up with a regular PE file. Next, calculate its MD5 checksum and convert to upper case.&lt;br /&gt;
&lt;br /&gt;
The answer is:&lt;br /&gt;
&lt;blockquote style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;7A5807A5144369965223903CB643C60E&lt;/b&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/5982788377264304514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/5982788377264304514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5982788377264304514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5982788377264304514'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2011/03/codegate-2011-quals-network-100.html' title='Codegate 2011 Quals - Network 100'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-3081210204359058944</id><published>2010-05-26T20:32:00.004+00:00</published><updated>2011-03-09T18:06:23.075+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="history"/><title type='text'>The Manifesto</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;
&lt;div style=&quot;color: #45818e;&quot;&gt;+++The Mentor+++&lt;/div&gt;&lt;div style=&quot;color: #45818e;&quot;&gt;Written January 8, 1986&lt;/div&gt;&lt;br /&gt;
Another one got caught today, it&#39;s all over the papers. &quot;Teenager Arrested in Computer Crime Scandal&quot;, &quot;Hacker Arrested after Bank Tampering&quot;...&lt;br /&gt;
&lt;br /&gt;
Damn kids. They&#39;re all alike.&lt;br /&gt;
&lt;br /&gt;
But did you, in your three-piece psychology and 1950&#39;s technobrain, ever take a look behind the eyes of the hacker? Did you ever wonder what made him tick, what forces shaped him, what may have molded him?&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #45818e;&quot;&gt;I am a hacker, enter my world...&lt;/div&gt;&lt;br /&gt;
Mine is a world that begins with school... I&#39;m smarter than most of the other kids, this crap they teach us bores me...&lt;br /&gt;
&lt;br /&gt;
Damn underachiever. They&#39;re all alike.&lt;br /&gt;
&lt;br /&gt;
I&#39;m in junior high or high school. I&#39;ve listened to teachers explain for the fifteenth time how to reduce a fraction. I understand it. &quot;No, Ms. Smith, I didn&#39;t show my work. I did it in my head...&quot;&lt;br /&gt;
&lt;br /&gt;
Damn kid. Probably copied it. They&#39;re all alike.&lt;br /&gt;
&lt;br /&gt;
I made a discovery today. I found a computer. Wait a second, this is cool. It does what I want it to. If it makes a mistake, it&#39;s because I screwed it up. Not because it doesn&#39;t like me... Or feels threatened by me.. Or thinks I&#39;m a smart ass.. Or doesn&#39;t like teaching and shouldn&#39;t be here...&lt;br /&gt;
&lt;br /&gt;
Damn kid. All he does is play games. They&#39;re all alike.&lt;br /&gt;
&lt;br /&gt;
And then it happened... a door opened to a world... rushing through the phone line like heroin through an addict&#39;s veins, an electronic pulse is sent out, a refuge from the day-to-day incompetencies is sought... a board is found. &quot;This is it... this is where I belong...&quot; I know everyone here... even if I&#39;ve never met them, never talked to them, may never hear from them again... I know you all...&lt;br /&gt;
&lt;br /&gt;
Damn kid. Tying up the phone line again. They&#39;re all alike...&lt;br /&gt;
&lt;br /&gt;
You bet your ass we&#39;re all alike... we&#39;ve been spoon-fed baby food at school when we hungered for steak... the bits of meat that you did let slip through were pre-chewed and tasteless. We&#39;ve been dominated by sadists, or ignored by the apathetic. The few that had something to teach found us willing pupils, but those few are like drops of water in the desert.&lt;br /&gt;
&lt;br /&gt;
This is our world now... the world of the electron and the switch, the beauty of the baud. We make use of a service already existing without paying for what could be dirt-cheap if it wasn&#39;t run by profiteering gluttons, and you call us criminals. We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it&#39;s for our own good, yet we&#39;re the criminals.&lt;br /&gt;
&lt;br /&gt;
Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #45818e;&quot;&gt;I am a hacker, and this is my manifesto.&lt;/span&gt; You may stop this individual, but you can&#39;t stop us all... after all, we&#39;re all alike.&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/3081210204359058944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/3081210204359058944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/3081210204359058944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/3081210204359058944'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2010/05/manifesto.html' title='The Manifesto'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-784730451152980160</id><published>2009-08-06T15:48:00.002+00:00</published><updated>2009-08-06T16:26:52.878+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intrusion detection"/><category scheme="http://www.blogger.com/atom/ns#" term="vulnerabilities"/><title type='text'>BIND 9 Dynamic Update DoS</title><content type='html'>Vulnerability described in &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0696&quot;&gt;CVE-2009-0696&lt;/a&gt; is very easy to exploit and the consequences can be disastrous.&lt;br /&gt;&lt;br /&gt;All it takes is a singled DNS UDP packet with &lt;a href=&quot;http://www.ietf.org/rfc/rfc2136.txt&quot;&gt;Dynamic Update&lt;/a&gt; structure specially crafted for any Zone which the target server is Master and the &lt;span style=&quot;font-weight:bold;&quot;&gt;named&lt;/span&gt; process will exit.&lt;br /&gt;&lt;br /&gt;As stated by &lt;a href=&quot;http://www.isc.org/node/474&quot;&gt;ISC&lt;/a&gt; BIND&#39;s update ACLs do not mitigate this vulnerability.  Since this is UDP then source IPs can be spoofed and nearly impossible to track down.  Even DNS infrastructures which are designed to expose only slave servers to the Internet can be vulnerable if any of them have Master Zones for netblocks mentioned in RFCs &lt;a href=&quot;http://www.ietf.org/rfc/rfc1912.txt&quot;&gt;1912 Section 4.1&lt;/a&gt; and &lt;a href=&quot;http://www.ietf.org/rfc/rfc1918.txt&quot;&gt;1918 Section 3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyone who wishes to audit their environment can utilize the following &lt;a href=&quot;http://www.dxp2532.info/tools/bind9-update-dos.py&quot;&gt;Python script&lt;/a&gt;.  &lt;span style=&quot;font-weight:bold;&quot;&gt;Make sure you have permission to test your targets!.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Given the criticality of this vulnerability several IDS vendors have released detection signatures.  However, as of this writing the above script evades  the following signatures: &lt;a href=&quot;http://www.sourcefire.com/products/snort/rules/advisories/sa072909.html&quot;&gt;Sourcefire&lt;/a&gt; and &lt;a href=&quot;http://doc.emergingthreats.net/2009701&quot;&gt;Emerging Threats&lt;/a&gt;.  Both groups will be notified with necessary information.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/784730451152980160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/784730451152980160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/784730451152980160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/784730451152980160'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/08/bind-9-dynamic-update-dos.html' title='BIND 9 Dynamic Update DoS'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-7394418595622017298</id><published>2009-07-08T16:00:00.003+00:00</published><updated>2009-12-16T08:06:44.976+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>milw0rm is gone</title><content type='html'>This was on the site before it went down:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Well, this is my goodbye header for milw0rm. I wish I had the time I did in the past to post exploits, I just don’t :(. For the past 3 months I have actually done a pretty crappy job of getting peoples work out fast enough to be proud of, 0 to 72 hours (taking off weekends) isn’t fair to the authors on this site. I appreciate and thank everyone for their support in the past.&lt;br /&gt;Be safe, /str0ke&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;PS: I&#39;m keeping their link here for historical reasons.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7394418595622017298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7394418595622017298'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/07/milw0rm-is-gone.html' title='milw0rm is gone'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-8926523585834538499</id><published>2009-05-29T04:41:00.007+00:00</published><updated>2009-05-29T16:44:20.791+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="tornado"/><title type='text'>Tornado exploit pack</title><content type='html'>Like most other exploit packs it&#39;s written in PHP with a MySQL backend.  Control panel supports configuration options for several users (attackers).&lt;br /&gt;&lt;br /&gt;Has the ability to control incoming traffic. It can either:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Ignore&lt;br /&gt;- Redirect&lt;br /&gt;- Display custom page&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;based on several criteria such as:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Country of origin&lt;br /&gt;- Visitor uniqueness&lt;br /&gt;- Vulnerable client&lt;br /&gt;- Not vulnerable client&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyT_jGIZM9eCIkjIMs7FqKpZXBerBMJtpx5yqUAts61s0m-UYE0_bZ1MTYpVwlLACVEPUA_dN6umZZUJssAC2Fx06WNVPpIUKNb8keUvQWBHvXUpYI-RTUNLz6FoQIh9fC-UvEeamqAIZ/s1600-h/tor_summary.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 172px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyT_jGIZM9eCIkjIMs7FqKpZXBerBMJtpx5yqUAts61s0m-UYE0_bZ1MTYpVwlLACVEPUA_dN6umZZUJssAC2Fx06WNVPpIUKNb8keUvQWBHvXUpYI-RTUNLz6FoQIh9fC-UvEeamqAIZ/s200/tor_summary.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5341105127411917010&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Displays several different statistics based on:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Victim&#39;s Country&lt;br /&gt;- Originating web site (referer)&lt;br /&gt;- Exploits used&lt;br /&gt;- Detailed Log (IP, time, browser, exploit used, infected (yes/no), and referer)&lt;br /&gt;- Overall Summary - OS and Browser breakd down of traffic and exploit effectiveness&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Exploit is delivered in the form of obfuscated javascript.  Obfuscated ASCII encoded code and decryption function are delivered to the client as a single long line.  This content is unique on every visit except certain parts of the decryption routine.  Upon successful exploitation another request will be made to the exploit server to a different script which will deliver the binary to execute.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjapC5fEFQccR047q1Ca0qEp4WnqYQT8EzUTwZsifFhL454so6bRV8sCnMNe7SJ0eUiG5CKfFZDxEhWrrf3sRoZLg0vuPszXcbCrRpEwXCFZjEZgXQsyKoWbx0dyroFOVco4BnnJvO-rVZ8/s1600-h/tor_exploits.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 172px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjapC5fEFQccR047q1Ca0qEp4WnqYQT8EzUTwZsifFhL454so6bRV8sCnMNe7SJ0eUiG5CKfFZDxEhWrrf3sRoZLg0vuPszXcbCrRpEwXCFZjEZgXQsyKoWbx0dyroFOVco4BnnJvO-rVZ8/s320/tor_exploits.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5341108763885738930&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following is a list of exploits available to the attacker, which can be individually selected to target:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;br /&gt;- MDAC (RDS)&lt;br /&gt;- WebViewFolderIcon.SetSlice&lt;br /&gt;- VML&lt;br /&gt;- MS06-044&lt;br /&gt;- WMF Firefox&lt;br /&gt;- WMF Opera 7&lt;br /&gt;- QuickTime&lt;br /&gt;- WinZip&lt;br /&gt;- Zenturi&lt;br /&gt;- Yahoo Webcam&lt;br /&gt;- Opera 9 - 9.20&lt;br /&gt;- XML Core Services&lt;br /&gt;- Java bytecode&lt;br /&gt;- ANI&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Default script for exploit delivery is &lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;count.php&quot;&lt;/span&gt;, while individual exploit modules are located in the &lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;exploits/&quot;&lt;/span&gt; directory with the following naming convention: &lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;x#.php&quot;&lt;/span&gt; where &lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;#&lt;/span&gt;&lt;/span&gt; is the numeric value starting with one (1).&lt;br /&gt;&lt;br /&gt;Upon successful exploitation another request will be made to retrieve a binary for execution on victim&#39;s computer.  By default the requested script will be &lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;getexe.exe&quot;&lt;/span&gt; with the following parameters:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;?o=&lt;/span&gt;   integer value to identify attacker&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&amp;t=&lt;/span&gt;   integer value represents time the exploit was generated&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&amp;i=&lt;/span&gt;   integer value represent IP address of victim&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&amp;e=&lt;/span&gt;   integer value represents exploit number used&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Following is the schema of the database:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;CREATE TABLE `stats1`&lt;/span&gt; &lt;span style=&quot;font-style:italic;&quot;&gt;(&lt;/span&gt;&lt;br /&gt;  `ip` int(10) unsigned default NULL,&lt;br /&gt;  `time` int(10) unsigned default NULL,&lt;br /&gt;  `country` tinyint(3) unsigned default NULL,&lt;br /&gt;  `browser` tinyint(4) default NULL,&lt;br /&gt;  `version` varchar(8) default NULL,&lt;br /&gt;  `os` tinyint(4) default NULL,&lt;br /&gt;  `refdom` varchar(32) default NULL,&lt;br /&gt;  `status` tinyint(4) default NULL,&lt;br /&gt;  `loader` tinyint(4) default NULL,&lt;br /&gt;  `expl` tinyint(4) default NULL&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;font-weight:bold;&quot;&gt;ENGINE=MyISAM DEFAULT CHARSET=cp1251;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;CREATE TABLE `users`&lt;/span&gt; &lt;span style=&quot;font-style:italic;&quot;&gt;(&lt;/span&gt;&lt;br /&gt;  `id` smallint(5) unsigned NOT NULL auto_increment,&lt;br /&gt;  `user` varchar(16) default NULL,&lt;br /&gt;  `pass` varchar(32) default NULL,&lt;br /&gt;  `premis` tinytext,&lt;br /&gt;  `options` tinytext,&lt;br /&gt;  `lasttime` int(10) unsigned default NULL,&lt;br /&gt;  PRIMARY KEY  (`id`)&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;font-weight:bold;&quot;&gt;ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/8926523585834538499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/8926523585834538499' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/8926523585834538499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/8926523585834538499'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/05/tornado-exploit-pack.html' title='Tornado exploit pack'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyT_jGIZM9eCIkjIMs7FqKpZXBerBMJtpx5yqUAts61s0m-UYE0_bZ1MTYpVwlLACVEPUA_dN6umZZUJssAC2Fx06WNVPpIUKNb8keUvQWBHvXUpYI-RTUNLz6FoQIh9fC-UvEeamqAIZ/s72-c/tor_summary.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-5038301287995704596</id><published>2009-05-23T01:47:00.006+00:00</published><updated>2009-05-23T01:58:26.139+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="zeus"/><title type='text'>Improvements to Zeus</title><content type='html'>Zeus&#39;s development is active these days.  Below is a table of release dates for each version:&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;br /&gt;2008/12/20 - 1.2.0.0&lt;br /&gt;2008/12/30 - 1.2.1.0&lt;br /&gt;2009/03/11 - 1.2.2.0&lt;br /&gt;2009/03/28 - 1.2.3.0&lt;br /&gt;2009/04/02 - 1.2.4.0&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr3Nh2WhvqgUELpzi99tI_qGE59Wp1Y1R4iGeBbYLHg9pJDWlPGt_vt_L93vHWN98Nb4crr-gsqdQ2pICX0AtXySQtdhlYDeVrfzexLjcl9bLmvORv2Scxj3h-GHa4fsXgtMpHjqs78gV6/s1600-h/Screenshot.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 60px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr3Nh2WhvqgUELpzi99tI_qGE59Wp1Y1R4iGeBbYLHg9pJDWlPGt_vt_L93vHWN98Nb4crr-gsqdQ2pICX0AtXySQtdhlYDeVrfzexLjcl9bLmvORv2Scxj3h-GHa4fsXgtMpHjqs78gV6/s200/Screenshot.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5338831461907609490&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This change log entry states that during HTTP communication of the Trojan with the C&amp;C server the User-Agent used will be that of system&#39;s Internet Explorer.  Before, it was a constant string embedded in the binary, which could have raised suspicion or blocked by ISPs.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/5038301287995704596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/5038301287995704596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5038301287995704596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5038301287995704596'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/05/improvements-to-zeus.html' title='Improvements to Zeus'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr3Nh2WhvqgUELpzi99tI_qGE59Wp1Y1R4iGeBbYLHg9pJDWlPGt_vt_L93vHWN98Nb4crr-gsqdQ2pICX0AtXySQtdhlYDeVrfzexLjcl9bLmvORv2Scxj3h-GHa4fsXgtMpHjqs78gV6/s72-c/Screenshot.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-2764176288065789239</id><published>2009-04-26T16:28:00.005+00:00</published><updated>2009-04-26T17:39:14.133+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="zeus"/><title type='text'>Zeus / Zbot / Prg / Ntos / Wsnpoem</title><content type='html'>Real name of the trojan package is Zeus.  It comes with a PHP based control panel and a Windows executable to build the trojan.  Builder&#39;s job is to parse a text based config file, encrypt it, and embed some options into the trojan.  The builder can also remove the infection from the system.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwrZWU8u8gox0dqYvNgtTm3g2cqUGFWjOXbiD7jvL0x2XzHzHnd_baBX7Petv_6MIfHOtC61ogG4tTvI83Ju7fBTaUVCIu59lnjlJ58yy0_UD1q_IB29dmfGF83RYXkvI_Lt09id_wHPXX/s1600-h/zcp.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 177px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwrZWU8u8gox0dqYvNgtTm3g2cqUGFWjOXbiD7jvL0x2XzHzHnd_baBX7Petv_6MIfHOtC61ogG4tTvI83Ju7fBTaUVCIu59lnjlJ58yy0_UD1q_IB29dmfGF83RYXkvI_Lt09id_wHPXX/s200/zcp.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5329041724864341874&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Main scripts of the control panel are:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;in.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Script which controls authentication to the admin panel as well as all reporting and configuration options of the botnet.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;s.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;This is the script which accepts all communication from the bot client on a compromised computer.  Depending on configured options it will either insert the data into a MySQL database, or store inside a seperate directory, or both.&lt;br /&gt;&lt;br /&gt;It&#39;s responsable for decrypting the POST data and parsing individual stolen records.  Basically, this is the main C&amp;C script of the botnet.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigR5M1a9BBss19F4Rmz-M966n0Mbe0LFAFfyemi-VUSCngn0Ir-rQzNuqsN2G5xMTOaPgr6K_fL500muKhSJAi00xtFCXnHzuCGX5kiAJDo8nnLmF9a4QLu7WgLfpiLQitLNvcfdXPoSSG/s1600-h/zcfg.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 152px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigR5M1a9BBss19F4Rmz-M966n0Mbe0LFAFfyemi-VUSCngn0Ir-rQzNuqsN2G5xMTOaPgr6K_fL500muKhSJAi00xtFCXnHzuCGX5kiAJDo8nnLmF9a4QLu7WgLfpiLQitLNvcfdXPoSSG/s200/zcfg.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5329044886814256626&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Keep in mind that these filenames are not hardcoded anywhere but are only the defaults.  If the filename is changed on the server then the bot client must be updated with a new configuration file, which it periodically polls off the server.  Typical configuration file will have entries similar to the ones on this screenshot.&lt;br /&gt;&lt;br /&gt;Currently, Zeus&#39; build tree is &lt;span style=&quot;font-style:italic;&quot;&gt;1.2.x.x&lt;/span&gt; which, depending on subversions, will utilize either RC4 encryption or a simpler form of it.  Otherwise, the record and configuration structures remain the same between different &lt;span style=&quot;font-style:italic;&quot;&gt;1.2.x.x&lt;/span&gt; builds.  Older versions, prior to &lt;span style=&quot;font-style:italic;&quot;&gt;1.2.x.x&lt;/span&gt; used a completely different structure and obfuscation method.  They contained a unique field in the HTTP headers during C&amp;C communication and thus were easily detected via IDS signatures from &lt;a href=&quot;http://www.emergingthreats.net/&quot;&gt;Emerging Threats&lt;/a&gt; (&lt;span style=&quot;font-style:italic;&quot;&gt;2003182, 2003183, 2007688, 2008100, 2008326&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;So, what can this bot/trojan do?&lt;br /&gt;It has the following abilities:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Credential stealing of FTP and POP3 on any TCP port.&lt;br /&gt;&lt;br /&gt;Via a custom build can capture any data.&lt;br /&gt;&lt;br /&gt;Capture of HTTP and HTTPS traffic.&lt;br /&gt;&lt;br /&gt;Proxy server via Socks 4/4a/5, even if compromised device is behind a NAT.&lt;br /&gt;&lt;br /&gt;Screenshot capture of the desktop.&lt;br /&gt;&lt;br /&gt;Theft of &quot;&lt;span style=&quot;font-style:italic;&quot;&gt;Protected Storage&lt;/span&gt;&quot; data.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYOT59YCnoy2aNVN1n8kPTKDoi7DvlIiSl4XynZnErICJ8fGZYtABCOj-RvCLv44WfCtNtDVUG06Xwc1J1IzcBMAdtaWcc8OBVBX13OkE5kN1qOASxXTgjDOGz5vX7-TTl2Td7WBcy-2Fg/s1600-h/zcap.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 136px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYOT59YCnoy2aNVN1n8kPTKDoi7DvlIiSl4XynZnErICJ8fGZYtABCOj-RvCLv44WfCtNtDVUG06Xwc1J1IzcBMAdtaWcc8OBVBX13OkE5kN1qOASxXTgjDOGz5vX7-TTl2Td7WBcy-2Fg/s200/zcap.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5329055873830073090&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Here&#39;s an example how a communication flow between bot/trojan and C&amp;C server will look like.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/2764176288065789239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/2764176288065789239' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2764176288065789239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2764176288065789239'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/04/zeus-zbot-prg-ntos-wsnpoem.html' title='Zeus / Zbot / Prg / Ntos / Wsnpoem'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwrZWU8u8gox0dqYvNgtTm3g2cqUGFWjOXbiD7jvL0x2XzHzHnd_baBX7Petv_6MIfHOtC61ogG4tTvI83Ju7fBTaUVCIu59lnjlJ58yy0_UD1q_IB29dmfGF83RYXkvI_Lt09id_wHPXX/s72-c/zcp.jpg" height="72" width="72"/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-5490926688083310750</id><published>2009-02-28T14:31:00.005+00:00</published><updated>2009-04-26T17:42:35.161+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="unique pack"/><title type='text'>Unique Pack</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjrYihLpRhB2nlJy7cj55af7I1ydspTT5WOg49-5HS28vvOU3f42UHXYqaytKLi5hRqtuSwI_zBJ1S-yYm2jfcPxIs9VArjIffHBgA3mFwxXBFfGcMKcFt5aDqb92trhnpLuhEOym9AQB3/s1600-h/up.jpg&quot;&gt;&lt;img style=&quot;float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 177px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjrYihLpRhB2nlJy7cj55af7I1ydspTT5WOg49-5HS28vvOU3f42UHXYqaytKLi5hRqtuSwI_zBJ1S-yYm2jfcPxIs9VArjIffHBgA3mFwxXBFfGcMKcFt5aDqb92trhnpLuhEOym9AQB3/s320/up.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5307856167696286802&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exploits for Opera9, Firefox, Internet Explorer 4, 5, 6, and 7.  Seperate module to exploit Adobe Reader util.printf() (CVE-2008-2992) vulnerability.  Also, includes a module to deliver binaries via social engineering the visitor into accepting the download, similar to Fake AV.&lt;br /&gt;&lt;br /&gt;So, what&#39;s so unique about it?  Nothing really.  Perhaps the fact that it obfuscates its PHP code which contains exploits, which isn&#39;t difficult to take off.  Also, maybe because it doesn&#39;t use any parameter passing to scripts via URL, as most other packs do.  Here&#39;s a summary of some scripts:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;cfg/config.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Defines variables for loader and exploit URLs, database credentials, and control panel credentials.&lt;br /&gt;&lt;br /&gt;URLs are defined for loader script (&quot;load.php&quot;) and Adobe PDF exploit (&quot;pdf.php&quot;).&lt;br /&gt;&lt;br /&gt;Filename of binary which will be dropped (&quot;1.exe&quot;).&lt;br /&gt;&lt;br /&gt;Database host, name, credentials.  Default DB name is &quot;spl&quot;.&lt;br /&gt;&lt;br /&gt;Control Panel&#39;s script name (&quot;admcp.php&quot;), username, and password (double MD5 hash of real pass).  Default user is &quot;root&quot;.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;cfg/options.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Defines functions and text for 404 page.  Functions to identify browser, operating system, country (based on GeoIP), and encoding function to Unicode for Javascript (eg: &quot;%u9090&quot;).&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;cfg/mod_vparivatel.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Configuration variables for social engineering module to convince the user to download the binary, similar to the idea used in RogueAV schemes.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;install.php&quot; or &quot;_install.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Database creation script.  Will connect to the database with configured credentials and create necessary table.&lt;br /&gt;&lt;br /&gt; CREATE TABLE `statistic` (&lt;br /&gt; `id` int(10) NOT NULL auto_increment,&lt;br /&gt;   `ip` varchar(15) default NULL,&lt;br /&gt;   `os` varchar(30) default NULL,&lt;br /&gt;   `br` varchar(30) default NULL,&lt;br /&gt;   `country` varchar(2) default &#39;--&#39;,&lt;br /&gt;   `good` int(1) NOT NULL default &#39;0&#39;,&lt;br /&gt; `mv` int(1) NOT NULL default &#39;0&#39;,&lt;br /&gt;   `refer` varchar(300) NOT NULL,&lt;br /&gt;   `date` datetime default &#39;2008-10-01 00:00:00&#39;,&lt;br /&gt;   PRIMARY KEY  (`id`)&lt;br /&gt; ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;index.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Checks for presence of &quot;install.php&quot; and executes it.  If visitor&#39;s IP was already logged then aborts with HTTP 200 status but shows a 404 page as defined in the variable of the &quot;cfg/options.php&quot; file.&lt;br /&gt;&lt;br /&gt;Identifies country, browser, operating system, referer, IP address and updates the database.  Includes &quot;sploit.php&quot; file for exploit generation.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;sploits.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Checks if &quot;Unique&quot; name is defined and aborts with 404 message from predefined variable if not defined. Determines the browser and loads appropriate exploit script:&lt;br /&gt; &quot;sploit/op9.php&quot; - Opera&lt;br /&gt; &quot;sploit/ff.php&quot; - Firefox&lt;br /&gt; &quot;sploit/ie7.php&quot; - Internet Explorer 7&lt;br /&gt; &quot;sploit/ie.php&quot; - Internet Explorer 4, 5, or 6.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;load.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Reads the executable which was defined in config file and serves it to the user.  Updates database column &quot;good&quot; for this connection&#39;s IP address.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;pdf.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Contains the exploit for Adobe Reader ; CVE-2008-2992 ; util.printf().  Interestingly, the file contains obfuscated PHP script to generate the exploit.  It has some protection against people attempting to modify the code and print out the exploit.  It reads itself and looks for calls to &quot;print | sprint | echo&quot; and aborts if found.  This prevents people from simply modifying the &quot;eval&quot; statement to see the real exploit code.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;vparivatel.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Delivers an executable file using social engineering technique similar to RogueAV by convincing the user of a threat or some required update.  Messages can be customized per browser, operating system, and country.&lt;br /&gt;&lt;br /&gt;Checks if visiting IP was already given a binary using this method and aborts if found.&lt;br /&gt;&lt;br /&gt;If GET parameter &quot;?a&quot; is set then delivers the binary otherwise displays a convincing message and redirects back to itself with proper parameter.&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/5490926688083310750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/5490926688083310750' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5490926688083310750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/5490926688083310750'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/02/unique-pack.html' title='Unique Pack'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjrYihLpRhB2nlJy7cj55af7I1ydspTT5WOg49-5HS28vvOU3f42UHXYqaytKLi5hRqtuSwI_zBJ1S-yYm2jfcPxIs9VArjIffHBgA3mFwxXBFfGcMKcFt5aDqb92trhnpLuhEOym9AQB3/s72-c/up.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-6507706506322747518</id><published>2009-01-12T03:11:00.002+00:00</published><updated>2009-01-12T03:41:37.133+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="armitage"/><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><title type='text'>Armitage 1.0</title><content type='html'>This is a rather old version dated back to November 2007 but perhaps someone will find this info useful.&lt;br /&gt;&lt;br /&gt;On the server side it&#39;s driven by PHP with MySQL as the backend.  File structure is similar to other packs.  One noticable difference in the way statistics are tracked, as all packs track visitors and these numbers are used in marketing of packs.&lt;br /&gt;&lt;br /&gt;Armitage has an additional section to calculate how many visitors were actually compromised.  Typically this is done by recording how many people request a download of a loader (trojan binary) which means the exploit worked.  However, this does not account for the fact that loader may have been blocked on the client due to various defenses.  Any pack&#39;s job is to deliver an exploit and load some binary and many packs are satisfied with just recording such requests.  In Armitage&#39;s case it is accomplished by recording an additional request which must be made by this loader.  This statistic will represent how many devices have been compromised and have gotten the loader to fully execute and check-in.  It is unclear why this decision was made for a generic pack since loaders will now have to be specifically written to perform this check-in function.  Such loader was not distributed with the pack itself so it is possible that this was not written for general public.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;config.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Contains password variables for admin and guest.&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;db.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Defines variables needed to establish database connection (host, schema, user, and password).&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;install.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Establishes a database connection and creates the necessary tables.  Once complete shows a link to admin page and required credentials.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;admin.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Defines two valid accounts admin and guest.  Shows traffic and loads statistics as well as has the ability to upload a new trojan and change passwords.&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;index.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Defines various functions which identify the visitor based on UAS.&lt;br /&gt;&lt;br /&gt;Creates the URL for loader &quot;exe.php&quot; and if GET contains &quot;?ex=&quot; integer then this value will be passed to &quot;exe.php?ex=&quot;.&lt;br /&gt;&lt;br /&gt;Checks visitor&#39;s IP address for previous visits and aborts if one is found.  String &quot;^_~&quot; is returned upon abort.&lt;br /&gt;&lt;br /&gt;Identifies the browser, the following list is used: Opera, Konqueror, Lynx, Links, Internet Explorer, Netscape, Firefox, Mozilla, Other.&lt;br /&gt;&lt;br /&gt;Identifies the OS with the following list: Windows (95, NT 4, 98, ME, 2000, XP, 2003, Vista), Linux, Mac OS, Other.&lt;br /&gt;&lt;br /&gt;Identifes the Country based on GeoIP library from visitor&#39;s IP address.  Geoip files are borrowed from Icepack.&lt;br /&gt;&lt;br /&gt;Updates statistics for HTTP Referrer, domain only.  Sanitizes the referrer domain to avoid SQL injection.&lt;br /&gt;&lt;br /&gt;Updates statistics for Browser, OS, and Country.  Inserts visitor&#39;s IP address and time of visit.&lt;br /&gt;&lt;br /&gt;Exploit is served for Internet Explorer from &quot;e.php&quot;, for Opera from &quot;opera.php&quot;, and Firefox from &quot;ff.php&quot;.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;exe.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Second stage of the exploit sequence, which serves the binary file.  By default it is &quot;./load/file.exe&quot;, but if GET &quot;?ex=&quot; integer was set then file with that value is delivered (eg: &quot;./load/file20.exe&quot;).  Identifies the visitor (Browser, OS, Country) and updates &quot;loads&quot; statistics table.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;lds.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Identifies the Country based on Geoip of the connection and updates the &quot;ots&quot; (otstuk) statistics table.  This is the place where loader&#39;s check-in stats are kept.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;e.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Serves the MDAC exploit slightly obfuscated.  CVE-2006-0003 ; MS06-014 ; MDAC (BD96C556-65A3-11D0-983A-00C04FC29E36).  If this fails then will load &quot;bof.php&quot;.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;bof.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Contains the shellcode for buffer overflow exploits.&lt;br /&gt;&lt;br /&gt;Serves the WFI exploit.  CVE-2006-3730 ; MS06-057 ; &quot;WebViewFolderIcon.WebViewFolderIcon.1.setSlice()&quot;.&lt;br /&gt;&lt;br /&gt;At the end display the 404 Not Found page which is fake since real HTTP Status code is still 200 OK.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;ff.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Serves exploits for Firefox browsers&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;opera.php&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Serves exploits for Opera browsers&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/6507706506322747518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/6507706506322747518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/6507706506322747518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/6507706506322747518'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/01/armitage-10.html' title='Armitage 1.0'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-677647904618409840</id><published>2009-01-04T15:19:00.003+00:00</published><updated>2009-01-04T15:46:14.751+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intrusion detection"/><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="reverse engineering"/><title type='text'>PE offsets within malware</title><content type='html'>Building on work mentioned in the previous post couple of more interesting facts were identified.  Realizing that implementing the Snort&#39;s SO rule may not be feasible in some infrastructures, depending on the design and configuration of the sensors, it would be beneficial to identify most common offsets used by malware and how they compare to legitimate executables.&lt;br /&gt;&lt;br /&gt;After reviewing offsets found in an installation of Windows XP SP2 system utilizing 8000 samples, both executable and DLL files, and then comparing with offsets found in malware collected over the last year and a half (450 samples) there were several unique offset identified which were solely used by malware.&lt;br /&gt;&lt;br /&gt;As a result of this several regular Snort signatures can be written which will alert on download of binaries which should raise suspicion.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE under 128)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,&lt;,128,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:130; sid:62; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 12)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,12,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:14; sid:53; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 16)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,16,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:18; sid:54; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 64)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,64,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:66; sid:55; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 96)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,96,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:98; sid:56; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 124)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,124,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:128; sid:57; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 144)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,144,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:146; sid:58; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 152)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,152,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:154; sid:59; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 160)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,160,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:162; sid:60; rev:1;)&lt;br /&gt;&lt;br /&gt;alert tcp $EXTERNAL_NET any -&gt; $HOME_NET any (msg:&quot;LOCAL Suspicious Executable (PE offset 512)&quot;; flow:established,from_server; content:&quot;MZ&quot;; rawbytes; byte_test:4,=,512,58,relative,little; content:&quot;PE|00 00|&quot;; rawbytes; within:514; sid:61; rev:1;)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Couple of interesting and important notes.  There was not a single legitimate binary which contained a PE offset under 128 bytes.  The offsets in malware which did not match those of legitimate files occured in %25 of malicious samples.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;br /&gt;All offsets found:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Suspicious PE offsets (malware of 467 samples):&lt;br /&gt;-----------------------------------------------&lt;br /&gt;12, 16, 64, 96, 124, 144, 152, 160, 512&lt;br /&gt;&lt;br /&gt;Legitimate PE offsets (XP Sp2 8582 samples):&lt;br /&gt;--------------------------------------------&lt;br /&gt;128, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 264, 272, 280, 288, 296, 304, 312, 320, 336, 344, 392, 584, 592, 600, 608, 616, 624, 632, 1024, 7680&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/677647904618409840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/677647904618409840' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/677647904618409840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/677647904618409840'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2009/01/pe-offsets-within-malware.html' title='PE offsets within malware'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-2373095494642931206</id><published>2008-11-16T03:17:00.005+00:00</published><updated>2010-02-15T22:07:21.307+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intrusion detection"/><title type='text'>Detecting packed/crypted executables with Snort</title><content type='html'>As a result of some research into various trojans it was identified that majority of them rely on packers, crypters, and anti debugging tricks.  Nothing new here.  However, what was interesting is that some of them were completely missed by Snort.  Rulebase included default signatures that come with base installation, community rules, and &lt;a href=&quot;http://www.emergingthreats.net/&quot;&gt;Emerging Threats (ET)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It turns out that analyzed trojans modified the executable&#39;s header which did not fall within signature&#39;s patterns.  This can be partly fixed by creating a signature to detect the PE header&#39;s magic value within a certain distance from the start of the DOS header.  However, the trick here is to pick a distance which will not produce false negatives.  If it&#39;s too short then it&#39;s doomed to miss lots of stuff.  Higher values may produce false positives, more research into this is needed.&lt;br /&gt;&lt;br /&gt;It&#39;s best to detect executables by reading their structure.  PE/COFF format states that the offset to start of PE header is found 0x3C bytes from start of DOS header.  I was not able to achieve desired results using the regular Snort rule syntax but using the dynamic rules feature worked perfectly.  It&#39;s written C and must be compiled.  Download it &lt;a href=&quot;http://www.dxp2532.info/tools/snort_so_pe.tar.gz&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/2373095494642931206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/2373095494642931206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2373095494642931206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2373095494642931206'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/11/detecting-packedcrypted-executables.html' title='Detecting packed/crypted executables with Snort'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-8373501990115937824</id><published>2008-10-26T17:59:00.003+00:00</published><updated>2008-10-26T18:33:11.536+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intrusion detection"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>Importance of verifying vendor&#39;s protection claims</title><content type='html'>One of my favorite fundamental security principles is perfectly summarized by this blog post: &lt;a href=&quot;http://taosecurity.blogspot.com/2007/10/are-you-secure-prove-it.html&quot;&gt;&quot;Are you Secure? Prove it.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is true for any situation more so for high severity issues like the &lt;a href=&quot;http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx&quot;&gt;MS08-067&lt;/a&gt; vulnerability.  So, one of the big names in enterprise security products came out with couple of signatures in their end user protection product.  I won&#39;t name which one since it doesn&#39;t really matter in this context.&lt;br /&gt;&lt;br /&gt;Taking into account that not all organizations can patch immediately, in large enterprises there are many factors which can contribute to the delay, the last resort to protect users is to rely on security software on their workstations.  Antivirus can only go so far and it&#39;s largely useless these days.  However, some HIPS signatures can limit the exposure.&lt;br /&gt;&lt;br /&gt;So, this HIPS product rolled out signatures to supposedly detect and prevent the attack.  After testing their claims it turned out that it only blocks exploit attempts from the workstation which has this HIPS installed.  Any attacks against this workstation will be successful.  It is beyond me why this decision was made.  It&#39;ll stop the worm from spreding but it won&#39;t protect the client from being infected by the trojan which can easily be downloaded by the shellcode.&lt;br /&gt;&lt;br /&gt;Interestingly, the response from the vendor was that they created detection for the most common exploit vector.  I understand that it&#39;s not always possible to create signatures for the vulnerability, product has its limitations, thus only specific exploit vectors are detected.&lt;br /&gt;&lt;br /&gt;But in this case it wasn&#39;t event the most common vector.  My tests used the code which was published on &lt;a href=&quot;http://www.milw0rm.com/exploits/6824&quot;&gt;milw0rm&lt;/a&gt; by &lt;a href=&quot;http://www.dontstuffbeansupyournose.com/?page_id=2&quot;&gt;stephenl&lt;/a&gt; and at that time had just over 10,000 views, currently at over 16,000.  I would think that the vector used in that PoC would be the most common since it&#39;s quickly copied by many other hacking sites.&lt;br /&gt;&lt;br /&gt;Thus, if organizations rely on their security vendor&#39;s claims and don&#39;t have in-house expertise to verify those claims then they&#39;re at a high risk of having a false sense of security.  Considering that this product is from a rather large security vendor then the list of those organizations is rather large.&lt;br /&gt;&lt;br /&gt;On the upside, vendor was notified and is currently working on updating their detection.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/8373501990115937824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/8373501990115937824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/8373501990115937824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/8373501990115937824'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/10/importance-of-verifying-vendors.html' title='Importance of verifying vendor&#39;s protection claims'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-274411143483339464</id><published>2008-08-27T04:35:00.003+00:00</published><updated>2008-08-27T05:15:48.748+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="neosploit"/><title type='text'>Neosploit devel/updates retired! However...</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpsAJHI7CRA154brszrIeuB8Lv78peTSHfarX9uNhYHBoMxdIK50tG5Z7_xRWOvTVuf7LFdjsnySeAh0FxpIcrHEUCu5wBMeewzLB56NOq7NZOiytQ-N-pCwa8KoHplqFI3u7hdy29lGTj/s1600-h/neo_farewell.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpsAJHI7CRA154brszrIeuB8Lv78peTSHfarX9uNhYHBoMxdIK50tG5Z7_xRWOvTVuf7LFdjsnySeAh0FxpIcrHEUCu5wBMeewzLB56NOq7NZOiytQ-N-pCwa8KoHplqFI3u7hdy29lGTj/s320/neo_farewell.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5239053001898186050&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seems that development of this exploit pack has ended.  The message basically states that efforts which are put into development are not returning enough income and supported is ending.&lt;br /&gt;&lt;br /&gt;However, this does not mean that you will no longer see exploits delivered via this framework.  There are many installations of it out there and it&#39;s still one of the best exploit packs, although it was expensive.  Also, the Neo folks have released instructions/script on how to move the CGI program from one server to another.  Previously, this had to be done with the help of Neosploit Support, as the binary was compiled for specific server.  If source code is leaked out or released then it&#39;s highly likely that more malware will be delivered through it.&lt;br /&gt;&lt;br /&gt;Now, that background info behind us, we have seen something interesting which leaves more questions then answers.  We have identified a site which utilizes this pack to drop a binary which seems to be associated with the recent fake Antivirus malware.&lt;br /&gt;&lt;br /&gt;What is of most interest is the fact that the obfuscated script, mainly the deobfuscation function has some modifications to its code.  Several key statements were rearranged in such a way that logic isn&#39;t changed.&lt;br /&gt;&lt;br /&gt;Why make such a change?  Is it a change or some older build which had a short life span and wasn&#39;t updated since?  We&#39;ve been keeping an eye on Neosploit&#39;s progress for many months now and have never seen this code sequence.  We have observed similar minor changes before, during active development, but now since it&#39;s supposedly retired the update does stand out.  Is it possible that source code was leaked? or did someone just modify the binary in place, and for what purpose, evade detection?&lt;br /&gt;&lt;br /&gt;More research is needed to confirm if this change occurs elsewhere, on other domains hosting Neosploit.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/274411143483339464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/274411143483339464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/274411143483339464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/274411143483339464'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/08/neosploit-develupdates-retired-however.html' title='Neosploit devel/updates retired! However...'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpsAJHI7CRA154brszrIeuB8Lv78peTSHfarX9uNhYHBoMxdIK50tG5Z7_xRWOvTVuf7LFdjsnySeAh0FxpIcrHEUCu5wBMeewzLB56NOq7NZOiytQ-N-pCwa8KoHplqFI3u7hdy29lGTj/s72-c/neo_farewell.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-2734100078553708073</id><published>2008-08-23T06:07:00.002+00:00</published><updated>2008-08-23T06:35:10.095+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fiesta"/><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><title type='text'>le fiesta - another exploit pack</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU5bu7VHu0MweqnHBMiaR0tJa4Zkx341ViCiOhfys3y9naE36HEyix4EGl55uGP3r5QJ6odGHVahjAxOiOle3pW9Au2yPH-zVDkmobgMUgtlEg-OWfgZsRMJXo17bijq0Z3LJt1XYCodKe/s1600-h/fiesta_stats.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU5bu7VHu0MweqnHBMiaR0tJa4Zkx341ViCiOhfys3y9naE36HEyix4EGl55uGP3r5QJ6odGHVahjAxOiOle3pW9Au2yPH-zVDkmobgMUgtlEg-OWfgZsRMJXo17bijq0Z3LJt1XYCodKe/s200/fiesta_stats.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5237591341326534994&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is yet another web based exploit pack which utilizes PHP and SQL.  Overall, it&#39;s similar to the other PHP based packs except here the file structure is much more compact, not that it really matters, and it&#39;s less smart about serving out exploits (not loaders) to already visited victims.&lt;br /&gt;&lt;br /&gt;Uses two layers of encryption/obfuscation via Javascript with random function and variable names upon each visit.  Here&#39;s a rough list of included exploits:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;COM objects&lt;br /&gt;&lt;blockquote&gt;(see metasploit)&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=com&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;EC444CB6-3E7E-4865-B1C3-0DE72EF39B3F CreateControlRange&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=vml2&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;DirectAnimation.PathControl&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=wfi&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;WebViewFolderIcon.WebViewFolderIcon.1 setSlice()&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=zango1&quot;&lt;/span&gt; &lt;br /&gt;&lt;blockquote&gt;8C875948-9C60-4381-9248-0DF180542D53 DownloadAndExec()&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=zango2&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;BFC08CFF-C737-4433-BD5A-0EE7EFCFEE54 DownloadAndExec()&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=myspace&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;48DD0448-9209-4F81-9F6D-D83562940134&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=ymj&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;5F810AFC-BB5F-4416-BE63-E01DD117BD6C AddImage()&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;?spl=buddy&quot;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Sb.SuperBuddy.1 LinkSBIcons()&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style=&quot;font-style:italic;&quot;&gt;?spl=&lt;/span&gt; parameter will be passed to &lt;span style=&quot;font-style:italic;&quot;&gt;&quot;load.php&quot;&lt;/span&gt; which will update statistics of each exploit.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/2734100078553708073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/2734100078553708073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2734100078553708073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/2734100078553708073'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/08/le-fiesta-another-exploit-pack.html' title='le fiesta - another exploit pack'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU5bu7VHu0MweqnHBMiaR0tJa4Zkx341ViCiOhfys3y9naE36HEyix4EGl55uGP3r5QJ6odGHVahjAxOiOle3pW9Au2yPH-zVDkmobgMUgtlEg-OWfgZsRMJXo17bijq0Z3LJt1XYCodKe/s72-c/fiesta_stats.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-409541364837495646</id><published>2008-08-22T02:50:00.003+00:00</published><updated>2008-08-22T03:19:25.892+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="news"/><title type='text'>&quot;Army cyber ops&quot;...</title><content type='html'>In a &lt;a href=&quot;http://www.gcn.com/online/vol1_no1/46946-1.html&quot;&gt;Government Computer News article&lt;/a&gt; there was an interesting fact mentioned which hints at Army&#39;s cyber command centers ability to handle contigency issues.&lt;br /&gt;&lt;br /&gt;It was stated that many of their links utilize undersea cables but some also use land based fiber.  One of such land links was severed by a garbage truck, disabling service to their northern and southern continental CC for several hours.&lt;br /&gt;&lt;br /&gt;Now, I know how difficult it can be to design and run a full contigency operation but one would think that with the budget and resources of a government such a goal should not pose too much of a problem.  Apparently, this is not so for Army&#39;s cyber ops.&lt;br /&gt;&lt;br /&gt;To be honest, it&#39;s a big surprise to me.  I&#39;ve seen companies not lose a single tcp connection upon core router/switch failures, cable cuts in server racks, and power outages in data centers and they don&#39;t have the same resources as the government can afford.&lt;br /&gt;&lt;br /&gt;This isn&#39;t a good sign especially in light of more and more talk regarding large scale cyber warefare.  Hopefuly, that garbage truck incident served as a lesson.  On a bright side, at least the guys at the monitoring consoles got a decent break :)</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/409541364837495646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/409541364837495646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/409541364837495646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/409541364837495646'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/08/army-cyber-ops.html' title='&quot;Army cyber ops&quot;...'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-7819879066589331872</id><published>2008-08-16T04:41:00.003+00:00</published><updated>2008-08-16T04:53:46.783+00:00</updated><title type='text'>Why I love cons...</title><content type='html'>Some great talks, interesting presentations and new ideas.  Also, you get to meet very interesting people and get to pick their brains or just hang out and enjoy their strange and wonderful personalities.&lt;br /&gt;&lt;br /&gt;However, the best is when you discover people who are true hackers.  By that I mean people with a certain state of mind who take a creative approach to solve problems.  &lt;br /&gt;&lt;br /&gt;Here&#39;s an example which proves that a real hacker does not need a computer but only his brain:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuko-jEcSPNZ30LlRUZprk3bU-TyPXYU0rojUm1EO65mMEmkFJoILbzPAikJNfyWg5mtYlTy19G9m5TcSqHLCngHHBAgeWh5W9Fa9upL8IrtmigARTRl9c_Ji7BWj3J2w5i0q5lkxCnKiR/s1600-h/IMG.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuko-jEcSPNZ30LlRUZprk3bU-TyPXYU0rojUm1EO65mMEmkFJoILbzPAikJNfyWg5mtYlTy19G9m5TcSqHLCngHHBAgeWh5W9Fa9upL8IrtmigARTRl9c_Ji7BWj3J2w5i0q5lkxCnKiR/s320/IMG.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5234973592319945954&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And yes, this guy was hacking away at deciphering some message.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/7819879066589331872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/7819879066589331872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7819879066589331872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7819879066589331872'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/08/why-i-love-cons.html' title='Why I love cons...'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuko-jEcSPNZ30LlRUZprk3bU-TyPXYU0rojUm1EO65mMEmkFJoILbzPAikJNfyWg5mtYlTy19G9m5TcSqHLCngHHBAgeWh5W9Fa9upL8IrtmigARTRl9c_Ji7BWj3J2w5i0q5lkxCnKiR/s72-c/IMG.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-7808038327858386742</id><published>2008-05-24T03:32:00.007+00:00</published><updated>2008-05-26T04:01:59.204+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="neosploit"/><title type='text'>Analysis of the Adobe exploit within Neosploit</title><content type='html'>It appears that currently the toolkit is under active development.  Adobe vulnerability which is exploited is one from &lt;span style=&quot;font-style:italic;&quot;&gt;CVE-2007-5659&lt;/span&gt; disclosure.&lt;br /&gt;&lt;br /&gt;We have seen some old exploit being added, removed, then added again.  This was the &lt;span style=&quot;font-style:italic;&quot;&gt;MS06-067 DirectAnimation.PathControl.KeyFrame()&lt;/span&gt; vulnerability.  More on this one later.&lt;br /&gt;&lt;br /&gt;The function which exploits Adobe vulnerability (&lt;span style=&quot;font-style:italic;&quot;&gt;CVE-2007-5659&lt;/span&gt;) will try to load ActiveX controls in the following order:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;1. AcroPDF.PDF&lt;br /&gt;2. PDF.PdfCtrl&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;If successful then it&#39;ll identify the version in use and will continue only if it&#39;s below &lt;span style=&quot;font-style:italic;&quot;&gt;8.1.2&lt;/span&gt;, which makes sense since Adobe realeased an unpdate with this version that fixed the issue.  Then, the version is inserted into an already embedded URL string to download the actual PDF file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqtdNyqkWn-DgEwRFX5-tBNs1sUSdIGlYEgxY9DLd6no9_7Mw1FqhDmhOKWgH9ykB34Fa89OUom9scSEZ7GmgwV3muTg6AAHX9V8VhE-ec0JOEYuuS4LZTzgBZNeRRAO9GdMnXtfB9AVv0/s1600-h/html_js.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqtdNyqkWn-DgEwRFX5-tBNs1sUSdIGlYEgxY9DLd6no9_7Mw1FqhDmhOKWgH9ykB34Fa89OUom9scSEZ7GmgwV3muTg6AAHX9V8VhE-ec0JOEYuuS4LZTzgBZNeRRAO9GdMnXtfB9AVv0/s200/html_js.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5203798289613679362&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Returned PDF file is around 10K in size and contains Zlib compressed obfuscated Javascript.  Thus, any IDS detection which looks for the vulnerable code will not pick this one up.  Obfuscation method is the same as for all other pages.  After peeling this layer off one finds the familiar heap spray function to populate memory with the shellcode.  Then, once again a version check is performed.  Finally, a long string is created (~ 44K) and used as an argument to &lt;span style=&quot;font-style:italic;&quot;&gt;Collab.collectEmailInfo()&lt;/span&gt; method.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iD55XNs-CBo6mCPfwOJKop99nrdkmDBSeV5PIxkXFTqUmq1aJcvmjFI5bGljtmFpYz5ILL5E6ZF_hyZY21IwA5WmqgSlPSqBsMqm99qlVq1zvPHsoB7WaCERK6kJ3sPOltNduMWfpLHV/s1600-h/pdf_js.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iD55XNs-CBo6mCPfwOJKop99nrdkmDBSeV5PIxkXFTqUmq1aJcvmjFI5bGljtmFpYz5ILL5E6ZF_hyZY21IwA5WmqgSlPSqBsMqm99qlVq1zvPHsoB7WaCERK6kJ3sPOltNduMWfpLHV/s200/pdf_js.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5203800643255757602&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If the overflow works, then the shellcode will GET a URL which is the same as the one before except for one changed byte (&lt;span style=&quot;font-style:italic;&quot;&gt;from 01 -&gt; 02&lt;/span&gt;), perhaps to track which stage is requested.  That file is an Executable which will be saved in the user&#39;s Temp directory as &lt;span style=&quot;font-style:italic;&quot;&gt;&quot;sxoC.exe&quot;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For those who rely on &lt;span style=&quot;font-style:italic;&quot;&gt;HIDS/HIPS, AV, nIDS/nIPS&lt;/span&gt; chances are nothing will be seen, unless the dropped binary gets picked up by AV (right!).</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/7808038327858386742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/7808038327858386742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7808038327858386742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/7808038327858386742'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/05/analysis-of-adobe-exploit-within.html' title='Analysis of the Adobe exploit within Neosploit'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqtdNyqkWn-DgEwRFX5-tBNs1sUSdIGlYEgxY9DLd6no9_7Mw1FqhDmhOKWgH9ykB34Fa89OUom9scSEZ7GmgwV3muTg6AAHX9V8VhE-ec0JOEYuuS4LZTzgBZNeRRAO9GdMnXtfB9AVv0/s72-c/html_js.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-516213154683177179</id><published>2008-05-20T19:26:00.002+00:00</published><updated>2008-05-20T19:40:28.514+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="neosploit"/><title type='text'>Neosploit development update</title><content type='html'>For the past month or so we have been observing more activity in Neosploit&#39;s development.  Exploits are being removed then added and new ones introduced.  To be fair in relation to the previous post we can now confirm that Adobe exploit IS being used by this toolkit.&lt;br /&gt;&lt;br /&gt;Another interesting change is less obvious and not so important to Incident Responders but more so for Intrusion Detection folks.  The main Javascript deobfuscation function has seen some changes recently.  So, those of you who depend on IDS to detect the script should probably review their traffic, honeypots, hids, etc... for new changes.</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/516213154683177179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/516213154683177179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/516213154683177179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/516213154683177179'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/05/neosploit-development-update.html' title='Neosploit development update'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7283008945264267434.post-4551741957487005100</id><published>2008-05-13T04:23:00.004+00:00</published><updated>2008-05-13T05:14:08.881+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="neosploit"/><title type='text'>Neosploit update and changes</title><content type='html'>Some interesting changes we have observed:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; - URL scheme changed&lt;br /&gt; - Javascript deobfuscation updated&lt;br /&gt; - Vulnerabilities exploited changed&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Javascript deobfuscation code has changed a bit.  Previously, to get to the actual exploit code one had to go through two decryption stages, this time an additional stage is added to the very first layer.  This additional layer does not make a request out to the server.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Basically, upon first visit to the Neosploit site a browser gets one big obfuscated Javascript page.  It executes the decryption function which results in another obfuscated javascript layer.  This second layer decrypts itself and then runs real javascript of the first stage.  This stage adds some encoded parameters to the URL for the second stage.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;URL scheme for requests to exploits and binaries has been updated.  It appears that a full structure is passed as a parameter to the main script.  This struct is hex encoded as a string and uses various flags and variables to track victims and statistics.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Javascript decryption function utilizes the &quot;arguments.callee&quot; trick to convert itself into an uppercase string and use offsets within this string to decrypt the payload.  This is the main deobfuscation characteristic of Neosploit.  Several changes have been made previously which break down the methods into seperate variables instead of using them directly.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;An interesting addition has been included recently, which appends Neosploit&#39;s web address to the decoding offset string.  Thus, to successfully decrypt the payload the original full address of the script must be known.  Also, at the exploit stage there&#39;s a function which sets a unique cookie (&quot;ID&quot;) with a specific value for a given exploit.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Stage 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;First stage is the initial visit (iframe, redirect, ...) to Neosploit page.  At this point a structure is created based on public variables such as the User Agent string and IP address.  Then the server returns obfuscated Javascript page, which is dynamically generated with random variables, and contains the first part of the URL for the next stage.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Stage 2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;This stage is obfuscated with two layers and then attempts to identify the victim&#39;s Service Pack level, and system&#39;s language then builds a request string with these parameters to get the second stage.  This request URL has a specific argument to the main script.  First part is added by the server upon initial visit and consists of various hashed parameters then SP level and language string is appended.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Stage 3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Deobfuscation yields the exploit code for the following vulnerabilities (in exploit order):&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; - &lt;span style=&quot;font-weight:bold;&quot;&gt;CVE-2006-0003&lt;/span&gt; ; MS06-014 ; MDAC (BD96C556-65A3-11D0-983A-00C04FC29E36)&lt;br /&gt; - &lt;span style=&quot;font-weight:bold;&quot;&gt;CVE-2006-5820&lt;/span&gt; ; &quot;Sb.SuperBuddy.LinkSBIcons()&quot; ; Cookie ID = 9&lt;br /&gt; - &lt;span style=&quot;font-weight:bold;&quot;&gt;CVE-2007-5779&lt;/span&gt; ; &quot;GomWebCtrl.GomManager.1.OpenURL()&quot; ; Cookie ID = 13&lt;br /&gt; - &lt;span style=&quot;font-weight:bold;&quot;&gt;CVE-2008-1472&lt;/span&gt; ; CA BrightStor ArcServe Backup AddColumn() (BF6EFFF3-4558-4C4C-ADAF-A87891C5F3A3) ; Cookie ID = 21&lt;br /&gt; - &lt;span style=&quot;font-weight:bold;&quot;&gt;CVE-????-????&lt;/span&gt; ; &quot;QuickTime.QuickTime.4&quot; ; Cookie ID = 6&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;PS: &lt;a href=&quot;https://forums.symantec.com/syment/blog/article?message.uid=320843&quot;&gt;Symantec&lt;/a&gt; stated that recent Adobe vulnerability was being exploited by this toolkit, however the instance which was analyzed for this post did not include any Adobe exploits.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://dxp2532.blogspot.com/feeds/4551741957487005100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7283008945264267434/4551741957487005100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/4551741957487005100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7283008945264267434/posts/default/4551741957487005100'/><link rel='alternate' type='text/html' href='http://dxp2532.blogspot.com/2008/05/neosploit-update-and-changes.html' title='Neosploit update and changes'/><author><name>-=[ dxp ]=-</name><uri>http://www.blogger.com/profile/12269886678074883395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBoc3LFbX0miwnGOQeXlHwI2VgIIwZ3ZUyy_XBKie2vgOEs1gO7o951u9KsDPhwtmMKboXUCzAnxeW2VTbGRchoLyvkcMuTh4K07azursCslOwReyESeatVxhpAgFzCrQ/s220/avatar3.jpg'/></author><thr:total>0</thr:total></entry></feed>