<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Nerd Problems</title>
	<atom:link href="http://alexmcgeorge.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexmcgeorge.wordpress.com</link>
	<description>Essays on computer security</description>
	<lastBuildDate>Thu, 19 Jan 2012 16:38:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='alexmcgeorge.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nerd Problems</title>
		<link>http://alexmcgeorge.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://alexmcgeorge.wordpress.com/osd.xml" title="Nerd Problems" />
	<atom:link rel='hub' href='http://alexmcgeorge.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Stuff I learned while writing a CTF</title>
		<link>http://alexmcgeorge.wordpress.com/2012/01/19/stuff-i-learned-while-writing-a-ctf/</link>
		<comments>http://alexmcgeorge.wordpress.com/2012/01/19/stuff-i-learned-while-writing-a-ctf/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 16:04:11 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[education]]></category>
		<category><![CDATA[infiltrate]]></category>
		<category><![CDATA[Pen-Testing]]></category>
		<category><![CDATA[Infiltrate]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=187</guid>
		<description><![CDATA[This blog entry talks about some of the lessons I learned running the WebHacking class for Infiltrate 2012 which included a WarGame/CTF style hootenanny on the final day. To be clear, I didn&#8217;t write the entire thing myself, I had a ton of help. Many Immunity folks contributed to this class in their spare time [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=187&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog entry talks about some of the lessons I learned running the WebHacking class for Infiltrate 2012 which included a WarGame/CTF style hootenanny on the final day.</p>
<p>To be clear, I didn&#8217;t write the entire thing myself, I had a ton of help. Many Immunity folks contributed to this class in their spare time while also doing consulting or other work. So high fives to the following hombres in alpha order: Admin Team (Carissa and Vanessa), Chris, Dami, Dave, Justin, Leonardo, Matias, Mark, Miguel and Nico</p>
<p>Word Count: ~2000<br />
<span id="more-187"></span><br />
<strong>How the class worked:</strong><br />
WebHacking was a three day course, days one and two were lecture and exercises while day three was practical. During days one and two we tried to have as many exercises as we could, we wanted students to keep their fingers on the keyboards as much as possible. Our goal was something like 5 slides of content to every exercise. When completing most exercises students would receive a token which they could redeem for points. On day three we had challenges/puzzles that covered the content from days one and two, when completed students would also receive a token.</p>
<p>Dami, our Django sensei, implemented a web application scoring server. The scoring server handled cryptographically &#8220;secure&#8221; token generation via a key that only lived on the scoring server. Students would also submit their tokens to the server which would then track scores and provide fancy graphing. The server itself had a good bit of functionality, including the ability for students to submit links for us to click on. As you can probably already guess that setup produced some unintended lulz.</p>
<p>We kept the attitude that if the students were able to break something in a way we had not intended then that was awesome.</p>
<p><strong>Terminology:</strong><br />
CTF/WarGame both imply some type of defense when in this situation there was none. However, security people seem to be really keen on these terms and they&#8217;re universally understood as roughly describing what we did on day three. I&#8217;ll use challenge and puzzle interchangeably to describe day three activities as I think they are more fitting terms.</p>
<p><strong>Rules:</strong><br />
1) I had all the students agree that they wouldn&#8217;t tamper with the challenges in a meaningful way, if they wanted to tag their name on a page that was fine, but all challenges had to remain solvable. Breaking an exercise meant a deduction in points.</p>
<p>2) No network level attacks, no physical attacks on devices or people, no attacking the scoring server or the resource server (hosting files for download), no attacking VM hosts, no DoS.</p>
<p>3) Outside tools were allowed within reason, I think our general rule was they had to be open source. </p>
<p><em><strong>Lessons Learned</strong></em></p>
<p><strong>Marketing</strong>:<br />
This would work better as two separate courses, an introduction and an intermediate level. A lion&#8217;s share of the current content probably fits the introductory level. Which I&#8217;m ok with, but we want to facilitate students being matched with the class that best suits their skillset. That said going from an introduction to XSS to padding oracle was kind of jarring.</p>
<p><strong>Format</strong>:<br />
You&#8217;ll note there&#8217;s no mention of Ajax, JSON or SOAP or framework specific issues (i.e. JSP, .NET). I&#8217;m not sure where that would all fit in while keeping the class a manageable length. That content is super important but I don&#8217;t want to get stuck out in the weeds. This is the general direction I&#8217;d like the class to evolve:</p>
<p>The introductory class should be 4 days:<br />
[Optional] Day 1 &#8211; Python Introduction, Linux fundamentals, Web fundamentals<br />
[Required] Day 2 &#8211; OSIG, versioning, light auditing, XSS/XSRF, RFI/LFI, Intro to SQLi<br />
[Required] Day 3 &#8211; Scripting up repetitive tasks, SQLi, light privilege escalation<br />
[Required] Day 4 &#8211; Review, Puzzles/Challenges</p>
<p>The intermediate class should also be 4 days:<br />
[Required] Day 1 &#8211; Practical JavaScript, auditing RegEx<br />
[Required] Day 2 &#8211; SQLi (Optimizing blind SQLi, NLTK, Unicode)<br />
[Required] Day 3 &#8211; Padding Oracle, in depth privilege escalation, anti-forensics<br />
[Required] Day 4 &#8211; Review, Puzzles/Challenges</p>
<p><strong>Hackers can be very competitive:</strong><br />
I&#8217;m not particularly competitive by nature so in retrospect I severely underestimated how much student&#8217;s scores would matter to them. Students took their scores very seriously and I had multiple folks approach me during the class to be sure they had completed every possible points scoring exercise. I wish we had paid more attention to the number of points we assigned to each puzzle and made the point information available to the students. For a while it was looking like we were going to have a tie and we hadn&#8217;t planned on that, so a more clearly defined rule set around how different scoring scenarios would be handled would have been good.</p>
<p>We assigned points to challenges roughly based on how long we thought it would take us to beat the challenge if we&#8217;d never seen it before. Challenges that would take us an hour were hard, challenges that would take us 15 minutes were easy and scored as such. I think we should have weighed how things were scored a bit more, including the discretionary tokens we gave out when a student was especially clever. If anything scores were a little low, hard exercises should have been ~20 points and discretionary tokens should have been capped at 5 points. We also needed enough exercises such that a student who hadn&#8217;t gotten discretionary tokens could come back from that disadvantage.</p>
<p><strong>RTFM</strong><br />
We made use of an open source Python implementation of a diff utility provided by Google. When we intended the students to RTFM (i.e. to explore a new API), we should have made that intention way more clear. We had more than a few quizzical looks and questions about why the relevant API documentation wasn&#8217;t laid out in the slides. RTFM is one of those things you <strong>have</strong> to get used to in this industry but people don&#8217;t expect it in a class. Our fault on that one.</p>
<p><strong>PHP is a great language to write this stuff in:</strong><br />
PHP is very useful because the level of knowledge you need to get a page up and running quickly is low. It&#8217;s also useful in our scenario because it&#8217;s awesomely easy to write vulnerable apps. Which is to say it&#8217;s easy to fuck up PHP. Meaning, I get excited when I see a PHP app on a gig. Therefore, please write more PHP.</p>
<p><strong>Number of exercises/challenges is key:</strong><br />
If you&#8217;re running challenges/puzzles for people who have had hands on penetration testing experience, you need a lot of content. Take how many challenges you think you&#8217;ll need, now double it and add 10 to that number. All of our students were smart, most had some offense experience, a few were studs. The gentleman who ended up winning had about 30 minutes of time left after completing all our challenges minus one. Ideally I would have preferred he had several more exercises to choose from to keep him occupied. Counting the exercises from lecture, I think we had around 50 total exercises/challenges/puzzles for students to complete.</p>
<p>In our <em>Introduction to Python</em> section we had the students create a basic brute force script as the culminating exercise. As a bonus exercise those students who were comfortable enough with Python to skip our review had the option of solving additional problems to incorporate more features into their script.</p>
<p><strong>Exercises/challenges should be functional apps whenever possible:</strong><br />
I created a small web application for the course that functioned as a simple RFC lookup app. You could give it an RFC number and it would spit out the corresponding RFC text. It&#8217;s simple enough to illustrate the bug we wanted without forcing the students to bug hunt too long, but it had enough functionality to give the impression that you might find it on a gig. Your application has to do something more than just be vulnerable. The attention to little details like using free templates, customizing CSS, etc give the class a more polished and satisfying feeling.</p>
<p><strong>Holy VMs Batman:</strong><br />
We made the decision early on that the VMs would be instructor controlled and the students would receive plain Linux laptops. I think at final count we had over 20 VMs that powered the entire class. On our next class iteration we&#8217;ll undoubtedly have 10-15 more VMs. We had five instructor laptops running the class at the start and we ended up with one more when Matias rotated in. Things got a bit crowded on our table and we were always tripping over each other to get to the VM we needed. A minirack may be the way to go next year, the <a href="http://www.whitewolfsecurity.com">White Wolf Security</a> guys have used this setup to good success. Talking with our IT guys it seems like we can put together a portable 14U rack with networking, power and three servers for under $10k.</p>
<p><strong>Make a standard VM:</strong><br />
Most of our VMs were a Ubuntu 11.10 server based LAMP stack, all the exercises were written to run on that platform (with few exceptions) so if one VM died we could take 10 minutes and port an exercise over to another laptop or VM if needed. Don&#8217;t forget to change the VM&#8217;s MAC in VMWare if you&#8217;re just doing a straight copy. Daily snapshots are another good step towards winning.</p>
<p><strong>Have detailed install instructions:</strong><br />
I had a bunch of folks helping out by writing exercises. One of my rules from the get-go was that I had to be able to install your exercise in under 5 minutes. If your exercise required a DB, you needed to provide me either a SQL dump or a .py to populate the DB. I needed complete set up instructions including all the package names for your dependencies and anything that had to be compiled from source. We definitely had a few things die on us during or before class, so having this information handy let us manage that crisis pretty readily. Solutions in the form of Python scripts (where appropriate) were also required so we could easily test and spot problems in the installed exercise.</p>
<p><strong>Don&#8217;t use Wireless:</strong><br />
It is a ridiculous pain in the ass to fix and debug. Especially if your channel space is really crowded. If you&#8217;re using Linux laptops the wireless drivers, utilities and options are confusing for mere mortals. Bring two thick rolls of gaff tape, enough CAT5 to rig Carnegie Hall, a switch, and call it done. We also learned the hard way that you need to contract the hotel&#8217;s IT to have your port live, labeled and configured to your spec two days before your class starts.</p>
<p><strong>Stuck on creating exercises?</strong><br />
Writing apps around a particular vulnerability class can be tough, afterall there are only so many ways to write up command injection. No problemo! Head on over to exploit-db, install an appropriately licensed vulnerable application but tweak it enough such that the exploit doesn&#8217;t work out of the box. This can be as simple as adjusting the install path, mangling the version string, tweaking the app so that whatever sanity checks the exploit does will fail, or in some cases removing a dependency to break the app somewhat. </p>
<p><strong>Nerds love nerdy culture references:</strong><br />
This is always a big hit. A little laughter in unexpected places can relieve stress for students, the key is balancing your use of that device such that it doesn&#8217;t turn into a VH1 nostalgia marathon. Over all our content I think we referenced: Muppets, Futurama, Ghost in the Shell, Seasame Street, number theory multiple times, Jurassic Park, The Matrix, lolcats (sparingly), 90s era rap, Batman, Monty Python and a few more that I&#8217;m obviously forgetting. Security can be a humorless industry (have you read a NIST document?) so having a bit of fanservice and giggles will make your class all the better.</p>
<p><strong>Kit Bag:</strong><br />
Some things to bring with you: spare gaff tape, duct tape, multi-tool, scissors, box cutter, cross over cable, electronics screw drivers, CAT5 crimp tool, Aspirin, Advil, Immodium AD, band-aids, fat sharpie, 2-3 screw drivers with multiple head attachments, $10 in quarters for caffeine, label maker, Cyanide capsules in case of capture. </p>
<p>This post was brought to you in part by: <a href="http://www.youtube.com/watch?v=ImKY6TZEyrI">Mazzy Star &#8211; Fade Into You</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=187&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2012/01/19/stuff-i-learned-while-writing-a-ctf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Review: A Bug Hunter&#8217;s Diary by Tobias Klein</title>
		<link>http://alexmcgeorge.wordpress.com/2011/11/18/book-review-a-bug-hunters-diary-by-tobias-klein/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/11/18/book-review-a-bug-hunters-diary-by-tobias-klein/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 18:52:00 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[A bug hunter's diary]]></category>
		<category><![CDATA[tobias klein]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=178</guid>
		<description><![CDATA[This book is good, but it is good in a very particular way. What follows is a read-through review, I didn&#8217;t work through all the code examples. Word Count: ~670 If you&#8217;ve ever read a successful pen-test report for a gig you weren&#8217;t on and found it both satisfying and fascinating, this book will give [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=178&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This book is good, but it is good in a very particular way. What follows is a read-through review, I didn&#8217;t work through all the code examples.</p>
<p>Word Count: ~670<br />
<span id="more-178"></span><br />
If you&#8217;ve ever read a successful pen-test report for a gig you weren&#8217;t on and found it both satisfying and fascinating, this book will give you that same experience. Mr. Klein does not set out to write a book which is a tutorial or an exhaustive manual on the processes of finding security bugs in software. He does not spend much time talking about all the code he read that <em>was</em> secure and chasing intuitions that proved to be wrong, which is part and parcel of being a bug hunter. What he does do, and does very well, is draw a straight line from source or assembly to the beginning stages of a viable exploit. It is a very satisfying book to read and there are great bits of knowledge to be had.</p>
<p>In the introduction the author makes clear that in Germany publishing exploit code (even for dead bugs) is illegal, so we can not fault him for not including any. What is included at the end of each section is just enough code to gain control of EIP or its equivalent. While control of EIP is necessary and in modern exploit development it&#8217;s still one of the first milestones towards a shell but there can now be so many steps afterwards too. I would have enjoyed the complete path from bug to shell; it&#8217;s unfortunate that the laws are what they are.</p>
<p>If you view exploit development as a puzzle to be solved then the tidy solutions in this book are pretty cool. And if you have any interest in hands on bug hunting the author&#8217;s experiences and methods will probably help inform your practice. I don&#8217;t spend all my time in a debugger or disassembler but I&#8217;m familiar enough to know what options they come with and what they allow you to do. Mr. Klein included just enough detail to let the reader know how he was using those tools but didn&#8217;t dwell on explanations from the ground up. This same economy of detail applies to memory management mechanics as well. </p>
<p>All in all I thought the author&#8217;s choice of bugs was good, from the very straight forward VLC .ty overflow through some of the work in kernel land. They all provided good case examples and demonstrated that there are still bugs of all levels of difficulty out there. Even implementing a dumb fuzzer (for the iPhone exploit) can find serious bugs. You don&#8217;t have to be Charlie Miller or Ben Nagy to get good results from fuzzing.</p>
<p>One of the most intriguing things for me was looking at his timelines for finding a bug, reporting it and when a patch is issued. Particularly the Solaris local (CVE-2008-0568) which he had for 471 days prior to Sun releasing a patch, over one and a quarter years. There were a lot of vendors/teams who released patches quickly CVE-2009-0385 was patched by the FFmpeg team in 2 hours. But the long lasting bugs, the operating system bugs, those are good food for thought. Who else had this? Where would they have likely used it? Where would I have used it?</p>
<p>In summary, the book is good. The author&#8217;s experiences are enjoyable, the technical detail clear, the tools and methods explained in enough depth. It&#8217;s good reading and a good addition to a technical library. The price is a little steep for a brief book but that&#8217;s balanced somewhat by the density of the content. If you&#8217;re on the fence about the price, browse this book at your local brick and mortar before committing to a purchase. </p>
<p><b>Full Disclosure</b>: I received a review copy of this book from the publisher via my employer. I have no financial interest in the book and no personal ties to the author. Though he does seem like a swell guy.</p>
<p>This review brought to you by: <a href="http://nostarch.com">The fine folks at No Starch Press</a> in partnership with <a href="http://www.youtube.com/watch?v=jrKnb996nF4">Hank III &#8211; Shades of Black</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=178&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/11/18/book-review-a-bug-hunters-diary-by-tobias-klein/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Review: Reamde by Neal Stephenson</title>
		<link>http://alexmcgeorge.wordpress.com/2011/10/12/book-review-reamde-by-neal-stephenson/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/10/12/book-review-reamde-by-neal-stephenson/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 16:22:54 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Pen-Testing]]></category>
		<category><![CDATA[anathem]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[cryptonomicon]]></category>
		<category><![CDATA[neal stephenson]]></category>
		<category><![CDATA[reamde]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=151</guid>
		<description><![CDATA[I recently finished the latest Neal Stephenson book, Reamde. I really enjoyed it, stylistically I think it is most similar to Cryptonomicon and is definitely an improvement (for me) over Anathem. The book does incorporate some realistic hacking plot devices to further the story. All of my complaints are really pedantic, which is to say [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=151&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently finished the latest Neal Stephenson book, <em>Reamde</em>. I really enjoyed it, stylistically I think it is most similar to <em>Cryptonomicon</em> and is definitely an improvement (for me) over <em>Anathem</em>. The book does incorporate some realistic hacking plot devices to further the story. All of my complaints are really pedantic, which is to say Stephenson executed the hacking bits very well and they do not detract from the story. My review is going to focus on those pieces of the novel. A more in depth technical look that probably contains spoilers is below.</p>
<p>Word Count: ~1000<br />
<span id="more-151"></span><br />
The first plot device used is a conversation between the characters Peter and Wallace which starts on page 73. Peter is selling Wallace a database of credit card information he obtained via his experiences in his side job as an above board penetration tester. He claims to have used a SQL Injection bug in a website which allowed him to install a rootkit and thus maintain access to the server. Though he discovered this flaw on a legitimate gig, he used the knowledge to exploit other websites designed by the same 3rd party in the same way.</p>
<ul>
<li>SQLi bugs are ridiculously common by almost any measure, so that&#8217;s a perfectly appropriate attack.</li>
<li>To install a rootkit though, you typically need some kind of shell access. Depending on the flavor of the underlying SQL DB this can be relatively straight forward or impossible. So shell access is typically <em>another step</em> which would net you a shell with the privileges of either the SQL DB or the webserver.</li>
<li>The other piece required to install a rootkit is as the name implies, root. Typically SQL and httpd do not run as root and any privileges you inherited from those services would be insufficient for this attack. You would therefore need to run a local privilege escalation attack.</li>
</ul>
<p>Ifs and butts: The scenario is perfectly reasonable, I have used an SQLi bug as the first step in a path to root a webserver numerous times. There are a ton of wonky webserver configurations out there so it&#8217;s possible you may be able to leverage SQLi to drop instantly to a root shell, but that is not typical. My issue is that he left out a few steps.</p>
<pre>                                  ------</pre>
<p>The second plot device used is a description of the reamde virus itself, which starts on page 119. In briefing Ivanov, Zula discloses that the virus leverages a buffer overflow in Outlook to run code on the target system and achieve root level access.</p>
<ul>
<li>Outlook is very common, it has had buffer overflows in the past, no stretch in the imagination here.</li>
<li>Again, typically you cannot transition from the user running Outlook directly to Local/System without some kind of additional step.</li>
<ol>
<li>I will grant that most users would be running their primary account as the machine&#8217;s administrator</li>
<li>In Windows XP and 2k it was possible to install a service as an administrator automagically which you could then use to inherit Local/System.</li>
<li> Given the description of the game and its performance (specifically in contrast to WoW), I would argue that the hardware requirements alone would mean that Vista/Win7 era machines would be required. And high ones as that. The security measures in place, even as an administrator prevent you from easily transitioning into running code as Local/System, you need a privilege escalation attack.</li>
</ol>
<li>Zula mentions that the virus is able to abuse vulnerability in Outlook by virtue of an addon bridge between T&#8217;Rain and the Outlook calendar to manage in game events. I&#8217;m not entirely clear on what the infection vector would be, it seems reasonable that in order to get the kind of infection numbers they talk about the vulnerability would have to be in the functionality related to this Outlook checking for a conflicting appointment. So you&#8217;d get something like:</li>
<ol>
<li>Some kind of mass invite procedure is available</li>
<li>You go to some populated area with a bot and start inviting everyone you see</li>
<li>The invite contains some string which is passed to Outlook, which then checks if you&#8217;re free and in the process of doing so the string triggers the vulnerability</li>
<li>Therefore the vulnerability would have to be reachable pre-acceptance</li>
</ol>
</ul>
<p>Ifs and Buts: Again this scenario is perfectly reasonable but a step is missing. While they specifically mention this vulnerability in Outlook was previously known and patched, I think a more interesting target would be whatever fictional software T&#8217;Rain used to manage the addons in use by the users (analogous to the Curse updater for WoW). But this is neither here nor there really.</p>
<pre>                                  ------</pre>
<p>Finally, when arriving in China Zula, Sokolov and Csongor convince Ivanov the best way to find the location of virus writer is by driving around Xiamen and taking a survey if IP addresses. IP addresses in close proximity (i.e. netblock) to the IP of the virus writer should correspond to the physical proximity of the computer with the IP they&#8217;re after.</p>
<ul>
<li>First and foremost, don&#8217;t want to get your door kicked in by Russian Blackwater? Two words: <b>anonymous proxy</b></li>
<li>I&#8217;ll admit my experience with ISP style networking is fairly limited but I don&#8217;t think their assumption that geographic area and IP proximity is going to work with the precision they&#8217;re thinking.</li>
<li>Talk about labor intensive, you&#8217;re assuming there&#8217;ll be a ton of open APs using the same ISP, those that aren&#8217;t open you&#8217;d have to see if you can buy access to (i.e. internet cafe)</li>
</ul>
<p>Ifs and Buts: I recognize that this activity was central to the plot as it gave Sokolov a chance to reconnoiter the area, introduces the Yuxia character and eventually introduces us to Marlon. But given the amount of money Ivanov is willing to throw at this problem, it seems much easier to just find an engineer at the ISP and buy the answer. Or just have Peter and Csongor hack into the ISP and steal the answer. </p>
<pre>                                  ------</pre>
<p>Coming soonish: at least one more review</p>
<p>This post brought to you by: <a href="http://www.youtube.com/watch?v=3sMhjHAk458">Lyrics Born &#8211; Bad Dreams</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=151&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/10/12/book-review-reamde-by-neal-stephenson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Personality Traits for Pen-Testers</title>
		<link>http://alexmcgeorge.wordpress.com/2011/08/29/personality-traits-for-pen-testers/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/08/29/personality-traits-for-pen-testers/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 16:40:00 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Pen-Testing]]></category>
		<category><![CDATA[Psychology]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=136</guid>
		<description><![CDATA[I recently had occasion to think about some personality traits that make can good pen-testers. Words: 486 This post isn&#8217;t going to address what kind of knowledge one needs to succeed in this field, that&#8217;s largely determined by who you&#8217;re working for and what you&#8217;re doing for them. The offense oriented security industry is becoming [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=136&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had occasion to think about some personality traits that make can good pen-testers.</p>
<p>Words: 486</p>
<p><span id="more-136"></span><br />
This post isn&#8217;t going to address what kind of knowledge one needs to succeed in this field, that&#8217;s largely determined by who you&#8217;re working for and what you&#8217;re doing for them. The offense oriented security industry is becoming increasingly specialized as the tools to build (and break) software become more complex and interconnected. Acquiring domain specific knowledge is straight forward compared to altering some of the key pieces of what makes you, you. Therefore I think it&#8217;s important to consider more about a person than just their knowledge of the field.</p>
<p>Ultimately I decided on two main traits:</p>
<p><b>Curiosity</b> is so important because it can be a powerful motivator. Curiosity often compels discovery; discovery of the unknown is the fundamental goal of any penetration test. The uncovered issue may even be known to the client but rarely are all the implications. Curiosity is the catalyst for the breakthrough &#8216;what if?&#8217;</p>
<p><b>Persistence</b> is the other side of this coin. When viewed beside curiosity, persistence is the enabler of continued curiosity. Finding esoteric bugs is often monotonous work, persistence enables curiosity to remain even after you&#8217;ve explored 90% of the seemingly identical paths available to you. It is difficult trait to cultivate and that makes the people who have it very valuable, but only in conjunction with curiosity can you harness it effectively. Computers are very good at being persistent, less so at curious and imaginative.</p>
<p>Back in my heady undergraduate days I had a research professor who stated that &#8220;obsession is not a character flaw in a scientist&#8221;. I think that statement is largely true and even somewhat applicable to penetration testing, this industry obviously makes very good use of the scientific method and logic. </p>
<p>The problem with obsession and where it crosses from character flaw into illness is when you can&#8217;t turn it off. Using obsession to fuel persistence can be dangerous. I have to think many of us have ridden that wave until the small hours of the night or across days chasing and finally hitting the crest only to be followed by a sort of post partum depression. This pattern is <a href="http://www.flickr.com/photos/skyzyx/249270409/">addictive</a>, such is the nature of obsession. So much of offense work has to be done on a very strict time budget that being able to disengage and look for something new is absolutely essential, obsession makes that difficult.</p>
<p>Each team has different members that play different roles, similar traits may drive two people towards two different roles. Certainly there are many possible combinations of players on a winning team. I think curiosity paired with persistence are general enough yet simultaneously central enough to, what I consider, the proper mindset of a good player. Food for thought next time you&#8217;re involved in an interview.</p>
<p>This post is brought to you by: <a href="http://www.youtube.com/watch?v=8dYOkEjFY_g">White Zombie &#8211; Blood, Milk and Sky</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=136&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/08/29/personality-traits-for-pen-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Ethical Question: 0&#215;1</title>
		<link>http://alexmcgeorge.wordpress.com/2011/08/15/ethical-question-0x1/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/08/15/ethical-question-0x1/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 17:01:50 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Ethical Questions]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=117</guid>
		<description><![CDATA[Ethical Questions for Pen-Testers: 0&#215;1 Topic: Information Disclosure Goal of this post: Something to ponder, hopefully a recurring series Word Count: 392 Scenario: You&#8217;re on a social engineering gig and your goal is to get an employee&#8217;s password reset to your client&#8217;s mail server. In order to get a password reset you have to provide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=117&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ethical Questions for Pen-Testers: 0&#215;1</p>
<p>Topic: Information Disclosure<br />
Goal of this post: Something to ponder, hopefully a recurring series<br />
Word Count: 392</p>
<p><span id="more-117"></span><br />
<i>Scenario</i>:<br />
You&#8217;re on a social engineering gig and your goal is to get an employee&#8217;s password reset to your client&#8217;s mail server. In order to get a password reset you have to provide some personal details about the employee while you&#8217;re impersonating them to the help desk: social security number, emergency contact, etc. You&#8217;ve decided to focus on one specific employee, Bill, as some of his information has been easy to find. After a few hours of progress you&#8217;re unable to find the final piece, his social security number. During your investigation you did find who his emergency contact is, his partner Jeffery. You are also aware that Bill isn&#8217;t out to his office <sup>1</sup>.</p>
<p>Based on the information you WERE able to find you could get a password reset for his personal gmail account, within you are confident you will find tax returns or other data likely to contain his social security number. The scope of your gig does not specifically cover this type of action but because you&#8217;ve worked with this customer so many times in the past you&#8217;re sure they won&#8217;t be upset.</p>
<p>The client wants a dossier on each employee you decided to impersonate. Bill is not evil or a danger to anyone in any way.</p>
<p><i>Questions</i>:<br />
1) Do you specify the relationship Bill has with his emergency contact in the dossier?<br />
2a) Do you break into Bill&#8217;s personal email?<br />
2b) What if you could MITM his login credentials and he&#8217;d never know?<br />
3) Assume you were able to get the SSN in another way, do you include the full number in the report? Your client has no reason to know this number as they are not the HR department.<br />
4) Do any of your answers change if you are working for your government?<br />
5) What is the lowest amount of money required for you to answer yes to questions 1 and 2; assuming you do not have Bill&#8217;s consent.</p>
<p><i>Answers</i>:<br />
I&#8217;d prefer if you kept them to yourself or at any rate not post them as comments. Clarifying questions are welcome.</p>
<p>This post brought to you by: <a href="http://www.youtube.com/watch?v=LloIp0HMJjc&amp;ob=av2n">Hugo &#8211; 99 Problems</a></p>
<p><b> [1] </b> If the gay part influences your decision, just substitute Jeffery with Jennifer. She and Bill are coworkers and are having a relationship. Romantic relationships between coworkers are frowned upon by management.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=117&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/08/15/ethical-question-0x1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Certifications and hats</title>
		<link>http://alexmcgeorge.wordpress.com/2011/08/12/certifications-and-hats/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/08/12/certifications-and-hats/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 15:13:06 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Certifications]]></category>
		<category><![CDATA[Lingo]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=40</guid>
		<description><![CDATA[Most certifications are crap, the hat color thing is ridiculous. Word Count: 544 When I interviewed for my current gig I was told &#8220;we don&#8217;t give a shit about your certifications, we care about what your abilities are.&#8221; And that&#8217;s a pretty good tl;dr summary of how I feel. The formula for a good certification [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=40&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Most certifications are crap, the hat color thing is ridiculous.</p>
<p>Word Count: 544<br />
<span id="more-40"></span></p>
<p>When I interviewed for my current gig I was told &#8220;we don&#8217;t give a shit about your certifications, we care about what your abilities are.&#8221; And that&#8217;s a pretty good tl;dr summary of how I feel. The formula for a good certification is simple: hands on skill tests. We do that with the <a href="http://www.immunityinc.com/services-cnop.shtml">NOP Cert</a> and it is a surprisingly good bullshit detection mechanism. If a cert isn&#8217;t mostly a hands-on exercise I&#8217;m not going to pay it much mind.</p>
<p>Certifications are not without their place, though. If you get assigned to manage a technical team of geeks and don&#8217;t have a security background then getting a certification is not a bad idea. It will at the very least give you the vocabulary to communicate with the team on some level. If you want to <strong>be</strong> part of that technical team, your time is very likely better spent elsewhere. The same generally holds true for employers. If you&#8217;re building a pen-testing team and are exclusively certification focused it&#8217;s a warning sign for me that: you don&#8217;t know what you&#8217;re doing and/or you&#8217;re looking to suckle at the .gov teet. Which isn&#8217;t always bad but keeping in mind that anything that&#8217;s legit cool for .gov/.mil <a href="http://blackhats.com/infosuck/0x0024.png">you&#8217;ll never hear about anyway</a>.</p>
<p>Enough time and effort is spent by the security community on defining the mythology of your hat color that you&#8217;d think we were an extension of the Catholic church<sup>1</sup>. There&#8217;s been some discussion recently about how some security companies are becoming indistinct from blackhats. I think a good security company, especially a consultancy, should have the ability to operate as much like a blackhat as the customer requires. I&#8217;ll leave the particular ethical considerations up to the reader to ponder. If we&#8217;re all <a href="http://blackhats.com/infosuck/0x001b.png">whores</a>: everyone has a line and everyone has a price to cross it. Ask me for my reasonable rates on child murder!</p>
<p>The distinction between hat colors is difficult to define and probably doesn&#8217;t have a real clear shared meaning outside the nerd pack you drink beer with on Thursdays (trivia night). If we&#8217;re all a shade of grey, what&#8217;s the point? Here are the 2.5 questions I care about:</p>
<p>1) Are you mostly offense or defense oriented?<br />
2) Are you engaging in any ongoing illegal activity?<br />
a) If so, specify.</p>
<p>I&#8217;d wager that if you asked the people in the security industry who have an impressive skillset if they&#8217;ve ever broken a computer crime law (minus file sharing) most of them would raise their hands. Your definition and my definition of &#8216;impressive&#8217; may differ but regardless it will be a non-trivial portion.</p>
<p>Fun followup: I saw a disclosure recently where someone said (paraphrasing) &#8220;I&#8217;m a white hat so I didn&#8217;t fuck with him&#8221;. Actually what you meant to say is &#8220;I&#8217;m not a dickhead.&#8221; If I use an XSS to set a buddy&#8217;s profile to &#8220;I eat a bowl of dicks before bed time&#8221; that doesn&#8217;t have anything to do with hats; unless you&#8217;re wearing a strap-on.</p>
<p>This post has been brought to you by: <a href="http://www.youtube.com/watch?v=l-MbZQBYW20">Dubstep &#8211; woobwobobWOOOBWOBOBOBOB zzzkzktktk WOOBWOOBWOOB</a> and <a href="http://wiki.teamfortress.com/wiki/Hats">the Mann co. hat store</a></p>
<p><strong> [1] </strong> &#8211; Though not without its flaws I do admire the absurdity of an organization with hierarchical headgear.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=40&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/08/12/certifications-and-hats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Commercial Exploits: Documentation</title>
		<link>http://alexmcgeorge.wordpress.com/2011/08/01/commercial-exploits-documentation/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/08/01/commercial-exploits-documentation/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:47:29 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Exploits]]></category>
		<category><![CDATA[Pen-Testing]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=51</guid>
		<description><![CDATA[I look at exploits a lot in my day-to-day, I also QA a lot of exploits both internally and for others. This is part 2 of a series on what makes a good commercial exploit. Word Count: ~500 Penetration Testing Theory 101: Regardless of you opinion on the value and efficacy of defense products (AV, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=51&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I look at exploits a lot in my day-to-day, I also QA a lot of exploits both internally and for others. This is part 2 of a series on what makes a good commercial exploit.</p>
<p>Word Count: ~500<br />
<span id="more-51"></span></p>
<p>Penetration Testing Theory 101: Regardless of you opinion on the value and efficacy of defense products (AV, IDS/IPS, etc), the one trump card that defense always holds is full content packet captures. A lot of solutions are being brought to bare that make this much more scalable and easy to implement. You don&#8217;t want to be in a position where your target calls in <a href="http://taosecurity.blogspot.com/">someone who knows what the fuck they&#8217;re doing</a> to pour over their logs, but that may inevitable. From an attacker perspective the answer is simple: make your important exploits count and use them as infrequently as possible. Give your adversary as little to go on as you can, make their jobs as difficult as you can.</p>
<p>Documentation speaks directly to the above. If you&#8217;re playing this game for high stakes you need to be aware of all the methods, details and potential consequences of an exploit before you use it. Documentation informs your decision on when to use the exploit.</p>
<p>All exploits:</p>
<ul>
<li>Exploit type</li>
<li>When was this written?</li>
<li>If there&#8217;s a patch, when was it released?</li>
<li>What platforms/versions have been tested?</li>
<li>Is this localization dependent? If so what languages have been tested?</li>
<li>Is this one shot or is it repeatable?</li>
<li>What&#8217;s the success/failure ratio?</li>
<li>What happens in a crash scenario?</li>
<li>Is anything touched on disk? If so where and what?</li>
<li>What if any logs are generated by the service/application?</li>
<li>Does this trigger any of the major AV products? Heuristics?</li>
<li>What if any alerts are generated by the major IDS players?</li>
<li>What does this look like on the wire?</li>
<li>Is obfuscation possible? <sup>1</sup> Is it implemented?</li>
<li>Is encryption possible? Is it implemented?</li>
<li>What debugging and troubleshooting options do I have?</li>
<li>How well is the exploit code documented?</li>
<li>All the boring CVE, reference, CVSS, OSVDB reference data if it applies</li>
<li>Are there any &#8220;gotchas&#8221; with this exploit?</li>
</ul>
<p>0day specific considerations:</p>
<ul>
<li>Who else knows about this?</li>
<li>Are we reusing any code?</li>
<li>Are we using a method only we know about?</li>
<li>How was this bug found? <sup>2</sup></li>
<li>Did we buy this? Or find it ourselves?</li>
<li>Do we know of anyone else doing research in this direction?</li>
</ul>
<p>This kind of data is a pain in the ass to track but it makes your exploit so much more valuable. It will limit how extensively I have to test it and it gives me a clear picture of where I can use it. Hopefully this gives you something interesting to ponder on your drive home from work.</p>
<p>This post is brought to you by: <a href="http://www.youtube.com/watch?v=dEm8cleyTlE">Skinny Puppy &#8211; Worlock</a></p>
<p><b> [1] </b> Fortunately, most forensics teams have a finite amount of time to dissect what you did, drag that out as far as you can. Just because they figured out what you did (two weeks later) doesn&#8217;t mean they win.<br />
<b> [2] </b> This may seem an odd one but it can speak to how long your 0day may remain unfound. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=51&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/08/01/commercial-exploits-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Commercial Exploits: Capabilities</title>
		<link>http://alexmcgeorge.wordpress.com/2011/07/25/commercial-exploits-capabilities/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/07/25/commercial-exploits-capabilities/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:49:01 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Exploits]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=64</guid>
		<description><![CDATA[I&#8217;m in a rare position in that I get to see and use a lot of professionally written exploits as part of my job. Not all exploits are created equal, these are my thoughts on what traits a commercial exploit needs to have. Part one of at least two. Word Count: 488 I expect a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=64&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in a rare position in that I get to see and use a lot of professionally written exploits as part of my job. Not all exploits are created equal, these are my thoughts on what traits a commercial exploit needs to have. Part one of at least two.</p>
<p>Word Count: 488<br />
<span id="more-64"></span></p>
<p>I expect a fair amount of the people who write their own exploits are going to look askance at my opinion. It&#8217;s hard to argue with 100 lines of self written Python that let you topple a 2k8 server. Minimalism is a good thing, you don&#8217;t want to over engineer your tool. But commercial exploits need to be more robust than what lives in your ~/secret/0days/ directory.</p>
<p>One of the realities of the commercial exploit game (from where I sit) is that you&#8217;re typically not selling to other people who love nothing more than kernel reversing. They exist but are atypical. When you sell a functional exploit the less customization and configuration for your customer, the better. Otherwise they have to spend their time (money) on getting the bloody thing to work. Its been my experience that most people who wield commercial exploits professionally (and legally) never look at the source. Here are some capabilities to consider:</p>
<p><strong>Target Coverage</strong>: The exploit should work against the maximum number of OS, language<sup>1</sup> and vulnerable software version combinations with the minimum number of distinct payloads. When I go to use your exploit I want simple targeting. Example: The Windows version will work against WinXP -&gt; Win7 without any additional configuration required. I recognize this isn&#8217;t always possible but it&#8217;s something to strive towards.</p>
<p><strong>Modularity</strong>: Sometimes you worry about what your &#8216;signature on the wire is&#8217;. If you complete a task in the same way enough times it starts looking familiar to observers. Have a favorite ROP chain that you haven&#8217;t seen anywhere else? Be careful of over use. Using your IRC nickname to construct your padding? Probably a bad idea.</p>
<p>Easily swapping parts of the exploit in and out when possible is a nice feature to have. If you can get 9/10 with the <a href="http://www.immunityinc.com/downloads/APT_kiwicon.pdf">pray after free</a> technique it might make sense to have that as an option in addition to doing it <em>The Right Way</em> <sup>TM</sup>. Further, having an easy ability to swap in callback techniques and automate post exploit actions (like disable AV) is also a significant boon.</p>
<p>Sometimes looking like the Chinese government works in your favor. This is applicable certainly if you&#8217;re trying to evade IDS (or to trigger it explicitly). If you&#8217;re playing big league ball not giving forensics teams a smoking gun, &#8216;X is the only person who exploits this bug this way&#8217;, is a concern.</p>
<p><strong>Documentation</strong>: This has enough meat for a whole separate post. SPOILER: It&#8217;s important.</p>
<p><strong>Integration into a Framework</strong>: Again enough meat for another post, I&#8217;m trying to focus on what&#8217;s in the actual exploit executable (or script) rather than capabilities of a framework.</p>
<p>This post brought to you by: <a href="http://www.youtube.com/watch?v=V-y2oQlszZE">Mos Def and Diverse &#8211; Wylin&#8217; Out (Kutmasta Kurt rmx)</a></p>
<p><strong> [1] </strong> Explanation of MS11-056, only able to be triggered on Chinese-Japanese-Korean Windows <a href="http://j00ru.vexillium.org/?p=932">http://j00ru.vexillium.org/?p=932</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=64&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/07/25/commercial-exploits-capabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Coding for Death: Appendicitis</title>
		<link>http://alexmcgeorge.wordpress.com/2011/07/05/coding-for-death-appendicitis/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/07/05/coding-for-death-appendicitis/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 16:37:35 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=48</guid>
		<description><![CDATA[Some notes for discussion Word Count: 283 So this has generated a fair amount of feedback and interest on the twitters and internets. I&#8217;ve got some more comments to sift through but unfortunately I&#8217;m teaching all day today so I won&#8217;t be back until early evening EST. I&#8217;ve seen some discussion crop up in various [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=48&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some notes for discussion</p>
<p>Word Count: 283<br />
<span id="more-48"></span></p>
<p>So this has generated a fair amount of feedback and interest on the twitters and internets. I&#8217;ve got some more comments to sift through but unfortunately I&#8217;m teaching all day today so I won&#8217;t be back until early evening EST. I&#8217;ve seen some discussion crop up in various places (hello /r/netsec &lt;3, my new reddit account is: alemcg). Let me just give some additional comments. </p>
<p>1) I have done pen-testing work in hospitals before but nothing against embedded devices. I can&#039;t talk about what else I did which is why I haven&#039;t expanded on this post, it could be much longer with a ton more examples. I will say this: given my personal and professional experience looking at the computer security around hospitals I am not impressed.</p>
<p>2) My goal with this blog in general is to get people to think about security, kind of like the discussion you&#039;d have in a bar. Think of this blog as having a permanent preface of &quot;Have you ever considered&#8230;?&quot; I may be wrong, you may be wrong, but it is food for thought.</p>
<p>3) I don&#039;t like FUD, I agree that it&#039;s bad marketing juju. But talking openly about attacks, even theoretical ones I think is good. Where it turns into FUD is if I reference it for marketing purposes. It will take all of 2 seconds and google to figure out who I work for and what some of my roles are there. My job informs my view of these subjects and thus we&#039;re a package deal, that being the case I will do my level best not to make this a marketing effort. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=48&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/07/05/coding-for-death-appendicitis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
		<item>
		<title>Coding for Death: Exploits that can Kill</title>
		<link>http://alexmcgeorge.wordpress.com/2011/07/05/coding-to-death-exploits-that-can-kill/</link>
		<comments>http://alexmcgeorge.wordpress.com/2011/07/05/coding-to-death-exploits-that-can-kill/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 03:04:58 +0000</pubDate>
		<dc:creator>Alex McGeorge</dc:creator>
				<category><![CDATA[Exploits]]></category>

		<guid isPermaLink="false">http://alexmcgeorge.wordpress.com/?p=28</guid>
		<description><![CDATA[This is the story of how I (probably) could have used an Acrobat bug to kill my Dad. Word Count: ~890 Please see the correction to this article at the bottom of the page Citing prior work is important so let me be clear in stating this idea (killing someone via an exploit) isn’t mine [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=28&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is the story of how I (probably) could have used an Acrobat bug to kill my Dad.</p>
<p>Word Count: ~890<br />
<span id="more-28"></span></p>
<p><b>Please see the correction to this article at the bottom of the page</b></p>
<p>Citing prior work is important so let me be clear in stating this idea (killing someone via an exploit) isn’t mine nor is it particularly new. The first time I saw a realistic example of how hacking could be used to kill someone was in one of those <a href="http://amzn.to/l6mFci">Syngress <em>Stealing the Network: *</em></a> books where a character changed someone’s blood type in a hospital record. I doubt the idea started there either. That being said, what follows are my experiences and observations.</p>
<p>Back in 2005 Dad had his first  <a href="http://en.wikipedia.org/wiki/CABG">CABG</a> to do a quad bypass. Every year thereafter until his death in 2009 he would have cardiac incidents that would require an <a href="http://en.wikipedia.org/wiki/Angiogram">angiogram</a> or <a href="http://en.wikipedia.org/wiki/Angioplasty">angioplasty</a>. In that procedure essentially doctors snake a thin cable with various attachments through the femoral artery in your upper inner thigh up to your heart. From there they can take pictures from the inside of various structures or using different attachments put in stents, laser out plaque, write their initials, etc. To me that kind of technology is amazing and medical science is one of the things I always wish I knew more about. </p>
<p>At the time of this procedure everyone was finding out that the Acrobat implementation of Javascript had more lulz per line than the script for Blazing Saddles. After the operation the doctor brought us in to the operating suite to see the results. (patients aren&#8217;t typically unconscious for this procedure, nor is the room surgical sterile)</p>
<p>The machine that was controlling the wire being used for the angioplasty was being controlled in turn by a Windows XP desktop. While the doctor was going over the results I noticed the Adobe Acrobat icon in the systems tray. When the doctor was done I asked if I could take a closer look at the results, “help yourself just don’t touch anything”. So I looked at the version of Acrobat and saw it was something in the 7.x series. Sorry doc I couldn’t help myself.</p>
<p>The doctor and I then had this exchange (I’m paraphrasing):</p>
<p>Me: “So I see you’ve got Acrobat on here, do you use this to view patient data?”</p>
<p>Doctor: “Oh yeah, if a case gets referred to us the common practice is that the patient will come with a CD on which there are test results we look at during the procedure.”</p>
<p>Me: “And this machine also controls the catheter?”</p>
<p>Doctor: “To a degree yes”</p>
<p>Me: “Tolerances here being very important?”</p>
<p>Doctor: “Yes, very.”</p>
<p>I had packed my CANVAS development laptop. Having something to distract you (and a mild sedative) while waiting for loved ones to get out of surgery is a plan I can’t endorse enough. We had a very reliable exploit for CVE-2007-5659 which I had previously tested to work for the exact version of Acrobat they were using. </p>
<p>With a bit of custom development work, here is your attack scenario:</p>
<ol>1) Weaponize a legitimate PDF, repair memory such that Acrobat doesn’t crash out or reexec Acrobat on a benign PDF.</ol>
<ol>2) Escalate your way to Local System</ol>
<ol>3) Surgeons depend on the information provided to them by this machine to be exceedingly accurate, I could distort this data (how they are oriented in space for example) or just add a delay to the displayed image. Direct manipulation of the wire may have been possible.</ol>
<p>I am very confident that this would lead to an accident involving a laser drill and the inside of your heart. Which is to say, a bad accident. Here are some other fun things I learned on that visit:</p>
<ol>1) Some brands of portable vitals monitors have embedded webservers</ol>
<ol>2) To reduce potential tripping hazards, some medical gear uses wireless but only supports things like WEP and WPA1, it is a pain in the ass to type in complex keys on these devices</ol>
<ol>3) There are multiple LAN drops near every patient bed for the plugging in of the aforementioned devices</ol>
<ol>4) Automated pill dispensers are also typically networked (In my limited experience I have never seen one that wasn’t)</ol>
<ol>5) VNC is heavily used in a lot of hospitals</ol>
<p>This is the result of what I saw with my eyes and some internet research, not any probing of the hospital network.</p>
<p>So for an investment of say, $250,000 in equipment and maybe $250,000 in exploit development costs (5 devs, 4 months, $50k per) you could have yourself an arsenal of reliable exploits that would allow you to do whatever you wanted on these machines. Your exploits would go a long way: hospitals don’t replace most equipment that often, there is a lot of common equipment between hospitals, I don’t know of any forensics firm that specializes in medical equipment though they may exist.</p>
<p>For half a million dollars you can buy yourself a infinitely reusable weapons system that’s hard to detect, hard to defend against, and allows for you to not even be in the same room as your target. People are right to worry about SCADA hacking causing industrial accidents but those sorts of things are always so, messy. Neat to think about.</p>
<p>In closing I’m going to recognize and dedicate this post and this blog to my Dad, who encouraged and helped me become the curious, sneaky and devious character I am today.</p>
<p><b>Correction</b>: Friendly redditor sqrt7744 pointed out <a href="http://www.reddit.com/r/netsec/comments/ih4xo/coding_for_death_exploits_that_can_kill/c23rw4u">here</a> that my initial idea of an attack vector was probably not viable. I maintain that putting a malicious PDF on a patient&#8217;s record CD that&#8217;s viewed in the OR is a bad thing, but the vector from PDF -&gt; Death is not as clean cut (if it even exists) as I originally thought, though surely worth looking into. Also, sqrt7744 pointed out that the Syngress plot device about changing a blood type as also not likely viable, I can&#8217;t speak to hospital procedures so I don&#8217;t know how accurate that is. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexmcgeorge.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexmcgeorge.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexmcgeorge.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexmcgeorge.wordpress.com&amp;blog=24335782&amp;post=28&amp;subd=alexmcgeorge&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://alexmcgeorge.wordpress.com/2011/07/05/coding-to-death-exploits-that-can-kill/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45dcafe1f71a338b3b5b38c82979573a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">src2dst</media:title>
		</media:content>
	</item>
	</channel>
</rss>
