<?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/"
	>

<channel>
	<title>Coffee To Code</title>
	<atom:link href="http://coffeetocode.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://coffeetocode.net</link>
	<description>Percolating Ideas on Computing &#38; Security</description>
	<lastBuildDate>Tue, 09 Aug 2011 08:04:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Trivial Passwords Are Worse Than Useless: A Simple Case Study in Entropy</title>
		<link>http://coffeetocode.net/2011/04/trivial-passwords-are-worse-than-useless-a-simple-case-study-in-entropy/</link>
		<comments>http://coffeetocode.net/2011/04/trivial-passwords-are-worse-than-useless-a-simple-case-study-in-entropy/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 09:06:35 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[AppSec]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Non-Technical]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=306</guid>
		<description><![CDATA[Apparently an email address I own is similar enough to an Indian surname that I get a fair amount of misdirected business correspondence. Despite protestations that they have the wrong address, one large financial institution however continues to send me account updates (including account numbers, balances and addresses). The documents are sent as password protected [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently an email address I own is similar enough to an Indian surname that I get a fair amount of misdirected business correspondence. Despite protestations that they have the wrong address, one large financial institution however continues to send me account updates (including account numbers, balances and addresses). The documents are sent as password protected PDFs, which might be fine, except that they state in the text of the email that the password is the user&#8217;s date of birth in the format DDMMYYYY.</p>
<h3>Complexity Fail</h3>
<p>Those of you passingly familiar with the concept of entropy no doubt let out a groan there. For the rest, here&#8217;s why: using a date of birth reduces the complexity of the password into the realm of &#8220;trivially weak&#8221;. <a href="http://en.wikipedia.org/wiki/Entropy_%28information_theory%29"><em>Entropy</em></a> is a common measurement of information complexity; how &#8220;surprising&#8221; a piece of information is, or how &#8220;unknown&#8221; it is (&#8230;stick with me on this). Simply knowing that the password is a date reduces the unknown-ness of that password from a reasonably-secure level to an entirely unacceptable level.</p>
<p>For comparison, if we assume an 8-character password with the 94  standard keyboard symbols, we have an entropy of (8 log2(94) ) = 52.44  bits (or equivalently, just over 6 <em>quadrillion</em> possibilities), which is reasonable for most purposes.</p>
<p>On the other hand, a date isn&#8217;t just an 8 character password. It&#8217;s not even an 8 character <em>numeric </em>password (with obviously 99,999,999 options, or 26.8 bits of entropy), which would be weak but not laughable. In fact, it&#8217;s really a <em>3 character password</em>: a month, a day, and a year. Those are respectively ~30.44 possibilities  (days per month), 12 possibilities, and 60 possibilities (assuming our account holder was born between 1940 and 2000). In bits, that&#8217;s approximate 4.93 + 3.58 + 5.91 = 14.42 bits. An analogous password described in characters we are familiar with would be a three character password made up of: a <em>single number</em>, followed by a <em>single lower-case letter</em>, followed by a <em>single alphanumeric</em>. So, your password options are no different (entropy-wise) than &#8220;1aA&#8221; or &#8220;8q3&#8243;, and you didn&#8217;t even get to pick your wussy three characters.</p>
<h3>Solving 14 bits of Entropy</h3>
<p>Let&#8217;s put this to work. First, a list of every date between Jan 1, 1940 and Jan 1, 2000. Python is my sketchpad of choice:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">datetime</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">datetime</span>, timedelta
&nbsp;
max_date = <span style="color: #dc143c;">datetime</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1999</span>, 01, 01<span style="color: black;">&#41;</span>
date = <span style="color: #dc143c;">datetime</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1940</span>, 01, 01<span style="color: black;">&#41;</span>
day = timedelta<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;datelist.txt&quot;</span>, <span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">while</span><span style="color: black;">&#40;</span>date <span style="color: #66cc66;">&lt;</span> max_date<span style="color: black;">&#41;</span>:
    f.<span style="color: black;">write</span><span style="color: black;">&#40;</span>date.<span style="color: black;">strftime</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%d%m%Y&quot;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
    date = date + day
&nbsp;
f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Now datelist has a properly formatted date for each day in our range. How many possibilities is that?</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">2</span> datelist.txt
01011940
02011940
03011940
$ <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span> datelist.txt
<span style="color: #000000;">21550</span> datelist.txt</pre></div></div>

<p>That&#8217;s in line with our estimate above. Cool, let&#8217;s use that list to break a PDF created with this password scheme. Pdfcrack is a simple open-source password bruteforcing tool that helpfully takes a wordlist.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ pdfcrack <span style="color: #660033;">-f</span> SensitiveDoc.pdf <span style="color: #660033;">-w</span> datelist.txt
PDF version <span style="color: #000000;">1.4</span>
Security Handler: Standard
V: <span style="color: #000000;">2</span>
R: <span style="color: #000000;">3</span>
P: <span style="color: #660033;">-1028</span>
Length: <span style="color: #000000;">128</span>
Encrypted Metadata: True
FileID: 9f86e55a12672dcd9b9a9cd3423303da
U: b89fd170770d5b802423d0ec2ae7ec6d00000000000000000000000000000000
O: 301981f88c00ebdafde32360d24b7ae0f6b8a3e1865ac314cbaec4f7cc7a3f49
found user-password: <span style="color: #ff0000;">'13051959'</span></pre></div></div>

<p>How long did that take?</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000; font-weight: bold;">time</span> <span style="color: #660033;">-p</span> pdfcrack <span style="color: #660033;">-f</span> SensitiveDoc.pdf <span style="color: #660033;">-w</span> datelist.txt cmd <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span>  <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> user
found user-password: <span style="color: #ff0000;">'13051959'</span>
user <span style="color: #000000;">0.20</span></pre></div></div>

<p>One fifth of a second. Super secure!</p>
<h3>General Advice</h3>
<p>So, to wrap up. Less complex passwords are reasonable in a security context where a system can monitor password guessing: web based systems, network logins, etc. Then you can respond with enforced guessing intervals, CAPTCHAs or secondary validation. However, when the attacker can take the data for offline cracking, the required <a href="http://en.wikipedia.org/wiki/Password_strength">strength of passwords</a> goes <em>way</em> up. Using and trusting weak passwords in this instance caused this company to broadcast sensitive information that it wouldn&#8217;t intentionally expose. </p>
<p>The company would be much better off providing users a random 10 character code that they can write down and use to decrypt the account statements (yes, seriously, <a href="http://www.schneier.com/blog/archives/2005/06/write_down_your.html">write down your passwords</a>), or simply asking users to log in for the statement information. </p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2011/04/trivial-passwords-are-worse-than-useless-a-simple-case-study-in-entropy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charlie Brown&#8217;s Nightmare Before Christmas</title>
		<link>http://coffeetocode.net/2011/01/charlie-browns-nightmare-before-christmas/</link>
		<comments>http://coffeetocode.net/2011/01/charlie-browns-nightmare-before-christmas/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 10:32:32 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=296</guid>
		<description><![CDATA[I always enjoy reading the Christmas Challenges created by Ed Skoudis and Yori Kvitchko over at ethicalhacker.net. This year&#8217;s puzzle was &#8220;The Nightmare Before Charlie Brown&#8217;s Christmas&#8221; and offered a chance to play around with VoIP, which I don&#8217;t get to do much of normally. The winners were just posted, and my entry got the [...]]]></description>
			<content:encoded><![CDATA[<p>I always enjoy reading the Christmas Challenges created by Ed Skoudis and Yori Kvitchko over at <a href="http://www.ethicalhacker.net">ethicalhacker.net</a>. This year&#8217;s puzzle was &#8220;<a href="http://www.ethicalhacker.net/content/view/344/2/">The Nightmare Before Charlie Brown&#8217;s Christmas</a>&#8221; and offered a chance to play around with VoIP, which I don&#8217;t get to do much of normally.</p>
<p>The winners were just posted, and <a href="http://www.ethicalhacker.net/component/option,com_smf/Itemid,54/topic,6568.0/">my entry</a> got the nod for Best Creative Entry. This is particularly awesome for me since the original <a href="http://www.amazon.com/exec/obidos/ASIN/0131481045/thedigitalcon-20?creative=327641&amp;camp=14573&amp;adid=0W0TMYWJ6BXR5RPTG9N8&amp;link_code=as1">Counter Hack</a> (by Skoudis) was one of the first security books I ever bought.</p>
<p>I highly recommend reading through the contest and <a href="http://www.ethicalhacker.net/content/view/347/2/">the answers</a>; as always, the technical walkthrough is hugely informative, and they cover a massive toychest of wicked VoIP hacking utilities. There&#8217;s also some pretty nice command line kung foo (<a href="http://blog.commandlinekungfu.com/">hat tip</a>) that makes me remember the power of the Unix philosophy of small tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2011/01/charlie-browns-nightmare-before-christmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Miranda Rights&#8217; for the Internet</title>
		<link>http://coffeetocode.net/2010/10/285/</link>
		<comments>http://coffeetocode.net/2010/10/285/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 07:43:36 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=285</guid>
		<description><![CDATA[I posted this some time ago in a different forum and was recently asked to repost it here, and I&#8217;m happy to get it a wider audience. I think this is important for everyone and equally relevant for any internet user, be they high school students, parents, or yes, we software professionals. There&#8217;s plenty more [...]]]></description>
			<content:encoded><![CDATA[<p>I posted this some time ago in a different forum and was recently asked to repost it here, and I&#8217;m happy to get it a wider audience. I think this is important for everyone and equally relevant for any internet user, be they high school students, parents, or yes, we software professionals. There&#8217;s plenty more to be said on everything contained below, but I hope a degree of succinctness will set off the core ideas.</p>
<p>~PST</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<h3><em>I. You have the right to remain silent.</em></h3>
<p>You do not need to blog. You do not need to &#8220;Reply to this post.&#8221; You<br />
do not need to Get MySpace, and you do not need to Facebook Me. If you<br />
say nothing, the blogosphere will not deflate and strangers on<br />
message boards will not miss your advice. If you say nothing, the<br />
internet will not notice.</p>
<h3><em>II. Anything you say can and will be used against you in the court of public opinion.</em></h3>
<p>Nothing on the internet is private. Your real name, your AIM handle,<br />
your livejournal, and the email address you had in high school are all<br />
out there for anyone who cares to look. Just because you don&#8217;t know<br />
how to find it doesn&#8217;t mean it can&#8217;t be found. The internet has a very<br />
long memory. You should be willing to bet that it&#8217;s longer than yours.<br />
Anyone you meet could know things about you that you have forgotten<br />
you ever said. Speak slowly and carefully&#8230; there are a lot of people<br />
listening.</p>
<h3><em>III. You have the responsibility to be skeptical about everything; if you lack the ability to do so, find someone who will do so on your behalf.</em></h3>
<p>The internet is not a library. The internet is not a newspaper. The<br />
internet is a cacophonous bazaar of peddlers, kooks, and unruly<br />
children sharing the same advertisement littered street corner as<br />
politicians, scientists and parents. There are no signposts that<br />
announce when you&#8217;re in the wrong part of town, and no one is going to<br />
tell you when you&#8217;re being lied to or misled. An open and  skeptical<br />
mind and a sense of personal responsibility are the rules of the road;<br />
no shirt, no shoes, no service.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/10/285/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mostly Ready for BlackHat &amp; Defcon</title>
		<link>http://coffeetocode.net/2010/07/mostly-ready-for-blackhat-defcon/</link>
		<comments>http://coffeetocode.net/2010/07/mostly-ready-for-blackhat-defcon/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 21:58:06 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=273</guid>
		<description><![CDATA[As everyone&#8217;s gearing up for the madness this week, I thought I&#8217;d join in. I&#8217;ll be giving talks at both BlackHat and Defcon on some of my recent work in webapp fingerprinting. At BlackHat: (Wed 7/28, 1515) BlindElephant: Web Application Fingerprinting with Static Files At Defcon: (Fri 7/30, 1400) Web Application Fingerprinting with Static Files [...]]]></description>
			<content:encoded><![CDATA[<p>As everyone&#8217;s gearing up for the madness this week, I thought I&#8217;d join in. I&#8217;ll be giving talks at both BlackHat and Defcon on some of my recent work in webapp fingerprinting.</p>
<p>At BlackHat: (Wed 7/28, 1515) <a href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Thomas">BlindElephant: Web Application Fingerprinting with Static Files</a></p>
<p>At Defcon: (Fri 7/30, 1400) <a href="https://www.defcon.org/html/defcon-18/dc-18-speakers.html#Thomas">Web Application Fingerprinting with Static Files</a></p>
<p>The Defcon talk is essentially a shorter, more technically focused version of the BH talk. Links to code available here after the talk!</p>
<p>I&#8217;ve been sorting through the massive amount of content on display over the next week, and the various posts others have made on what they intend to catch have been useful. Here&#8217;s some of my &#8220;want to see&#8221; list (I actually found there&#8217;s usually at least two presentations I really want to see in each timeslot, but I gotta choose):</p>
<p><strong>﻿Wednesday:</strong></p>
<ul>
<li>1000-1100 Wayne Huang, Caleb Sima:<a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Huang"> Drivesploit: Circumventing both automated AND  manual drive-by-download detection</a></li>
<li>1115-1230 Charlie Miller, Noah Johnson:<a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#CMiller"> Crash Analysis using BitBlaze </a></li>
<li>1345-1500 Barnaby Jack: <a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Jack">Jackpotting Automated Teller Machines Redux</a></li>
<li>1515-1630 Me!<a href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Thomas"> BlindElephant:  Web Application Fingerprinting with Static Files</a></li>
</ul>
<p>I&#8217;m kinda bummed I&#8217;m at 1515 because I actually really wanted to catch Arshan Dabirsiaghi:<br />
<a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Dabirsiaghi">JavaSnoop: How to Hack Anything Written in Java.<br />
</a></p>
<p><strong>Thursday:</strong></p>
<ul>
<li>1000-1100 Nathan Hamiel, Marcin Wielgoszewski: <a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Hamiel">Constricting the Web: Offensive Python for Web  Hackers</a></li>
<li>(My colleague Ivan Ristic is also giving his talk <a href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Ristic">State of SSL on the Internet: 2010 Survey,  Results and Conclusions Routers</a> in this slot; it&#8217;s good stuff, so I&#8217;m torn.)</li>
<li>1115-1230 Julien Tinnes, Tavis Ormandy: <a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Tinnes">There&#8217;s a party at Ring0 (and you&#8217;re invited)</a>
<ul>
<li>(Gunter Ollman is also talking a 1115. If you&#8217;ve never heard him speak or want an intro to the economic underpinnings of malware and botnets, <em>definitely </em>check it out)</li>
</ul>
</li>
<li>1345-1500 David Byrne, Charles Henderson: <a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Byrne">GWT Security: Don’t Get Distracted by Bright  Shiny Objects</a>
<ul>
<li>(Though I am interested in the TitanMist project, I&#8217;m skeptical of all &#8220;frameworks&#8221;)</li>
</ul>
</li>
</ul>
<p>And finally, my coworker Rami is going to be giving the details on the malware detection he built. He&#8217;s modest about the underlying techniques, but the full system is pretty cool. Do check it out.</p>
<ul>
<li>1515-1630 Rami Kawach: <a title="Go to Briefing" href="http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Kawach">NEPTUNE: Dissecting Web-based Malware via  Browser and OS Instrumentation</a></li>
</ul>
<p>I hope to get to BSides for at least a while, and I haven&#8217;t even figured out what I&#8217;m going to catch at Defcon (somehow it seems less amenable to planning than Black Hat)</p>
<p>If you&#8217;ll be be around, look me up! As usual, email or @coffeetocode on Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/07/mostly-ready-for-blackhat-defcon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yolo FCU SMS Phishing Scam Lessons</title>
		<link>http://coffeetocode.net/2010/06/yolo-fcu-sms-phishing-scam-lessons/</link>
		<comments>http://coffeetocode.net/2010/06/yolo-fcu-sms-phishing-scam-lessons/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 22:13:14 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Non-Technical]]></category>
		<category><![CDATA[phishing sms socialengineering]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=248</guid>
		<description><![CDATA[I&#8217;ve gotten reports from a few people about an SMS phishing scam that is targeting customers of a small credit union near Sacramento, CA. Ordinarily I&#8217;d just ignore it as one more bit of flotsam in the teeming sea of junk that&#8217;s on the net, but this one has a few interesting aspects. Here is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve gotten reports from a few people about an SMS phishing scam that is targeting customers of a small credit union near Sacramento, CA. Ordinarily I&#8217;d just ignore it as one more bit of flotsam in the teeming sea of junk that&#8217;s on the net, but this one has a few interesting aspects.</p>
<p>Here is the text that has been going out to cell phones in the 530 area code [1]:</p>
<p style="padding-left: 30px;"><em>From: NOTICE3319@yolofcu.org</em></p>
<p style="padding-left: 30px;"><em>NOTICE: Your YOLO-FCU CARD starting with 4661* has been put on hold. Please call us at (888) 819 9661.</em></p>
<p>Calling the line (which is still active as of this morning, 6/19) gives you a synthesized-voice prompt:</p>
<p style="padding-left: 30px;"><em>Thank you for calling Yolo Federal Credit Union 24 hours (sic) credit activation services.</em></p>
<p style="padding-left: 30px;"><em>For card card activation, press 1.<br />
To change your pin, press 2.<br />
To end this call, press pound.</em></p>
<p>The usual first line defense of simply reading the text (and listening) in this case should be a least a mild tipoff. The first detail that jumps out is the use of the first four digits of the account number (&#8220;starting with 4661&#8243;)[2]. Banks and card issues <em>always</em> refer to accounts by the <em>last</em> four digits, because the first four are always the same for a given issuer; they&#8217;re called the Issuer Identification Number (IIN). What&#8217;s particularly devious about this detail is that it lends false credibility to the phish because it invites users (victims) to improperly generalize from the familiar security practice of referring to an account by only the last four digits.</p>
<p>The next detail that seems a bit incongruous is the synthesized voice message. While not entirely unknown, one might expect a reputable credit union to use a real voice in the recorded message (if only for customer service reasons).</p>
<p>Other than those couple details (and the fact that no bank should ask for the information it&#8217;s requesting), this is a pretty decent phish. I give it a C+.</p>
<h2>Feeling Insecure Is As important as Feeling Secure</h2>
<p>Using SMS is a new twist, and is devious for the same reason the IIN was. The use of the cell phone as out of band (OOB) authentication (for email, banking and brokerage accounts) is beginning to permeate the public consciousness. Likewise, SMS doesn&#8217;t (in the US) typically get spam or solicitors the way email and land lines do, so it has a bit more of an aura of authenticity. These two pieces help make this particular incident nastier than your average phish.</p>
<p>We all need to remember that the more something feels secure, the more value there is to the criminal in subverting it or co-opting it. User training and UI design can&#8217;t just be about making users feel secure, it has to be about making them feel secure <em>when they are actually secure</em>, and likewise (and just as important) making them <em>feel insecure when they are actually insecure</em>.</p>
<p>If you regularly teach your users to &#8220;look for the lock icon&#8221; when connecting to a secure site, it can&#8217;t just be rote (though I know sometimes that&#8217;s what we have to settle for). What we should also teach along with it are the implications of what it means when the lock isn&#8217;t there. This is the type of knowledge that can help internalize and instinctualize security behavior (yes, I made up a word).</p>
<h2>Banks: Please Meet Us Halfway</h2>
<p>The last thing that I thought was interesting was the website for the real Yolo Federal Credit Union.</p>
<p>Here&#8217;s what I saw when I visited:</p>
<p><a href="http://coffeetocode.net/wp-content/uploads/2010/06/yolo-fcu-noscript.png"><img class="aligncenter size-full wp-image-253" title="yolo-fcu-noscript" src="http://coffeetocode.net/wp-content/uploads/2010/06/yolo-fcu-noscript.png" alt="" width="500" height="360" /></a></p>
<p>Wow, nothing about the scam? Seriously? That&#8217;s unconscionable. Oh wait, let me turn off NoScript:</p>
<p><a href="http://coffeetocode.net/wp-content/uploads/2010/06/yolo-fcu-alert.png"><img class="aligncenter size-full wp-image-254" title="yolo-fcu-alert" src="http://coffeetocode.net/wp-content/uploads/2010/06/yolo-fcu-alert.png" alt="" width="500" height="359" /></a></p>
<p>Better-ish.</p>
<p>Here&#8217;s a catch 22 for YFCU; I&#8217;m sure they would advocate secure browsing practices (using NoScript while doing online banking is a no-brainer), and yet users trying to do that right wouldn&#8217;t see this important security information on the site. You&#8217;ll notice that it&#8217;s all an image, and wrapped inside a flash object. So, again a plea to site designers banks and everyone else; please, at least meet your security conscious users half way.</p>
<p>[1] I&#8217;m including the entire text of the scam message to raise the visibility of</p>
<p>[2] Similarly, the first five digits of a Social Security Number (e.g. 224-87-XXXX) are also fairly public information. Data that is presumed private has the effect of legitimizing a communication, making it all the more important to help users differentiate public and private data.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/06/yolo-fcu-sms-phishing-scam-lessons/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My&#8230; God&#8230;</title>
		<link>http://coffeetocode.net/2010/06/my-god/</link>
		<comments>http://coffeetocode.net/2010/06/my-god/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 06:49:15 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Non-Technical]]></category>
		<category><![CDATA[comic]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=240</guid>
		<description><![CDATA[The first portrayal of hacking that gets it right; I officially owe this man a case of beer. (Saturday Morning Breakfast Cereal &#8212; don&#8217;t wait, just add it to your feed reader)]]></description>
			<content:encoded><![CDATA[<p>The first portrayal of hacking that gets it right; I officially owe this man a <em>case</em> of beer.<br />
<br />
<a href="http://www.smbc-comics.com/index.php?db=comics&#038;id=1898#comic"><img alt="Time Lapse Hacking" src="http://www.smbc-comics.com/comics/20100604.gif" title="Saturday Morning Breakfast Cereal: 2010-06-04" class="aligncenter" width="504" height="527" /></a></p>
<p>(<a href="http://www.smbc-comics.com/">Saturday Morning Breakfast Cereal</a> &#8212; don&#8217;t wait, just add it to your feed reader)</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/06/my-god/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Humble Helps</title>
		<link>http://coffeetocode.net/2010/05/humble-helps/</link>
		<comments>http://coffeetocode.net/2010/05/humble-helps/#comments</comments>
		<pubDate>Mon, 24 May 2010 06:41:55 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Non-Technical]]></category>
		<category><![CDATA[Policy]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=220</guid>
		<description><![CDATA[I just ran across a post at PreachSecurity about a recent CSRF discovered in OpenCart, and a blog post by the discoverer about his interactions with the maintainer. I share Rafal&#8217;s (and Ben&#8217;s) frustration with the interaction, but I think there&#8217;s an additional lesson to be learned here. Clearly this was a loss for the [...]]]></description>
			<content:encoded><![CDATA[<p>I just ran across <a href="http://preachsecurity.blogspot.com/2010/05/why-security-pros-drink.html">a post at PreachSecurity</a> about a recent CSRF discovered in OpenCart, and a <a href="http://blog.visionsource.org/2010/01/28/opencart-csrf-vulnerability/">blog post by the discoverer</a> about his interactions with the maintainer. I share Rafal&#8217;s (and Ben&#8217;s) frustration with the interaction, but I think there&#8217;s an additional lesson to be learned here. Clearly this was a loss for the cause of security, but I think it was a loss in more ways than many of the participants see.</p>
<p>Ben didn&#8217;t just lose the battle to get one bug fixed, he also lost an ally in the fight. Daniel (of OpenCart) was and still is in the best position to make small changes to vastly improve the security of OpenCart for all users, but after a public browbeating what are the chances he&#8217;ll be willing to get help from security folks? That&#8217;s the critical part.</p>
<p>The bug by bug approach to information security is trench warfare: it will take us too many years and too many lives (or at least careers) to gain ten feet of mutilated ground. We need people and practices on our side, and &#8220;wins&#8221; in security should be measured in those terms, not just in bug counts.</p>
<p>Yes, we as security people often have to tell people that some code or process or idea is absolutely wrong. But to say those things without destroying the human capital we desperately need, we must do it with an overabundance of patience, humility, goodwill, and <em>tact</em>.</p>
<p>I think Ben did a reasonable job of trying to be respectful and helpful, but there was something jarring in it for me.</p>
<address style="padding-left: 30px;" lang="text">From: “Ben”<br />
Sent: Friday, January 22, 2010 8:06 PM<br />
To: &lt; *******@opencart.com&gt;<br />
Subject: OpenCart – Enquiry</p>
<p>Hi,</p>
<p>I recently installed OpenCart and I noticed that it is vulnerable to CSRF attacks. I have created a sample page that is capable of inserting a rouge user (the page currently prompts you but could be done silently if the attacker knows the url of the site).</p>
<p>http://visionsource.org/*********.html</p>
<p>Please let know that you are looking into the security issue and are going to release an update with a fix otherwise I will make the issue public.</p>
<p>If you need any help fixing the problem please let me know.</p>
<p>Thanks,<br />
Ben.</p>
</address>
<p>See it? &#8220;<em>&#8230;otherwise I will make the issue public.</em>&#8221; Now, as a security person that may not seem hugely disconcerting; we know that when the carrot of coordinated disclosure fails, the stick of public disclosure can get results.  However, put yourself in Daniel&#8217;s position: he just got threatened. Reread the email, and think honestly about whether anything else constructive that Ben said will have as much of an influence on Daniel as the mere feeling that he&#8217;s being bullied.</p>
<p>So, Daniel gets a lot of emails from people that misunderstand some code, and he sends back a quick response (on a Friday evening no less):</p>
<address style="padding-left: 30px;"> On 2010-01-22, at 4:50 PM, Daniel Kerr wrote:</address>
<address style="padding-left: 30px;"> Ben you seem to be very clever to come up with this. But! you need to be logged in for this to happen.</address>
<p>So, clearly he didn&#8217;t get it. Amazingly, he still seems to be receptive to Ben. On the technical side, he may not even have checked out the PoC Ben provided. Ben responds with a lot of good information. It&#8217;s a technically accurate and helpful response for someone who is ready to learn about CSRF, but this is how he leads off:</p>
<address style="padding-left: 30px;"> HI Daniel,</address>
<address style="padding-left: 30px;"> That is the whole point of a CSRF attack. Please read http://en.wikipedia.org/wiki/Csrf for an explanation on the attack.</address>
<p>Ouch. I&#8217;m sure it wasn&#8217;t Ben&#8217;s intent (or maybe he was just frustrated; understandable), but that line right there is going to put Daniel in defense mode. It&#8217;s subtle, but it&#8217;s an &#8220;I&#8217;m right, you&#8217;re wrong&#8221; moment. Even if Ben is right (he is), anyone&#8217;s ego would step in and interrupt rational thought right there.</p>
<p>Imagine if the second email had been <em>even more</em> patient and humble.</p>
<address style="padding-left: 30px;"> Hi Daniel,</address>
<address style="padding-left: 30px;"> Yes, you&#8217;re right that it requires the OpenCart to be logged in, but CSRF really is a commonly used attack, and it can be very dangerous &lt;&lt;insert Ben&#8217;s other paragrahs here; they&#8217;re a great description of how CSRF could be exploited.&gt;&gt;</address>
<address style="padding-left: 30px;">
</address>
<address style="padding-left: 30px;"> </address>
<p> <br />
<address style="padding-left: 30px;"> There&#8217;s more good information on wikipedia [link], and there&#8217;s actually a pretty straightforward fix that can eliminate CSRF vulnerabilities  [link to owasp CSRF page, or whatever you like]. I&#8217;ve attached some files that fix these vulns, and added some anti-CSRF functionality to the URL class to make it easy to clean up any other cases.</address>
<p>Instead, things kinda spiral downward. It ends with:</p>
<address style="padding-left: 30px;"> On 2010-01-22, at 8:05 PM, Daniel Kerr wrote:</address>
<address style="padding-left: 30px;"> what protection do you recommend?</address>
<p>followed immediately by:</p>
<address style="padding-left: 30px;"> On 2010-01-22, at 8:05 PM, Daniel Kerr wrote:</address>
<address style="padding-left: 30px;"> &#8220;&#8230;your [sic] just wasting my time.&#8221;</address>
<p>Communication is no longer occurring. We as security people <em>must take the responsibility to prevent that</em>. What if, at the moment that things were spiraling downhill, Ben had sent an email like.</p>
<address style="padding-left: 30px;"> Hi Daniel,</address>
<address style="padding-left: 30px;"> I hear your frustration with trying to protect users from doing dumb stuff, and I agree there&#8217;s no way to fix all the stupid things they could do, but at least CSRF is one type of attack that we can stop cold. If you have ten minutes, I&#8217;d love to talk about why I think it&#8217;s really important, and how some protections could be added to OpenCart without too much effort. </address>
<p> <br />
<address style="padding-left: 30px;"> </address>
<address style="padding-left: 30px;">My phone number is 555-555-1212: call me any time, or let me know if there&#8217;s a good time to call you.</address>
<p>Yes, I know it&#8217;s crazy. It&#8217;s over the top, it&#8217;s above and beyond the call of duty, and it&#8217;s kinda weird: use the telephone&#8230; really? But that might, just might, have helped Ben win not just the battle over a single bug, but might have won an ally in the security of an entire application, and gained the cause of security goodwill in the bargain.</p>
<p>I&#8217;m not saying that there aren&#8217;t complete, incorrigible, asshat people out there, or that killing them with kindness is any kind of panacea. Ultimately, Ben may not have been able to make progress even if he was a genetic hybrid of Mother Teresa and Bruce Schneier. What I <em>am</em> saying is that we too often forget that real security comes from the people, not just the code.</p>
<p>So, when you find yourself in a situation like Ben, please consider digging deep into your well of patience and giving a bit more when you&#8217;re tempted to give less.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/05/humble-helps/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Fuzzing Comes in from the Cold</title>
		<link>http://coffeetocode.net/2010/05/fuzzing-comes-in-from-the-cold/</link>
		<comments>http://coffeetocode.net/2010/05/fuzzing-comes-in-from-the-cold/#comments</comments>
		<pubDate>Fri, 21 May 2010 03:51:45 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Exploits]]></category>
		<category><![CDATA[Fuzzing]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=189</guid>
		<description><![CDATA[So, after a couple months of living in webapp security land and having my developer hat on, I finally took a few days to do some good old fashioned vulnerability hunting. These days, that means fuzzing. I&#8217;m going to go ahead and say that fuzzing is ready to come out of the cold, from being [...]]]></description>
			<content:encoded><![CDATA[<p>So, after a couple months of living in webapp security land and having my developer hat on, I finally took a few days to do some good old fashioned vulnerability hunting. These days, that means fuzzing.</p>
<p>I&#8217;m going to go ahead and say that fuzzing is ready to come out of the cold, from being primarily thought of as something security researchers and blackhats do, to eventually being something as expected as unit tests (&#8230;though I&#8217;m probably about 2 years late in saying that). With fuzzing a <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=b2307ca4-638f-4641-9946-dc0a5abe8513">part of the SDL</a> (<a href="http://msdn.microsoft.com/en-us/library/ms995349.aspx">gj MS</a>) and <a href="http://www.computerworld.com/s/article/9174120/Pwn2Own_winner_tells_Apple_Microsoft_to_find_their_own_bugs">Charlie Miller publicly calling on companies to get with the program</a>, it&#8217;s well on its way.</p>
<p>Now, unit testing (and code coverage) took a while to be considered expected practice (and depending on where you work, might still raise eyebrows), but by and large they&#8217;re generally considered something that helps improve quality and reduce risk in a project. I have hopes that fuzzing will get there too.</p>
<p>The tooling is there, except that I think coming from the security community has hindered it a bit. There&#8217;s no standout leader like xUnit (cpp, n, j, etc), and instead we have dozens of tools grown from individual developers, which range from utterly broken to pretty good, and most serious fuzzing undertakings end up having to piece together a solution out of a number of other partial solutions. If you&#8217;re Charlie Miller, <a href="http://securityevaluators.com/files/slides/cmiller_CSW_2010.ppt">you have it figured out and built into a fusion powered spaceship</a>, but the rest of us are still getting there (seriously, if you read one thing on fuzzing, check out that presentation from CANSECWEST this year&#8230; we all can aspire).</p>
<p>Trying to piece together such a solution myself, I started with <a href="http://labs.idefense.com/software/fuzzing.php">FileFuzz</a> and the excellent text <a href="http://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119/">Fuzzing: Brute Force Vulnerability Detection</a> by Sutton, Greene and Amini.</p>
<h3>Get Started Quickly With FileFuzz</h3>
<p>If you&#8217;re looking to start file-based fuzzing as quickly as possble, FileFuzz is a good bet. It&#8217;s a mutational fuzzer so all you need to get started is a single sample file, and it&#8217;s &#8220;batteries included&#8221; (unlike many solutions) in that it incorporates the three big moving pieces of fuzzing: sample creation, test running, and error detection. Crash triage automation is a task that it doesn&#8217;t try to address, but if you&#8217;re just trying to get started, it&#8217;s going to help immensely.</p>
<p>While using it though, I found some bugs. Fuzzing a series of binary files, this pops up:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback'. Parameter name: chars.</pre></div></div>

<p>A bit of googling suggests that PeekChar can&#8217;t reliably be used on binary data. I made the following change in the readBinary() function of Read.cs (line numbers are approximate because I made some other changes):</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            <span style="color: #008080; font-style: italic;">//while (brSourceFile.PeekChar() != -1)</span>
            <span style="color: #0600FF; font-weight: bold;">while</span> <span style="color: #008000;">&#40;</span>brSourceFile<span style="color: #008000;">.</span><span style="color: #0000FF;">BaseStream</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Position</span> <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> brSourceFile<span style="color: #008000;">.</span><span style="color: #0000FF;">BaseStream</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">&#41;</span></pre></div></div>

<p>If you&#8217;re running FileFuzz on a modern .NET runtime (or through VisualStudio) you may see problems such as:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">InvalidOperationException: Cross-thread operation not valid: Control 'Foo' accessed from a thread other than the thread it was created on</pre></div></div>

<p>It looks like the FileFuzz UI was written before these cross-thread checks were enforced in .NET, so if you don&#8217;t want to spend a lot of time writing threadsafe delegates, you can add one line to revert to the old (unchecked) behavior. Add this at the beginning of InitializeComponent() in Main.cs (again, line numbers are approximate):</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            Control<span style="color: #008000;">.</span><span style="color: #0000FF;">CheckForIllegalCrossThreadCalls</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span></pre></div></div>

<p>At one point I thought I found that FileFuzz was only generating different files for the first 10 bytes or so, and identical files after that. It may have been some config error on my part and I couldn&#8217;t duplicate it later, but you may want to give your files a quick run through md5sum, just to make sure you don&#8217;t waste a lot of CPU cycles. (Has anyone else see this?)</p>
<h3>Structured Exception Handling</h3>
<p>While running FileFuzz against a particular target, I found a number of hits that didn&#8217;t reproduce nicely when run alone. When the target binary was executed via crash.exe (included w/ FileFuzz), it would show a access violation:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[*] &quot;crash.exe&quot; &quot;C:\Program Files\xxx&quot; 1000 C:\fuzzing\xxx\output\136
[*] Access Violation
[*] Exception caught at 1001c06d mov eax,[esi+0x8]
[*] EAX:0011f050 EBX:00000030 ECX:00000000 EDX:00000092
[*] ESI:00000000 EDI:0011f54c ESP:0011f0ec EBP:0011f0f4</pre></div></div>

<p>When run with the same file from the command line, nothing; just an error message and a clean exit. Initially puzzling, I found that this is a result of windows Structured Exception Handling. (Here&#8217;s an old but worthwhile read on <a href="http://ivanlef0u.nibbles.fr/repo/windoz/execp/exception.aspx.htm">what really goes on under the hood in SEH</a>) So, hook it up under OllyDbg or IDA and boink, there it is.</p>
<p>When I get a chance I need to get set up with <a href="http://msecdbg.codeplex.com/">!exploitable</a> (presentation <a href="http://download.microsoft.com/download/7/2/8/728FE40F-93B6-47BD-B67D-78D04B63E27D/Automated%20Security%20Crash%20Dump%20Analysis.pptx">here </a>), but I&#8217;ll have to share that in a later post.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/05/fuzzing-comes-in-from-the-cold/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shodan Now Exporting More Than 1K Results</title>
		<link>http://coffeetocode.net/2010/05/shodan-now-exporting-more-than-1k-results/</link>
		<comments>http://coffeetocode.net/2010/05/shodan-now-exporting-more-than-1k-results/#comments</comments>
		<pubDate>Mon, 17 May 2010 22:34:57 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=194</guid>
		<description><![CDATA[If you&#8217;re not familiar with Shodan, you should definitely check it out. It&#8217;s billed as a Computer Search Engine, and that&#8217;s exactly what it does. Want to find every FTP server out there? No sweat. How about webservers that provide a default password as part of the authentication realm? If you sign up and log [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re not familiar with <a href="http://www.shodanhq.com/">Shodan</a>, you should definitely check it out. It&#8217;s billed as a Computer Search Engine, and that&#8217;s exactly what it does. Want to find every FTP server out there? <a href="http://www.shodanhq.com/?q=+port%3A21">No sweat</a>. How about webservers that provide a <a href="http://www.shodanhq.com/?q=admin+1234">default password as part of the authentication realm</a>?</p>
<p>If you sign up and log in, you&#8217;ll be able to run other interesting queries like <a href="http://www.shodanhq.com/?q=+port%3A80+country%3ANG">every webserver in Nigeria</a> (find your favorite spammer!).</p>
<p>I&#8217;ve personally been using Shodan heavily to calibrate a webapp fingerprinter, and the biggest pain has been inability to export more than 1000 results. I emailed John and begged for the feature and after some back and forth, as of Sunday night, it&#8217;s ready! If you click the Export button, you&#8217;ll now be prompted with the number of hosts you want to export (in increments of 1000). He says it will accommodate up to a million hosts, but might take a while to make the xml available. </p>
<p><a href="http://coffeetocode.net/wp-content/uploads/2010/05/shodan-export.png"><img src="http://coffeetocode.net/wp-content/uploads/2010/05/shodan-export.png" alt="Shodan Export" title="shodan-export" class="aligncenter size-full wp-image-196" /></a></p>
<p>Incremental export (essentially pagination) isn&#8217;t yet supported, but if there&#8217;s demand he might add it. </p>
<p>I still think that $50/20 credits (20k hosts) is highway robbery (more begging is probably in order), but it&#8217;s a unique tool and may save you a lot of time with nmap and a scripting language.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/05/shodan-now-exporting-more-than-1k-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCSF CNIT 123 Talk</title>
		<link>http://coffeetocode.net/2010/04/ccsf-cnit-123-talk/</link>
		<comments>http://coffeetocode.net/2010/04/ccsf-cnit-123-talk/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 02:15:34 +0000</pubDate>
		<dc:creator>Patrick Thomas</dc:creator>
				<category><![CDATA[AppSec]]></category>
		<category><![CDATA[Non-Technical]]></category>
		<category><![CDATA[Exploits]]></category>
		<category><![CDATA[InfoSec]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://coffeetocode.net/?p=182</guid>
		<description><![CDATA[Hi all! I enjoyed sharing a bit of infosec with you on Saturday, and I hope you learned a bit and had some fun. Here are the slides as a PDF: 200 Milliseconds to Owned The first &#8220;mother may I&#8221; exploit was MS06-014. The second demo I did was the more interesting MS10-002, a heap [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all! I enjoyed sharing a bit of infosec with you on Saturday, and I hope you learned a bit and had some fun.</p>
<p>Here are the slides as a PDF: <a title="200 Milliseconds to Owned" href="http://coffeetocode.net/wp-content/uploads/2010/04/200-Milliseconds-To-Owned-Handouts.pdf">200 Milliseconds to Owned</a></p>
<p>The first &#8220;mother may I&#8221; exploit was <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0003">MS06-014</a>. The second demo I did was the more interesting MS10-002, a heap spray used in the Aurora attacks. Symantec has <a href="http://www.symantec.com/connect/blogs/trojanhydraq-incident-analysis-aurora-0-day-exploit">a good writeup</a>.  If you actually want to play with either of these, you&#8217;ll find them both in <a href="http://www.metasploit.com/redmine/projects/framework/repository/revisions/8140/entry/modules/exploits/windows/browser/ie_aurora.rb">Metasploit</a>. You should have little trouble duplicating the demos on XP virtual machines with IE6, and with a little websearching you can probably find a version of the MS10-002 exploit that will work on Vista and IE7 machines.</p>
<p>The small reversing demo with the serial number checking program was from <a href="http://www.crackmes.de">crackmes.de</a>. Grab a copy of <a href="http://www.ollydbg.de/version2.html">OllyDbg</a> and start poking around.</p>
<p>Happy hacking!</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeetocode.net/2010/04/ccsf-cnit-123-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

