<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>ISIS &#187; Windows</title>
	<atom:link href="http://isisblogs.poly.edu/category/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://isisblogs.poly.edu</link>
	<description>Information Systems and Internet Security</description>
	<lastBuildDate>Mon, 20 Oct 2008 17:57:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
		<item>
		<title>F-Secure Khallenge Level 1</title>
		<link>http://isisblogs.poly.edu/2008/08/15/f-secure-khallenge-level-1/</link>
		<comments>http://isisblogs.poly.edu/2008/08/15/f-secure-khallenge-level-1/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 05:18:21 +0000</pubDate>
		<dc:creator>dan</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Crypto]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://isisblogs.poly.edu/?p=165</guid>
		<description><![CDATA[Thanks to Aleksey and Phn1x for dealing with my constant stream of questions while reversing this. You&#8217;d think it was the first time I opened a debugger!
The level 1 challenge was a binary that asked for input and, if your input was correct, printed out an e-mail address you could use to get the level [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to Aleksey and <a href="http://hamsterswheel.com/techblog/?p=128">Phn1x</a> for dealing with my constant stream of questions while reversing this. You&#8217;d think it was the first time I opened a debugger!</p>
<p>The level 1 <a href="http://www.f-secure.com/security_center/asm.html">challenge</a> was a binary that asked for input and, if your input was correct, printed out an e-mail address you could use to get the level 2 binary. The Khallenge is a contest of speed, so the first person to get to and beat level 3 wins. Unfortunately, I solved level 1 after the contest ended and the level 2 and 3 binaries aren&#8217;t online yet, so no prizes and no info on those.</p>
<p><span id="more-165"></span></p>
<p>The first thing I did was open the binary is a disassembler and try to get a general feel for it. This would help me develop an attack strategy. In IDA, you can easily identify that your input is being XOR&#8217;d almost a dozen times and with a global variable somewhere. It quickly overwhelmed me, so I took out a pen and paper and started writing things down. I also had lots of problems identifying exact addresses and byte offsets in IDA (I haven&#8217;t used it much before), so I switched to <a href="http://www.immunitysec.com/products-immdbg.shtml">Immunity Debugger</a> at this point.</p>
<p>The first set of instructions your input needs to pass through are at addresses<br />
69001081 to 6900108F, and it turns out they are a compiler-optimized strlen function. Pseudocode for these addresses looks like this:</p>
<pre>if(strlen(input) != 4)
    fail();
else
    ...</pre>
<p><a href="http://isisblogs.poly.edu/wp-content/uploads/fsecure-strlen.png" rel="lightbox[165]"><img src="http://isisblogs.poly.edu/wp-content/uploads/fsecure-strlen-300x62.png" alt="compiler-optimized strlen" title="fsecure-strlen" width="300" height="62" class="size-medium wp-image-168" /></a></p>
<p>The XORs start immediately after this check. After staring at it for a while, you will figure out that your input is being used as a key to decrypt a global variable located at 0&#215;690030D0. This global variable becomes the answer e-mail. I wrote out the encrypted e-mail in a column and mapped the XOR&#8217;d input bytes to it. Here is that table (encompasses addresses 69001095 to 690010F6):</p>
<pre>e-mail @ 0x690030D4		input @ 69003100
e-mail[0]: 0x07		XOR	input[0]
e-mail[1]: 0x2E		XOR	input[1]
e-mail[2]: 0x35		XOR	input[2]
e-mail[3]: 0x29		XOR	input[3]
e-mail[4]: 0x70		XOR	input[0]
e-mail[5]: 0x20		XOR	input[1]
e-mail[6]: 0x76		XOR	input[2]
e-mail[7]: 0x68		XOR	input[3]</pre>
<p><a href="http://isisblogs.poly.edu/wp-content/uploads/fsecure-xors.png" rel="lightbox[165]"><img src="http://isisblogs.poly.edu/wp-content/uploads/fsecure-xors-300x80.png" alt="obfuscated XORs" title="fsecure-xors" width="300" height="80" class="size-medium wp-image-169" /></a></p>
<p>After all the XOR&#8217;s, the application starts to check the final values of 4 select bytes in the e-mail buffer.</p>
<pre>e-mail[4]: 0x70		XOR	input[0] == 0x32
e-mail[1]: 0x2E		XOR	input[1] == 0x61
e-mail[6]: 0x76		XOR	input[2] == 0x30
e-mail[3]: 0x29		XOR	input[3] == 0x79</pre>
<p><a href="http://isisblogs.poly.edu/wp-content/uploads/fsecure-compares.png" rel="lightbox[165]"><img src="http://isisblogs.poly.edu/wp-content/uploads/fsecure-compares-300x66.png" alt="The compares that give it away" title="fsecure-compares" width="300" height="66" class="size-medium wp-image-170" /></a></p>
<p>If you do the XOR in reverse, you can find out the input they are looking for:</p>
<pre>0x70	XOR	0x32 = input[0] = 0x42 = B
0x2E	XOR	0x61 = input[1] = 0x4F = O
0x76	XOR	0x30 = input[2] = 0x46 = F
0x29	XOR	0x79 = input[3] = 0x50 = P</pre>
<p>Run the executable, put BOFP into the prompt, all the XORs happen, all the checks pass, and the e-mail buffer decrypts to &#8220;Easy2o08.&#8221; Done!</p>
<p><a href="http://isisblogs.poly.edu/wp-content/uploads/f-secure_khallenge1_running.png" rel="lightbox[165]"><img src="http://isisblogs.poly.edu/wp-content/uploads/f-secure_khallenge1_running-300x262.png" alt="the completed khallenge" title="f-secure_khallenge1_running" width="300" height="262" class="size-medium wp-image-172" /></a></p>
<p>Thanks again Aleksey and Phn1x!</p>
]]></content:encoded>
			<wfw:commentRss>http://isisblogs.poly.edu/2008/08/15/f-secure-khallenge-level-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Cute + Malicious == Deadly</title>
		<link>http://isisblogs.poly.edu/2008/06/28/cute-malicious-deadly/</link>
		<comments>http://isisblogs.poly.edu/2008/06/28/cute-malicious-deadly/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 09:46:50 +0000</pubDate>
		<dc:creator>aleksey</dc:creator>
				<category><![CDATA[Exploits]]></category>
		<category><![CDATA[Physical Security]]></category>
		<category><![CDATA[Social Engineering]]></category>
		<category><![CDATA[Targeted Attacks]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://isisblogs.poly.edu/?p=114</guid>
		<description><![CDATA[In a recent (experimental only) project, I followed one of the multiple guides such as this one on how to make a Lego case for a USB stick. To top it off, I loaded the Hak5 Switchblade packages on the sticks. When used with U3 USB autorun technology, these packages allow automatic theft of various [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent (experimental only) project, I followed one of the multiple guides such as <a href="http://www.instructables.com/id/Lego-USB-Stick/">this one</a> on how to make a Lego case for a USB stick. To top it off, I loaded the <a href="http://wiki.hak5.org/wiki/Switchblade_Packages">Hak5 Switchblade</a> packages on the sticks. When used with U3 USB autorun technology, these packages allow automatic theft of various personal data upon insertion of the stick into a Windows computer. Now, doesn&#8217;t this just crush the competition (a regular USB stick lost in the parking lot)?</p>
<p><a href="http://isisblogs.poly.edu/wp-content/uploads/sticks_small.png" rel="lightbox[114]"><img class="aligncenter size-full wp-image-115" src="http://isisblogs.poly.edu/wp-content/uploads/sticks_small.png" alt="The Mona Lisa" width="384" height="285" /></a></p>
<p><span id="more-114"></span></p>
<p>As far as the creation of the case goes, I didn&#8217;t really follow any guides. Pretty much all you have to do is buy a mix of legos and strip a USB stick (leaving only the chip and the metal connector). Then, you have to pick a few legos (I used 3, in two different configurations) the combination of which will house the chip.  You need to cut out some of their insides with a box cutter to place the chip. Then, you need to glue them together with <a href="http://solutions.3m.com/wps/portal/3M/en_US/3M-Super-77/Super77/">3M glue</a>, fill them with transparent construction <a href="http://www.alibaba.com/product-gs/205652014/A_6700_Neutral_Silicone_Structural_Sealant.html">silicone</a> and place the chip inside. Finally, you need to place some more silicon on the chip and cover the bottom hole with flat lego pieces. The color of lego pieces matters. Yellow allowed the USB LED to shine through it. Selection of the USB stick also matters &#8211; I used &#8220;SanDisk Cruzer Micro&#8221; which are medium in size and come loaded with U3.</p>
<p>As far as the Hak5 package goes,  well, I&#8217;m not giving a guide for that. But basically, it works by modifying the U3 binaries and autorun configuration files to execute windows batch files (that are also placed on the same stick) upon insertion of the USB. The scripts provided (payloads) vary form system password stealing to IE history viewing.  The information stolen is saved on the stick itself. Alternatively, there is a way to email it to yourself. Anyway, don&#8217;t pick these up on the street (not that I would part with any <img src='http://isisblogs.poly.edu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
]]></content:encoded>
			<wfw:commentRss>http://isisblogs.poly.edu/2008/06/28/cute-malicious-deadly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Q&amp;A with ISIS: Dealing with virus-prone users</title>
		<link>http://isisblogs.poly.edu/2008/05/30/qa-with-isis-dealing-with-virus-prone-users/</link>
		<comments>http://isisblogs.poly.edu/2008/05/30/qa-with-isis-dealing-with-virus-prone-users/#comments</comments>
		<pubDate>Fri, 30 May 2008 22:23:17 +0000</pubDate>
		<dc:creator>dan</dc:creator>
				<category><![CDATA[Viruses]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://isisblogs.poly.edu/?p=108</guid>
		<description><![CDATA[Here&#8217;s a little quickie someone asked me today. Note it didn&#8217;t look like the person asking had the computers on a domain, so I gave only the simple answers.
Q: I have two illiterate users on my network and they click on everything they see. They also insist on installing random software. I can&#8217;t give them [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little quickie someone asked me today. Note it didn&#8217;t look like the person asking had the computers on a domain, so I gave only the simple answers.</p>
<p>Q: I have two illiterate users on my network and they click on everything they see. They also insist on installing random software. I can&#8217;t give them a guest account because that interferes with certain software they need to use. I would like to give them &#8216;computer administrator&#8217; accounts (they&#8217;re on an XP pro machine) but still make sure they can&#8217;t infect the machine with all sorts of malware. Any suggestions? To reiterate, all I want to do is control they software they install, etc. They still need to be able to create files, have access to already installed software, etc.</p>
<p>A: Unfortunately, the best way to handle this situation is to bite the bullet and do exactly what you say you don&#8217;t want to: remove them from the Administrators group and put them in a limited account. No other way around it. Getting them out of the Administrators group won&#8217;t interrupt their ability to use already installed software or create files in directories they have permission to write to, but it will prevent them from installing [most] software.</p>
<p>I always suggest installing <a href="http://www.siteadvisor.com">SiteAdvisor</a>. It&#8217;s a free browser extension that attempts to warn you when you&#8217;re at a bad website. I like it because it passively trains users to recognize bad websites. You can also have them use <a href="http://www.opendns.com">OpenDNS</a> to block access to certain classes of websites.</p>
<p>Re-imaging nightly is a possibility, but overkill I think. You can do it with <a href="http://www.faronics.com/html/deepfreeze.asp">Deep Freeze</a> or <a href="http://www.symantec.com/norton/products/overview.jsp?pcid=br&amp;pvid=ghost14">Norton Ghost</a>.</p>
<p>I know there are better solutions out there, I just didn&#8217;t have the time to remember all of them. Anyone care to help this guy out in the comments?</p>
]]></content:encoded>
			<wfw:commentRss>http://isisblogs.poly.edu/2008/05/30/qa-with-isis-dealing-with-virus-prone-users/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
	</item>
	</channel>
</rss>
