<?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>GNUCITIZEN &#187; pdp</title>
	<atom:link href="http://www.gnucitizen.org/author/pdp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gnucitizen.org</link>
	<description>Information Security Think Tank</description>
	<lastBuildDate>Mon, 12 Dec 2011 20:33:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Well Websecurify Runs on The iPhone</title>
		<link>http://www.gnucitizen.org/blog/well-websecurify-runs-on-the-iphone/</link>
		<comments>http://www.gnucitizen.org/blog/well-websecurify-runs-on-the-iphone/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 16:27:04 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[websecurify]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=6259</guid>
		<description><![CDATA[This is not necessarily news anymore since it was discussed on the Websecurify official blog but we are so excited about it that we could not hold ourselves from posting it here too.



The testing engine used in this particular version of Websecurify is optimized to run with the least possible amount of memory. The results of the scanner are as good as those produced by all other Websecurify variants although in some cases it may miss some statistically unlikely types of issues. [...]]]></description>
			<content:encoded><![CDATA[<p>This is not necessarily news anymore since it was <a href="http://blog.websecurify.com/2011/08/websecurify-for-iphone-preview.html">discussed</a> on the Websecurify official blog but we are so excited about it that we could not hold ourselves from posting it here too.</p>

<div class="screen"><object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/19U37T7F8Lw?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/19U37T7F8Lw?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></param></object></div>

<p>The testing engine used in this particular version of Websecurify is optimized to run with the least possible amount of memory. The results of the scanner are as good as those produced by all other Websecurify variants although in some cases it may miss some statistically unlikely types of issues. This is not directly and only applicable to the iPhone version. No! Similar tradeoffs are also present even in standard desktop/server based scanners although they are usually less visible and obscured behind tones of options. The bottom line is that the scanner not only runs natively on the iOS but also works as expected.</p>

<blockquote>Now this is exciting! Websecurify is the first in the world mobile web application testing technology.</blockquote>

<p>If you have any suggestions, recommendations or general feedback please do let us know. You can also <a href="https://spreadsheets.google.com/spreadsheet/viewform?formkey=dEFlRENtdnJKSTJaeC13TjhHaVduckE6MQ">participate</a> in the beta test program which will allow you to have a play with tool as we are polishing it for the official release.</p>

<p><em>The possibilities are endless.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/well-websecurify-runs-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuxnet</title>
		<link>http://www.gnucitizen.org/blog/stuxnet/</link>
		<comments>http://www.gnucitizen.org/blog/stuxnet/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 15:21:37 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[stuxnet]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=6246</guid>
		<description><![CDATA[I have been avoiding the topic about Stuxnet for quite some time, mainly because there were many others who spent the time to take the virus apart. However, here is a video, which I find rather amusing:



Wether this is the real deal or simply fear mongering, I simply don&#8217;t know. It is all speculations at the moment. [...]]]></description>
			<content:encoded><![CDATA[<p>I have been avoiding the topic about Stuxnet for quite some time, mainly because there were many others who spent the time to take the virus apart. However, here is a video, which I find rather amusing:</p>

<div class="screen"><iframe width="560" height="349" src="http://www.youtube.com/embed/7g0pi4J8auQ" frameborder="0" allowfullscreen></iframe></div>

<p><em>Wether this is the real deal or simply fear mongering, I simply don&#8217;t know. It is all speculations at the moment. The only thing we can say is that it is difficult to deny the fact that computers are important and whoever has control over them has control over people lives and can influence a lot of things including politics.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/stuxnet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Skydive</title>
		<link>http://www.gnucitizen.org/blog/skydive/</link>
		<comments>http://www.gnucitizen.org/blog/skydive/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 19:12:26 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[freefall]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[skydive]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3349</guid>
		<description><![CDATA[What is the best way to spend a quiet, weekend afternoon? &#8211; Jump off a perfectly working plane while 10,000 feet in the air.



On 5th of July 2009, the GNUCITIZEN team and friends came together to perform a skydiving gig. [...]]]></description>
			<content:encoded><![CDATA[<p><q>What is the best way to spend a quiet, weekend afternoon?</q> &#8211; Jump off a perfectly working plane while 10,000 feet in the air.</p>

<div class="screen"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/dw2SnTcbTKA&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dw2SnTcbTKA&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></div>

<p><em>On 5th of July 2009, the GNUCITIZEN team and friends came together to perform a <a href="http://www.gnucitizen.net/cmpgn/skydive">skydiving gig</a>. It has been two months since that day but memories are still as clear as yesterday.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/skydive/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Free Web Application Security Testing Tool</title>
		<link>http://www.gnucitizen.org/blog/free-web-application-security-testing-tool/</link>
		<comments>http://www.gnucitizen.org/blog/free-web-application-security-testing-tool/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 08:02:38 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[security scanner]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[web application security scanner]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3332</guid>
		<description><![CDATA[Automated Web Application Security Testing tools are in the core of modern penetration testing practices. You cannot rely 100% on the results they produce, without considering seriously their limitations. However, because these tools are so good at picking the low-hanging fruit by employing force and repetition, they still have a place in our arsenal of penetrating testing equipment.

These tools are not unfamiliar to modern day penetration testers. [...]]]></description>
			<content:encoded><![CDATA[<p>Automated Web Application Security Testing tools are in the core of modern penetration testing practices. You cannot rely 100% on the results they produce, without considering seriously their limitations. However, because these tools are so good at picking the low-hanging fruit by employing force and repetition, they still have a place in our arsenal of penetrating testing equipment.</p>

<p>These tools are not unfamiliar to modern day penetration testers. In fact, there are plenty of them to choose from, ranging from low-grade command line utilities to high-end frameworks. There are plenty of commercial tools as well some of which are a lot better, in terms of features and false-positives rate, when compared to open source alternatives. People often choose what they are more familiar with. I prefer to use tools that are right for the job without discriminating a particular operating system, platform, and style.</p>

<p>Without further ado, I would like to introduce to you yet another tool to compete in the market of automated web application security scanners (not only), released as part of our own <a href="http://www.websecurify.com">Websecurify</a> initiative. The tools is called Websecurify (big surprise) and it is written on the top of common web technologies, which provide significant benefit over other technologies used in open source and commercial alternative products.</p>

<p>Here are some of the key features of Websecurify:</p>

<ol>
<li>It is 100% open source, GPL, CC product, ready to benefit the open source movement</li>
<li>The engine employs technologies, such as Web Workers, from the latest HTML5 specs</li>
<li>Most of the code is written in JavaScript but many parts can be rewritten or extended with Python, Java and C</li>
<li>The core engine can be taken out from the binary bundles and used as part of self-defending web applications. I will talk about this soon.</li>
<li>The testing and reporting mechanisms are asynchronous. This means that the report is cooking while the test is performed. It also means that decisions are taken immediately, i.e. they are not scheduled.</li>
<li>The tool is cross-platformed thanks to xulrunner</li>
<li>Everything is written with extensibility in mind</li>
<li>It can be extended in pretty much the same way you can extend Firefox and Thunderbird</li>
</ol>

<p>There are many other features, which I am going to talk about soon.</p>

<p>At the moment the tool is only available as a MacOS DMG package and source code. The Windows and Linux versions will be released soon. In the future we are planning release all platform specific packages at the same time. Now is just an exception as we are mostly interested to get an early feedback. I am sure that that there will be a lot of bugs to fix and features to add/improve before we reach version 1.0.</p>

<p>Version 0.2 can be downloaded from <a href="http://www.websecurify.com">www.websecurify.com</a> or our <a href="http://code.google.com/p/websecurify/">source code repository</a>.</p>

<p><em>If you have any feedback or you would like to contribute to this project, please do let us know. We can use any help possible.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/free-web-application-security-testing-tool/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Breaking Into a Home With an iPhone</title>
		<link>http://www.gnucitizen.org/blog/breaking-into-a-home-with-an-iphone/</link>
		<comments>http://www.gnucitizen.org/blog/breaking-into-a-home-with-an-iphone/#comments</comments>
		<pubDate>Mon, 11 May 2009 11:27:16 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3211</guid>
		<description><![CDATA[This is going to be one of these quick posts which just makes you think what the information security landscape will be like in 5 years. Before I move on with my commentary, here is a video which is essential for you to watch.



Got the idea? No? Let me explain. What you see in the video above is an application for the iPhone which gives you detailed characteristics of properties (houses) in USA. [...]]]></description>
			<content:encoded><![CDATA[<p>This is going to be one of these quick posts which just makes you think what the information security landscape will be like in 5 years. Before I move on with my commentary, here is a video which is essential for you to watch.</p>

<div class="screen"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/rJfrdcbfXsc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rJfrdcbfXsc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></div>

<p>Got the idea? No? Let me explain. What you see in the video above is an application for the iPhone which gives you detailed characteristics of properties (houses) in USA. You can either search the map or just use your GPS coordinates to get information such as price of the house, number of floors, number of rooms, pictures taken from inside the house if the house was part of any register (letting agencies etc.) before you moved in, and other interesting information.</p>

<p>This is the kind of information gathering you see only in the movies. I won&#8217;t be surprised if future versions of these kind of applications can pool even essential blueprints which show not only how the house was constructed from architectural point of view but also show the power and gas grids and perhaps even any other wiring such as telephone, coaxial, etc.</p>

<p>All of this information is also available through easily accessible APIs. Perhaps these APIs are not publicly known but anyone who can run a sniffer most certainly can get hold of the URLs and their formats. Now mash this APIs with any other tool such as one that correlates IP address to physical location (not very accurate btw) or better yet a wardriving tool and you have a infowar machine in your pocket that will make any criminal organization proud of.</p>

<p>This was the main purpose of my <a href="http://www.gnucitizen.org/blog/for-my-next-trick-hacking-web20/">Web2.0 talk/research</a> from two years ago. Back then I made a very simple analogy which I would like to bring once again. When the email was invented nobody even suspected that it will be used for things such as spam and malware. That was something unimaginable. Today spam is the fastest growing criminal industry and malware delivered over email is the most successful one. In summary, we cannot foresee how a technology will be used/abused. That depends on the imagination of the people.</p>

<p>The same goes for the Web2.0 meme. The more we use it, the more ways we will find to abuse it. However it is also important to say that the more we use it the more accustomed we will become to it. Therefore, when the shit hits the fan there will be very little that we can do.</p>

<p><em>The reason I am bringing this up is not because I would like to start even more FUD around the Web2.0 mem but it is time for us to stop looking into the technical aspects and start thinking in terms of technologies that affect normal people. Sometimes, we just lack the realism and we fail to spot the obvious problems.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/breaking-into-a-home-with-an-iphone/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Extensions at War</title>
		<link>http://www.gnucitizen.org/blog/extensions-at-war/</link>
		<comments>http://www.gnucitizen.org/blog/extensions-at-war/#comments</comments>
		<pubDate>Sun, 03 May 2009 08:37:28 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[#nomorefreebugs]]></category>
		<category><![CDATA[cyber warfare]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3171</guid>
		<description><![CDATA[Oh yes, the digital battlefield is taking unusual shapes. The latest manifestation of cyber warfare is a conflict between the Adblock Plus and the NoScript extensions. The story goes that NoScript used some JavaScript tactics and, of course, some obfuscations in order to cripple the Adblock Plus functionalities. This attack was a response to Adblock Plus blocking NoScript ads which you see when you upgrade the extension, which as you know happens quite regularly, don&#8217;t know why. [...]]]></description>
			<content:encoded><![CDATA[<p>Oh yes, the digital battlefield is taking unusual shapes. The latest manifestation of cyber warfare is a conflict between the Adblock Plus and the NoScript extensions. The <a href="http://adblockplus.org/blog/attention-noscript-users">story goes</a> that NoScript used some JavaScript tactics and, of course, some obfuscations in order to cripple the Adblock Plus functionalities. This attack was a response to Adblock Plus blocking NoScript ads which you see when you upgrade the extension, which as you know happens quite regularly, don&#8217;t know why.</p>

<p>The conflict seems to be resolved now to one degree or another but it is interesting to observe the whole situation and also draw important conclusions. Therefore, I&#8217;ve got several points I would like to bring to the table:</p>

<ol>
<li>More examples of similar nature will follow. Keep an eye on Facebook, Apple AppStore, Firefox and other platforms that allow 3rd-party components to be displayed, downloaded and executed.</li>
<li><a href="http://www.gnucitizen.org/blog/firefox-malware/">As I mentioned before</a>, a malicious piece of JavaScript code (even an obvious obfuscation) can be quite easily smuggled into harmlessly looking Firefox extensions. If I may speculate, the situation is the same for other similar platforms.</li>
<li>Unless platform vendors do something about it, they could become the next hot spot for all sorts of interesting malware.</li>
</ol>

<p><em>It is also very interesting to see the extend to which extension developers will go in order to protect their userbase. After all, larger userbase equals more money. And with <a href="http://blog.trailofbits.com/2009/03/22/no-more-free-bugs/">more people looking to quickly cache in</a>, the battlefield is truly changing for better or worse.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/extensions-at-war/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exploit Sweatshop</title>
		<link>http://www.gnucitizen.org/blog/exploit-sweatshop/</link>
		<comments>http://www.gnucitizen.org/blog/exploit-sweatshop/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 12:04:47 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[0day]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[sweatshop]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3141</guid>
		<description><![CDATA[When I was playing/introducing the partial disclosure practice an year and something ago, I did get contacted by numerous dodgy characters willing to buy yet undisclosed vulnerabilities for substantial amount of money. Of course, requests of that nature were kindly ignored. I couldn&#8217;t believe that someone was willing to give me so much money for something I virtually spent 2-3 hours maximum to produce. [...]]]></description>
			<content:encoded><![CDATA[<p>When I was playing/introducing the partial disclosure practice an year and something ago, I did get contacted by numerous dodgy characters willing to buy yet undisclosed vulnerabilities for substantial amount of money. Of course, requests of that nature were kindly ignored. I couldn&#8217;t believe that someone was willing to give me so much money for something I virtually spent 2-3 hours maximum to produce.</p>

<p>Later on, during the CONFidence 2008 event in Krakow I met a bunch of people who claimed that they already sell exploits to various UK companies and the figures that they were making were outstanding. To give you a clue, given the pound dollar difference at that time, you could have made 6 times more than what ZDI and other similar programs can offer you for a top range exploit. This is already better than a top salary in UK.</p>

<p>Same year, different event&#8230;  I saw an interesting presentation by Robert McArdle from Trend Micro. The presentation was titled <q>Fighting web Based, Profit-Driven Threats</q>. On one of his slides, Robert commented that <q>cybercrime is becoming more profitable than the drug cartels</q>. Perhaps you wont be able to make as much money from carding as you might expect but you can do quite well selling visualized stuff, such as exploits and exploit toolkits.</p>

<p>Present times, DojoSec Monthly Briefings&#8230; Matthew Watchinski from Sourcefire VRT <a href="http://vimeo.com/4110571">talked</a> about a PDF 0day spreading around Xmas time. The exploit took a couple of good months for Adobe to fix it. The author sold it for 75K to a unknown 3rd-party in China according to Matthew. The vulnerability was also relatively easy to find and required very little experience to exploit.</p>

<p>All of this leads to the very obvious conclusion which is that at present times cybercrime is a flourishing industry. Soon, there will be even more recruits coming to join the dark-side forces of the cybercrime cartels. They will do it for the money!</p>

<blockquote>No more free bugs you say? I say that <strong>you</strong> are leading people to become the next generation of cyber menace. Perhaps you forgot that the information security community was built on and thrived because of a simple but fundamental principle: knowledge must be free.</blockquote>

<h3>Sell The Bugs</h3>

<p>Regardless how good these figures may sound to you, you need to take a step back and think really well what you are getting into. Here are a few points that you need to consider before selling exploits:</p>

<ul>
<li><strong>Cybercrime is not a joke</strong> &#8211; If you get caught selling exploits to a dodgy 3rd-party you may end up with a prison sentence longer than the sentence of a child molester. If you live in US or UK you could be charged and treated as a terrorist which will completely destroy not only your life but the life of your closes people.</li>
<li><strong>TAX man problems</strong> &#8211; Oh Yes! Unjustifiable incomes could get you in trouble with the TAX man. The TAX man will hunt you and hurt you.</li>
<li><strong>Broken legs and other broken parts of the body</strong> &#8211; You have no idea to whom you are selling to. Tomorrow you may wake up with broken legs and twice as poorer as the day before.</li>
<li><strong>Even worse</strong> &#8211; People will kill for a lot less than 75K. Keep that in mind.</li>
</ul>

<p>In my humble opinion, exploit brokerage is a risky business. There is an unquantifiable risk associated with this practice and that is only due to the high price of exploits which are sold today.</p>

<h3>Exploit Sweatshop</h3>

<p>Nevertheless, it is just silly to believe that no one is producing and selling exploits in a large scale. Do you remember the numerous gaming sweatshops which sprung up like wild mushrooms after the recent heavy rains in 3rd-world countries? I recall seeing a documentary on a typical day in a Chinese WoW sweatshop. I remember I saw a room full of almost naked people, numerous PCs hooked up into a gigantic DIY network spreading across the entire floor. Most of the WoW accounts were fully automated, running from virtualized platforms.</p>

<p>The aim was simple: <strong>a)</strong> develop many characters in a semi-automated fashion by killing small animals and other things around the WoW world and <strong>b)</strong> sell the characters plus other artifacts to western buyers for a substantial amount of money. All of this can be achieved for as little as $70 a month per person. This is a remarkable business model which works extremely well.</p>

<p>Similarly, all you need is a bunch of programmers from India, China, or Eastern Europe to code up fuzzers and run them against as many software products as possible. At the end of the day memory corruption exploits a relative easy to detect. All you need is a crash caused by putting far too many 0&#215;41 in a buffer. The crash is already an indication that something is wrong. It requires a bit of manual work to figure out whether the crash is exploitable. From personal experience, and by looking into the work of my peers, it takes approximately 10 days to develop a crash into an exploit. Most of the times, the exploitability factor of a crash is apparent and therefore no time needs to be wasted. Other times, a crash can be archived for future investigation when it could become exploitable given it meets the necessary conditions.</p>

<p>Perhaps you can do all that by paying someone as little as $70 a month as it is the case with WoW sweatshops. That is 3 times less than what I am paying for just hosting. Therefore, I most certainly can afford to hire 3-4 people right now and even double their salaries, but let&#8217;s do the maths:</p>

<pre><code># average exploit price: <strong>$5000</strong>
# number of people to hire: <strong>5</strong>
# average monthly salary: <strong>$100</strong>
# job specs: <strong>write fuzzers</strong>

5 * 100 = $500 # a month expenses
5000 / 500 = 10 # months worth of work</code></pre>

<p>Heck, I can even put this bill on my credit card and pay as little as $50 a month. The chances that I will sell an exploit for $5K in the next 10 months are pretty high. $5K is only if I go with a legitimate company. I can probably make 6 times more by selling it to a dodgy 3rd-party. The only thing I need to worry about is the risk.</p>

<h3>Some Final Words</h3>

<p>Finally, I know that a lot of people are into the security business because of all the romanticism and the myths surrounding the <q>hacker</q> figure. Things look different once you become the hacker and your day job and lifestyle are surrounded by hacking and breaking into systems of any sort. There is nothing romantic about it.</p>

<p><em>So, don&#8217;t get into trouble for the wrong reasons. If you are young and you need advice what to do with your career, contact us or contact any one who has been into this industry long enough to give you a good and sensible advice. Just don&#8217;t jump onto the <q>No free bugs!</q> bandwagon.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/exploit-sweatshop/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Jeriko Group and Source Code Repository</title>
		<link>http://www.gnucitizen.org/blog/jeriko-group-and-source-code-repository/</link>
		<comments>http://www.gnucitizen.org/blog/jeriko-group-and-source-code-repository/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 06:50:39 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[jeriko]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=3130</guid>
		<description><![CDATA[Jeriko moved in its own source code repository which you will be able to find here. There is also a discussion group here, if you feel like using it.

The version inside the new code repository is very different from the version you&#8217;ve seen before. The main difference is that while the old version is basically a collection of scripts, the new version implements its own shell (wrapper around bash) which does the heavily lifting and also introduces some funky programming mechanisms. [...]]]></description>
			<content:encoded><![CDATA[<p>Jeriko moved in its own source code repository which you will be able to find <a href="http://code.google.com/p/jeriko/">here</a>. There is also a discussion group <a href="http://groups.google.com/group/Jeriko">here</a>, if you feel like using it.</p>

<p>The version inside the new code repository is very different from the version you&#8217;ve seen before. The main difference is that while the old version is basically a collection of scripts, the new version implements its own shell (wrapper around bash) which does the heavily lifting and also introduces some funky programming mechanisms. For example, now you can create jeriko scripts like this:</p>

<pre><code>#/usr/bin/env jeriko
# do my jeriko commands here
foreach-input | add-targets
generate-scan-batch | run-in-parallel</code></pre>

<p>This is perhaps the simplest possible script you can write but you see that the jeriko shell could turn into a quite powerful feature. The shell is also a good starting point for many penetration testing jobs as it does some environment checking and preconfigures some defaults for you. The other good news is that you don&#8217;t have to learn a new programming language. Your bash skills are good for jeriko too.</p>

<p><em>Just keep in mind that jeriko is merely an experiment. However, I realize that it has already become quite useful for some people. So, if you enjoy playing with bash scripts, and you you feel adventurous, please join us and make this project happen.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/jeriko-group-and-source-code-repository/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Exploit Development Framework Design</title>
		<link>http://www.gnucitizen.org/blog/exploit-development-framework-design/</link>
		<comments>http://www.gnucitizen.org/blog/exploit-development-framework-design/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 09:40:15 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2881</guid>
		<description><![CDATA[Perl, Ruby Python: use the language that suits your character. However, one of the things that differentiate python from the rest is its philosophy, which is: there should be one&#8211; and preferably only one &#8211;obvious way to do it (where it is a problem). This philosophy gives python some interesting advantages over other similar languages. That will be explained later on. [...]]]></description>
			<content:encoded><![CDATA[<p>Perl, Ruby Python: use the language that suits your character. However, one of the things that differentiate python from the rest is its philosophy, which is: <q>there should be one&#8211; and preferably only one &#8211;obvious way to do it</q> (where <q>it</q> is <q>a problem</q>). This philosophy gives python some interesting advantages over other similar languages. That will be explained later on.</p>

<p>This post is merely a summary of my research work on how to build a better exploitation framework ala <a href="http://www.metasploit.com">metasploit</a>-style.</p>

<h3>The Problem</h3>

<p>Metasploit is great but there are three things that makes the framework sometimes inconvenient: it&#8217;s size, it&#8217;s dependency of the ruby platform and of course it&#8217;s speed. It will be great if for example we can take a single exploit (or a set of exploits) out of the framework and compile it into a standalone executable. On the advantage side, this type of solution will also allow us to ship the framework as a payload to already compromised systems and use it from there as a stepping stone for further propagation. It will also allows us to run exploits from compromised embedded devices as long as we can compile for their architecture, which is pretty cool.</p>

<blockquote>I understand that it is possible to bundle the entire framework plus the ruby environment into one executable but such a solution is simply not elegant enough and not fully cross-platformed.</blockquote>

<h3>Introduction</h3>

<p>Back in the days when Metasploit was written in Perl, there were a few other frameworks trying to do similar things but in C and C++. A solution based on C or C++ is a lot more interesting as it allows us to compile standalone versions of the framework and use them as we wish. It simply makes the framework very good for embedding and also quite suitable for delivering it as a payload to the systems we would like to compromise.</p>

<p>Nowadays, a C and C++ solution is often doomed to failure. The reason for this is because when building a framework you can easily get into a situation where you need to solve a pretty complicated problem. Both C and C++ lack the dynamicism and the degree of expression available in languages such as perl, python and ruby and therefore, while they remain very suitable for low level stuff, they start to loose their grounds when it is needed to build something that is more abstract and high level.</p>

<h3>Some Solutions</h3>

<p>Keeping all of the above in mind I started putting words into practice. In the spirit of a zen monk, I started thinking which parts of the metasploit framework are most valuable to a penetration tester so that they can be branched out. As it happens, the obvious answer is: <q>the exploits</q>. The <q>Auxiliary</q> modules are great but they represent functionalities which are already available in other tools. So, the first idea was to take the exploits and payloads out and rewrite them into something that is more suitable.</p> 

<p>I decided to see for myself if I can prototype a simple exploitation framework in C++ that all it should so is to implement several abstract interfaces for exploit development, a a class with common methods for payloads (empty of course) and of course a simple interface to run an exploit with a payload against a target. All of this was achieved in a <q>hello world</q> fashion exploiting a simple stack overflow on a proggie from the command line and of course without the need to circumvent any protection mechanisms in place.</p>

<p>Although I was pleased with the result of the prototype, I was not convinced that this is a good enough solution. Programming in C++ is fun, especially when you haven&#8217;t done it for a couple of years, but still not as practicle as I would like it to be. We can most certainly build a DSL on the top of C and C++ by using Preprocessor Directives but when you are developing an exploit you want to make the process as painless as possible and C directives are only making it worse when hunting for a bug in the exploit. Not to mention that compiling something every time you make a change is not cool at all.</p>

<p>Being a pythonist and knowing the python mantra inside out, I thought that it should be possible to write all of the exploits and payloads in python and convert them into C or C++ at later stage as long as I stick to using a minimal set of the language features which can be directly translated with regexes and some basic parsing. After all, python looks like an executable pseudo code. Luckily for me, such a solution already exists and it is called <a href="http://code.google.com/p/shedskin/">shedskin</a>.</p>

<p>Now shedskin is a lot more than a simple python to C++ translator. Not only it can convert a python program to C++ source but it also implements all of python&#8217;s builtins and it has support for some of python&#8217;s most useful modules such as <code>re</code> and <code>socket</code>. On the top of that, it is trivial to implement additional modules to the shedskin framework in python. <em>This is a product I will happily pay for!</em></p>

<h3>Analysis</h3>

<p>I played quite a lot with the shedskin compiler tweaking things as I go. Although the parser is pretty advanced there are some restrictions enforced on the language. All of them are nicely covered in the shedskin&#8217;s tutorial.</p>

<p>It was time to see if I do need the advanced python features for developing the exploits. I run through all Metasploit payloads and exploits and a pattern started to emerge. The majority of the exploits were pretty basic. They all came down to the following algorithm more or less:</p>

<ol>
<li>Select an exploit</li>
<li>Pack a structure/payload that will be sent over a socket or will be dumped into a file</li>
<li>Send/Save the payload</li>
</ol>

<p>Obviously, there is no need for python sugar to implement that.</p>

<h3>The Design</h3>

<p>I did quite a lot of work investigating the best approach to tackle the problem of creating a good enough exploitation framework and I came up with the following basic idea:</p>

<p>We start with the same basic building blocks as found in metasploit. We need abstract classes for Exploits and Shellcodes and also classes that implement them to define more functional classes such as those that needs to be implemented when writing remote exploits for example (socket stuff). We use the basic python capabilities keeping shedskin in mind. As I mentioned, shedskin is quite advanced so most of the functionalities can be implemented without even taking it into consideration at all.</p>

<p>That will provide the core of the framework. All of the exploits now can be written on the top of this. The exploits themselves should reuse as much as of the builtin methods as possible as that their portability will be guaranteed.</p>

<p>A layer above that, we write as much as python sugar as we want. We simply don&#8217;t care how we are going to write it because that part of the framework doesn&#8217;t have to be compiled.</p>

<p>In summary, we layer the whole thing like this:</p>

<ul>
<li><strong>Layer 01.</strong> Core Exploit Development Classes implementing the most basic set of python features</li>
<li><strong>Layer 02.</strong> Exploits implementing the Core Exploit Development Classes</li>
<li><strong>Layer 03.</strong> Python sugar to glue it all together</li>
</ul>

<h3>Conclusion</h3>

<p>So, it is possible to write a good and well-designed exploitation framework in python that allows exploits to be separated and compiled in standalone native executables. Not only that, but we do not sacrifice from the dynamicism of the python language as while the core will be written in basic python, the rest will be as dynamic as we want. Imho, this is all possible due to python&#8217;s mantra that <q>there should be one&#8211; and preferably only one &#8211;obvious way to do it</q>. It just makes it easier to write briliant tools such as shedskin.</p>

<blockquote>Although I am quite excited to start writing such a beast right a way, I am going to <code>pass</code> this time. I am starting to learn to say <q>NO</q> because I&#8217;ve got far too many things on my plate already.  However, if anyone is interested in working on this, I will be very happy to facilitate the project as much as I can and give a hand where necessary.</blockquote>

<p><em>I am very interested to hear your opinion and I am even more interested to get the opinion of the Metasploit team as they have a lot more experience in coding exploitation frameworks than me.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/exploit-development-framework-design/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Even More XSS Worms</title>
		<link>http://www.gnucitizen.org/blog/even-more-xss-worms/</link>
		<comments>http://www.gnucitizen.org/blog/even-more-xss-worms/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 08:29:41 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2858</guid>
		<description><![CDATA[This morning I spotted several blog posts mentioning that Twitter has been hit by yet another XSS worm.

There is no merit in discussing how this has been done and for what purposes but this incident is yet another proof that the attack landscape is rapidly changing and moving towards web enabled infrastructures and the client-side. [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I spotted <a href="http://www.techcrunch.com/2009/04/11/twitter-hit-by-stalkdaily-worm/">several blog posts</a> mentioning that Twitter has been hit by yet another XSS worm.</p>

<p>There is no merit in discussing how this has been done and for what purposes but this incident is yet another proof that the attack landscape is rapidly changing and moving towards web enabled infrastructures and the client-side. Soon or later almost every website will be equipped with social capabilities (google&#8217;s own opensocial and friendconnect platforms) and than simple persistent XSS attacks will turn into quite nasty problems.</p>

<p><em>Time will tell!</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/even-more-xss-worms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tools of Trade</title>
		<link>http://www.gnucitizen.org/blog/tools-of-trade/</link>
		<comments>http://www.gnucitizen.org/blog/tools-of-trade/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 20:18:31 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2842</guid>
		<description><![CDATA[Lately I&#8217;ve been dropping a lot bash scripts on public forums and of course on work related projects. Many people came back to me asking why I chose bash. Python or perl would have been better! While I agree that both python and perl are a lot more expressive, I disagree that tools in general should be written just to accommodate the needs of a particular framework. Tools are tools and they have their lifetime just like everything else. So should we bother? [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been dropping a lot bash scripts on public forums and of course on work related projects. Many people came back to me asking why I chose bash. <q>Python or perl would have been better!</q> While I agree that both python and perl are a lot more expressive, I disagree that tools in general should be written just to accommodate the needs of a particular framework. Tools are tools and they have their lifetime just like everything else. So should we bother?</p>

<p>Recently I had to communicate with a MSSQL server on a pentesting job. For that purpose I&#8217;ve downloaded <code>sqsh</code>. Unfortunately the tool failed with a linking error. So I decided to go and download the sources and compile. I did that but the build failed because my environment was lacking certain unusual environment variables the tool needed to build successfully. Alright, running out of time, I decided to check whether there are other tools for SQL server. I found <code>dbishell</code> which is a tool written in perl. I run the tool for Sybase backend but it complained that I am missing libraries. So I downloaded the dbi sybase perl libraries and installed them. I run the tool again but it failed with an error. It couldn&#8217;t display the error because I was lacking another perl library.</p>

<p>Ok, that was ridiculous and I desperately needed a solution. So I came up with something I do not normally do. I checked PHP&#8217;s sybase integration online and I found that it is relatively straightforward to communicate with MSSQL backends from PHP scripts. I wrote a simple script to bruteforce the login with several passwords I had at hand. Once I found the login, lucky me, I wrote another script, again in PHP, just to dump various information from the database such as other database users and their hashes. Lucky me!</p>

<blockquote>In summary, I spent ridiculous amount of time trying to make established frameworks and tools to work while I could have saved all the hustle and started with PHP from the beginning.</blockquote>

<p>The reason I am telling you this story is because I have an important message convey here: <q>Tools are just Tools!</q> If metasploit cannot exploit the vulnerability perhaps you can create something yourself. If nessus fails to detect a problem, perhaps there is another approach you should use to handle the situation. We often start a new framework or tool and suddenly decide that it should handle all situations. Well that is virtually impossible! The situation always change.</p>

<p>So, don&#8217;t stick to a single tool just because it works 80% of the time. And don&#8217;t waste time trying to make the tool work in the rest 20%. It is pointless, especially when you are dealing with frameworks. There are a lot more solutions out there you can employ to solve your particular problem. These solutions may not be elegant and perhaps they are written in something as unconventional as <a href="http://en.wikipedia.org/wiki/Brainfuck">brainfuck</a>, but they are solutions nevertheless.</p>

<p><em>Remember, tools solve problems! If a tool cannot solve the problem it is no longer a tool. It is a useless blob!</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/tools-of-trade/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>More Penetration Testing Goodness with Jeriko</title>
		<link>http://www.gnucitizen.org/blog/more-penetration-testing-goodness-with-jeriko/</link>
		<comments>http://www.gnucitizen.org/blog/more-penetration-testing-goodness-with-jeriko/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:14:29 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[jeriko]]></category>
		<category><![CDATA[penetration testing]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[toolkit]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2835</guid>
		<description><![CDATA[Over the last couple of weeks I&#8217;ve added more features to the Jeriko toolkit which I briefly covered in my post over here. For those of you who don&#8217;t know, Jeriko is a compilation of various bash scripts to ease manual penetration testing practices. The idea is to automate only the things which are sort of boring.

Anyway, now you have a few more scripts at your disposal. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple of weeks I&#8217;ve added more features to the <a href="http://code.gnucitizen.org/jeriko">Jeriko</a> toolkit which I briefly covered in my post over <a href="http://www.gnucitizen.org/blog/you-dont-need-the-ultimate-pen-testing-framework/">here</a>. For those of you who don&#8217;t know, Jeriko is a compilation of various bash scripts to ease manual penetration testing practices. The idea is to automate only the things which are sort of boring.</p>

<p>Anyway, now you have a few more scripts at your disposal. The most notable changes are the ability to discover service versions via <code>extract-services</code>, the ability to discover and generate URLs from services which offer HTTP (courtesy of <code>generate-url-batch</code>, <code>expand-url-credentials</code> and <code>expand-url-dirs</code>) and the ability to grab screenshots of all web servers via <code>scan-browsers</code>.</p>

<p>Personally, I find the <code>scan-browsers</code> script extremely useful. Let&#8217;s say that you encounter a bunch of web servers but you don&#8217;t know what they are for. You can fire the browser and start executing URLs one after another but that will take time and you can easily get confused. Instead of doing that you can do the following:</p>

<pre><code>$ generate-url-batch | scan-browsers</code></pre>

<p>This command will iterate over each discovered HTTP server and take a screenshot of the front page. The script can be safely executed even in environments which do not have the X server installed. In fact, you do not need it at all, because the script relies on a virtual framebuffer server.</p>

<p>After the command completes, you will have your current working directory populated with the screen grabs. Now you can use your default picture viewer to see all web servers quite rapidly. This script is also handy in pentests when you need to take evidence of particular vulnerable web servers/applications.</p>

<p><em>Although Jeriko is already useful, I am planning to totally redesign the platform. Future versions will have more granular control over the pentesting process and the ability to automate large chunks of boring activities.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/more-penetration-testing-goodness-with-jeriko/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>On Security Buzzwords</title>
		<link>http://www.gnucitizen.org/blog/on-security-buzzwords/</link>
		<comments>http://www.gnucitizen.org/blog/on-security-buzzwords/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 09:36:08 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buzzwords]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2826</guid>
		<description><![CDATA[I&#8217;ve got quite a lot of good feedback on the security buzzword generator I announced yesterday. For those of you who do not know, the generator is a fun little utility which helps you with coming up with new and exciting buzzwords like a security pro.

We often laugh when a new buzzword makes its rounds in the media but the matter of fact is that buzzwords are important. In essence, buzzwords are just terminology which happens to be used extensively by the media. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got quite a lot of good feedback on the <a href="http://buzz.gnucitizen.org">security buzzword generator</a> I <a href="http://www.gnucitizen.org/blog/security-buzzword-generator/">announced yesterday</a>. For those of you who do not know, the generator is a fun little utility which helps you with coming up with new and exciting buzzwords like a security pro.</p>

<p>We often laugh when a new buzzword makes its rounds in the media but the matter of fact is that buzzwords are important. In essence, buzzwords are just terminology which happens to be used extensively by the media. I find it funny to follow rants of people who are obviously against buzzwords but they make use of buzzwords themselves. If you are against them, just don&#8217;t use them. I am curious to see how you are going to find a common language with the rest of the world.</p>

<p>Here are a few examples of security buzzwords which are considered an everyday terminology nowadays:</p>

<ul>
<li>Null Pointer Dereference</li>
<li>Cross-site Scripting</li>
<li>Rebinding Attacks</li>
<li>Botnets</li>
<li>Storm Worm</li>
<li>Virtualized Rootkits</li>
<li>there are tones more&#8230;</li>
</ul>

<p>They are buzzwords because at some point they were virtually all over the Web. Today&#8217;s buzzword is Conficker. If you find something new and intriguing it most certainly will become a buzzword. Is that really that bad?</p>

<h3>Q&#038;A with the Public</h3>

<p><em>I have a question to the public. <q>Dear Reader, what do you call a script injection exploit which happens withing the boundaries of the browser&#8217;s chrome?</q></em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/on-security-buzzwords/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Security Buzzword Generator</title>
		<link>http://www.gnucitizen.org/blog/security-buzzword-generator/</link>
		<comments>http://www.gnucitizen.org/blog/security-buzzword-generator/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 11:27:25 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[buzzwords]]></category>
		<category><![CDATA[campaign]]></category>
		<category><![CDATA[gnucitizen]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2819</guid>
		<description><![CDATA[In the light of the Month of New Security Buzzwords, I am releasing an online fuzzer to help you generate as many security buzzwords as you like. Sweet!

Jokes aside, tools like this one are quite helpful to brainstorm new ideas. If you ever do research inspired by our buzzword generator, please give us a credit. [...]]]></description>
			<content:encoded><![CDATA[<p>In the light of the <a href="http://www.cgisecurity.com/2009/04/month-of-new-security-buzzwords.html">Month of New Security Buzzwords</a>, I am releasing an online <a href="http://buzz.gnucitizen.org">fuzzer</a> to help you generate as many security buzzwords as you like. <em>Sweet!</em></p>

<p><em>Jokes aside, tools like this one are quite helpful to brainstorm new ideas. If you ever do research inspired by our buzzword generator, please give us a credit. That way we will know that the tool is actually useful.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/security-buzzword-generator/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Codez Are Up</title>
		<link>http://www.gnucitizen.org/blog/codez-are-up/</link>
		<comments>http://www.gnucitizen.org/blog/codez-are-up/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 14:18:54 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[gnucitizen]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2768</guid>
		<description><![CDATA[This is a quick announcement just to let you know that our codes are now getting synced at code.gnucitizen.org, which is basically a file browser interface to the source repositories.

The reason we had to come up with something like this is because most of our projects are dispersed across several Google Code repositories, personal SVNs and many other places. We have started so many ideas in the past that now it is hard to keep track of everything. [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick announcement just to let you know that our codes are now getting synced at <a href="http://code.gnucitizen.org">code.gnucitizen.org</a>, which is basically a file browser interface to the source repositories.</p>

<p>The reason we had to come up with something like this is because most of our projects are dispersed across several Google Code repositories, personal SVNs and many other places. We have started so many ideas in the past that now it is hard to keep track of everything. Also, many people ask us for the source codes of old projects and we simply don&#8217;t know where to point them to.</p>

<p><em>Not everything is added yet. I will continue to put stuff in as they come!</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/codez-are-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>It is Persistence</title>
		<link>http://www.gnucitizen.org/blog/it-is-persistence/</link>
		<comments>http://www.gnucitizen.org/blog/it-is-persistence/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 11:25:20 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2714</guid>
		<description><![CDATA[Do some people have the magical skill to find vulnerabilities with ease while others don&#8217;t! Of course not! I disagree with the whole tendency to believe that technical understandings is all that is needed to find vulnerabilities.

It is mostly persistence that plays a role. Most of the researchers I know have almost zero knowledge on the subjects they dive into. [...]]]></description>
			<content:encoded><![CDATA[<p>Do some people have the magical skill to find vulnerabilities with ease while others don&#8217;t! Of course not! I disagree with the whole tendency to believe that technical understandings is all that is needed to find vulnerabilities.</p>

<p>It is mostly persistence that plays a role. Most of the researchers I know have almost zero knowledge on the subjects they dive into. The knowledge builds up with the time and by being more persistent on the topic of exploration regardless of its difficulty level.</p>

<p><em>Simply put, the more time you spend on something, the higher the chances to find oddities. It sound quite logical, don&#8217;t you think? Countless of examples already exist to prove my point.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/it-is-persistence/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>You Don&#8217;t Need the Ultimate Pen-testing Framework!</title>
		<link>http://www.gnucitizen.org/blog/you-dont-need-the-ultimate-pen-testing-framework/</link>
		<comments>http://www.gnucitizen.org/blog/you-dont-need-the-ultimate-pen-testing-framework/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 12:50:02 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jeriko]]></category>
		<category><![CDATA[pen-testing]]></category>
		<category><![CDATA[penetrationtesting]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2662</guid>
		<description><![CDATA[You&#8217;ve already got it! It is laying on your PC and it is called the shell. The shell was designed to start/strop and control process with ease so why do we need yet another universal pen-testing framework, which does what another tool is already doing for us and it comes by default? In this post we are going to delve in the world of advanced shell programming for penetration testing purposes.

The shell is defacto the interface to your operating system. [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve already got it! It is laying on your PC and it is called the <q>shell</q>. The shell was designed to start/strop and control process with ease so why do we need yet another universal pen-testing framework, which does what another tool is already doing for us and it comes by default? In this post we are going to delve in the world of advanced shell programming for penetration testing purposes.</p>

<p>The shell is defacto the interface to your operating system. Over the years it has turned into a very powerful machinery heavily used by programmers, hackers and system designers around the world. It is simply the ultimate environment. There are plenty of tools to support it. It is remotely accessible. It is simple, yet extremely powerful.</p>

<p>Because I am quite aware of the power the shell provides, every time I see another pen-testing framework which implements its own shell (obviously a lot less powerful in nature) or anything else shell incompatible, I am shaking my head in disapproval. Where are my pipes? Should I ignore the plethora of good pen-testing tools sitting on my box just to use your custom shell. Obviously, not!</p>

<p>Penetration testing frameworks today turn into unmaintainable monsters: abstractions, and deep inheritance all over the place; dependency nightmares and monolithic cores which no longer interact with the shell so nicely. They try to be the ultimate framework but fail immensely as they cannot be what the shell and the OS already is  (i.e. a framework) simply because there are a lot less man-hours put into them and they are a lot less diverse in terms of code and originality.</p>

<p>Over the last couple of days I was busy with putting a small set of command line utills in the spirit of some of my previous two experiments in the same sphere of study: <a href="http://www.gnucitizen.org/blog/infocrobes/">Infocrobes</a> and <a href="http://code.google.com/p/bashitsu/">Bashitsu</a>. The <a href="http://code.google.com/p/gnucitizen/source/browse/#svn/trunk/jeriko">toolkit (also known as Jeriko)</a> currently resides within our <a href="http://code.google.com/p/gnucitizen/">random source code repository</a> which contains random codez which hasn&#8217;t materialized fully yet.</p>

<p>The reason I wrote it is because it was fun but most of all I wanted to showcase that quite many advanced things can be achieved with a few bash scripts wrapping around common pen-testing tools. For the rest of this article we will explore some of the features of this toolkit and discuss how it can be extended upon (as it is no where near complete but it is a good start, imho) and used in various quite basic pen-testing scenarios.</p>

<p>Let&#8217;s start with the common stuff: automation of port-scanning and vulnerability assessment. We will start by adding some targets:</p>

<pre><code>$ mkdir pen-test
$ cd pen-test
$ targets-add target.com
$ targets-add << EOF
more-targets.com
10.10.10.10
10.10.20.0/24
EOF</code></pre>

<p>Now we have a bunch of targets. You can also remove targets by executing the <code>targets-rem</code> script which usage is exactly like the <code>targets-add</code> script.</p>

<p>Once we have a bunch of targets we might want to expand them into usable IP addresses/ranges. Keep in mind that our targets list is a mixture of domain names, ip addresses and CIDR ranges. We are going to use another tool part of the collection which will convert all of this into something that we can use:</p>

<pre><code>generate-ip-batch</code></pre>

<p>This tool actually wraps around nmap and outputs everything onto the screen. It is not useful unless we pipe it into something. We are going to use another script for that: <code>generate-scan-batch</code>. This script will execute <code>generate-ip-batch</code> and pipe out a list of commands for performing the basic penetration tests. The list will look something like this:</p>

<pre><code>scan-ports-tcp-full [ip]
scan-ports-udp-full [ip]
scan-vulnerabilities [ip]</code></pre>

<p>Ok, this can be piped now into our <code>run-in-parallel</code> tool which obviously runs things in parallel in order to speed up the process. This is how we do it:</p>

<pre><code>$ generate-scan-batch | run-in-parallel</code></pre>

<p>We can customize the <code>run-in-parallel</code> script by either by modifying <code>.jerikorc</code> resource file or by going the bash way like this:</p>

<pre><code>$ RUN_IN_PARALLEL_MAX_PROCESS=32 generate-scan-batch | run-in-parallel</code></pre>

<p>Luckily for us we can also supply this information as command line arguments like this:</p>

<pre><code>$ generate-scan-batch | run-in-parallel 32</code></pre>

<p>If you read the source of <code>run-in-parallel</code> script you will see that it is no more then 40 lines of code packed with quite a lot of power. This is what the shell gives you - excellent way to manage processes.</p>

<p>Once all tasks are completed, we should have several work files into our directory. We can now parse them with a set of basic command line utilities which are prefixed with <code>extract-</code>. In order to extract open services from both gnmap and nbe files we use <code>extract-services-gnmap</code> and <code>extract-services-nbe</code> respectively, like this:</p>

<pre><code>$ cat *.nbe | extract-services-nbe</code></pre>

<p>How about exacting all services that has something to do with SSL? This is how we do it:</p>

<pre><code>$ cat *.nbe | grep -i ssl | extract-services-nbe</code></pre>

<p>That was easy but we might want to correlate all results. It is easy once you know shell scripting. The following script does it for us.</p>

<pre><code>$ extract-services</code></pre>

<p>Basic indeed! Let's now mirror the front-page of all HTTP servers. We might want to do some analysis on the results. This is how we do it:</p>

<pre><code>$ cat *.nbe | grep -i http | extract-services-nbe | awk -F, '{ print "http://"$1":"$2 }' | scan-urls</code></pre>

<p>This will mirror only the front-page we can do a lot more. How about making a copy of the first 10 levels? This is how we do it:</p>

<pre><code>$ cat *.nbe | grep -i http | extract-services-nbe | awk -F, '{ print "http://"$1":"$2 }' | WGET_URL_SCAN_METHOD="-l10" scan-urls</code></pre>

<p>Alright! Now we have mirrored all HTTP servers. Let's analyze them:</p>

<pre><code>$ find ./ -type f -exec cat '{}' ';' | extract-emails</code></pre>

<p>This will give us all emails that we have encountered. How about retrieving everything that looks like IP address which we can add to our targets list:</p>

<pre><code>$ find ./ -type f -exec cat '{}' ';' | extract-ips</code></pre>

<p>There are many more utilities which can extract things from files. We can even look for name/title looking strings and feed them to our whois scripts in order to find more about the organization we are pen-testing. This is how we do it:</p>

<pre><code>$ find ./ -type f -exec cat '{}' ';' | extract-names | scan-whois</code></pre>

<p>Easy! Once we've done the basic analysis and we have identified several issues and other things and we have the permission to go further we can autopwn all targets. This is how we do it:</p>

<pre><code>$ autopwn-services</pre></code>

<p>This tool simply wraps around metasploit's <code>msfconsole</code>. However, because <code>msfconsole</code> is yet another shell we might want to send the entire process back into session from which we can detach. This is useful for many reasons and this is how we do it:</p>

<pre><code>$ session-start autopwn-services</code></pre>

<p>If we press <code>CTRL+AD</code> we can detach and continue with our normal pentesting tasks until all services are fully exploited. Then we can resume by doing the following:</p>

<pre><code>$ session-list
$ session-resume [name]</code></pre>

<p>The output of the autopwn session will be saved, which is great as we might want to do further parsing abd later-stage analysis on the data.</p>

<p>There is a room for a lot more tools to be written. For example we can quite easily put ettercap/tcpdump into use for capturing browser cookies off the air and feeding all the information into a simple command line tool which will switch us to a different browser session depending on our choice. We don't need to write yet another framework for this. Most features already come by default and can be used if you know how.</p>

<p>Keep always in mind the following: don't write something someone else has already written for you unless this other product is complete crap and it needs replacement. Also, think whether your tool integrates nicely with other tools. The more integrated it is, the more it will be used in combination with others. And this is quite important.</p>

<p><em>So yes! You don't need to write everything from scratch. You don't need to mimic <code>screen</code>, <code>script</code>, <code>wget</code> or any other common tool unless you have no other choice. The ultimate pen-testing framework already exists within the most basic components of your operating system.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/you-dont-need-the-ultimate-pen-testing-framework/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Trapping HTTP Requests and Responses with Python</title>
		<link>http://www.gnucitizen.org/blog/trapping-http-requests-and-responses-with-python/</link>
		<comments>http://www.gnucitizen.org/blog/trapping-http-requests-and-responses-with-python/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 11:52:34 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tamper]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2603</guid>
		<description><![CDATA[In my last post I showed my own implementation of n HTTPS Man-in-the-middle proxy written from scratch in Python. I&#8217;ve spent great deal of time to make the proxy as programmer-friendly as possible. In this post I am planning to show how you can use the code to write your own proxies in the spirit of Burp, Paros, WebScarab, RatProxy, etc.

Why is this interesting? Well, it is interesting to Python developers/hackers only. [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.gnucitizen.org/blog/python-ssl-mitm-proxy-and-more/">last post</a> I showed my own implementation of n HTTPS Man-in-the-middle proxy written from scratch in Python. I&#8217;ve spent great deal of time to make the proxy as programmer-friendly as possible. In this post I am planning to show how you can use the code to write your own proxies in the spirit of Burp, Paros, WebScarab, RatProxy, etc.</p>

<p>Why is this interesting? Well, it is interesting to Python developers/hackers only. The fact is that there are a few HTTPS-enabled proxies with tamperable capabilities for Python. However, none of them are actually easy to use or even reliable enough for my likings. Not to mention that none of them were designed to be extended upon. While it is true that my code hasn&#8217;t bee fully tested, and there were some tiny issues already reported (to be fixed soon), I find the code a lot easier to work with as you will see later in this post.</p>

<p>So, let&#8217;s make a proxy. First, you need to get the <code>httpservers.py</code> file from <a href="http://www.gnucitizen.org/blog/python-ssl-mitm-proxy-and-more/">here</a>. Make sure that you get the latest version from the SVN. Let&#8217;s start with a simple example:</p>

<pre><code>import httpservers
import SocketServer

class Handler(httpservers.SimpleObservableProxyHTTPRequestHandler):
	def observe_request(self, data):
		print '>>', repr(data)[:100] # observe browser requests
		return data

	def observe_response(self, data):
		print '<<', repr(data)[:100] # observer server responses
		return data

class Server(SocketServer.ThreadingMixIn, httpservers.SimpleObservableProxyHTTPServer):
	pass

print 'Starting server on localhost:8080...'
srv = Server(('localhost', 8080), Handler, '/path/to/cert/file')
srv.serve_forever()</code></pre>

<p>In order to make this work you need to generate a self-signed certificate like this:</p>

<pre><code>openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem</code></pre>

<p>...and replace <code>'/path/to/cert/file'</code> with the path to the certificate.</p>

<p>If you execute the above snippet, you should be able to get the proxy running on port 8080. Every request that you send will be outputted on the screen with the prefix <code>&gt;&gt;</code>, while every server response will be prefixed with <code>&lt;&lt;</code>. Keep in mind that I am not displaying the complete request/response (<code>repr(data)[:100]</code>, only the first 100 characters) because I don't want to clog my screen with too much data.</p>

<p>So far, so good. Notice that <code>observe_request</code> and <code>observe_response</code> methods return the received data like that: <code>return data</code>. This is very important! These methods not only can sniff the data but they can modify it on the fly. For example, we can inject additional JavaScript for each server response by doing something similar to this:</p>

<pre><code>def observe_response(self, data):
	return data + '&lt;script&gt;/* javascript here */&lt;/script&gt;'</code></pre>

<p>The example above is not complete because we don't want to append the string to each response but only to those that have mime type of <code>text/html</code>. Nevertheless you get the picture.</p>

<p>The good thing about <code>observe_request</code> and <code>observe_response</code> methods is that they both operate on raw data, i.e. they use the actual data that is sent through the server and client sockets. There is no intermediate layer in between. This is very powerful as we can guarantee that our modifications are not modified by code which tries to be RFC compliant for example. In that respect we can completely screw up the requests and responses. This is important if we want to write some kind of a fuzzer or even a tool that deal with data at socket level. This feature actually lacks from most proxies and this is the reason why I tried to implement it in mine.</p>

<p>Because we deal with raw data, we need to parse it in order to get the useful bits and pieces out of it (of course only if we need to). This is quite simple. Future versions of my code will contain a helper method to do this but for now you can use something like this:</p>

<pre><code>import StringIO
...
...
	fp = StringIO.StringIO(data)

	request_line = fp.readline()
	headers = self.MessageClass(fp)
	data = fp.read()
	...
	print self.headers['host'] # will print the host</code></pre>

<p>...and we print the <code>Host</code> header. I told you that this is going to be easy.</p>

<p>This is pretty much it. There is no point of explaining further because the implementation is self-explanatory.</p>

<p><em>Due to high-load of projects and other internal developments we are looking to expand our team with 1-2 new editors. If you feel that you can contribute to this blog and our community, do not hesitate to get in touch with us.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/trapping-http-requests-and-responses-with-python/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Python SSL Mitm Proxy and More</title>
		<link>http://www.gnucitizen.org/blog/python-ssl-mitm-proxy-and-more/</link>
		<comments>http://www.gnucitizen.org/blog/python-ssl-mitm-proxy-and-more/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 17:54:19 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[mitm]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2588</guid>
		<description><![CDATA[Lately I&#8217;ve been busy with putting together a python module which allows me to create man-in-the-middle (MITM) HTTP Proxies with a programmer-friendly extension interface and support for SSL. This kind of proxies can be used for many things ranging from creating your own tampering proxies to hijacking network traffic via a transparent proxy connection.



I am quite pleased with the end result! [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been busy with putting together a python module which allows me to create man-in-the-middle (MITM) HTTP Proxies with a programmer-friendly extension interface and support for SSL. This kind of proxies can be used for many things ranging from creating your own tampering proxies to hijacking network traffic via a transparent proxy connection.</p>

<pre><code><a href="http://www.gnucitizen.org/static/blog/2009/02/httpservers.py" rel="inline-text">http://www.gnucitizen.org/static/blog/2009/02/httpservers.py</a></code></pre>

<p>I am quite pleased with the end result! Although my proxy hasn&#8217;t been heavily tested, I find the code lot better when compared to Dave Aitel&#8217;s SpikeProxy (sorry Dave :)) and extending/adding functionalities is actually piece of cake.</p>

<p>I need to mention that the code is heavily inspired by various source codes found on the Internet via Google. Actually all SSL MITM Proxy code for python available today are absolute crap. Codez are either broken or you need to be a rocket scientist in order to understand them. Nevertheless, these sources proved to be quite helpful when I was stuck. And I was stuck many times.</p>

<p>My module also contains stubs for creating all kinds of HTTP servers. It follows a simple design pattern introduced by Python&#8217;s built-in <code>SocketServer</code>, therefore the code is very pythonic. I need to mention that I used monkey patching only once and it can be removed as it is unimportant. So overall, the module should be pretty clean although there is a room for improvement.</p>

<p><em>Have a look at the code and if you can contribute with fixes and improvements that will be great. Just let me know.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/python-ssl-mitm-proxy-and-more/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Identity Theft Attacks</title>
		<link>http://www.gnucitizen.org/blog/identity-theft-attacks/</link>
		<comments>http://www.gnucitizen.org/blog/identity-theft-attacks/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 13:19:09 +0000</pubDate>
		<dc:creator>pdp</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[theft]]></category>

		<guid isPermaLink="false">https://www.gnucitizen.org/?p=2507</guid>
		<description><![CDATA[Work with the system rather against it. I have always been a big fan of this approach as it proved to be successful every time it was put into practice.

So you receive one of these phone calls. The girl on the other end presents herself as Jessica Smith. The company has to do something with financing. The conversation goes as usual. [...]]]></description>
			<content:encoded><![CDATA[<p><q>Work with the system rather against it.</q> I have always been a big fan of this approach as it proved to be successful every time it was put into practice.</p>

<p>So you receive one of these phone calls. The girl on the other end presents herself as Jessica Smith. The company has to do something with financing. The conversation goes as usual. She explains that she is calling in regards to a recent well known court case in UK in which major banks were made to return to their customers various service charges they have collected over the years, plus the reflective 8% of interest for up to Â£1000. She will send you the forms, which you have to fill in and send back. The background noise from her side hints a busy call center. It feels legitimate. In fact, it feels like you are getting a call from your bank. All that you have do is to give away just your address and full name and this is only because of the data protection act as you are kindly informed on the phone.</p>

<p>Most people will happily give away all the information. A reasonable person should ask for confirmation that the person on the other end is in fact entitled to receive personal information. Unfortunately, most of the time you cannot get such confirmation because in order to confirm that they need to get your details to unlock your details even though the organization that is calling you is completely legitimate and they already have your details. Complicated! So you get into this very awkward, twisted situation where there is no way out.</p>

<blockquote>The best way to deal with it is to ask the person on the other end to give you their details. Then you have to do some research and if all looks good you can pretty much trusted them to a degree, depending on your likings. It is not very convenient, is it?</blockquote>

<p>The problem here is in the process. Situations like the one described above happen every day and this is the problem. We get used to the process in the system. Obviously the system is flawed and as such it can be used for illegitimate purposes quite easily. I imagine a typical identity theft attack may unfold like this:</p>

<ol>
<li><strong>Ring a random number.</strong> Simulate background noise from call center. Tell the victim whole a lot of crap about the data protection act and how you really care about it but unfortunately you have to get their name and address.</li>
<li><strong>Send them mail.</strong> This stage softens the next <a href="http://en.wikipedia.org/wiki/Cold_calling">cold call</a>.</li>
<li><strong>Ring them again.</strong> Get more information.</li>
<li><strong>Repeat all steps until you are satisfied!</strong></li>
</ol>

<p><em>Nigerian scammers are way behind similar attacks, which imho should be a lot more successful.</em></p><p>---<br/>recent posts from the gnucitizen network:</p><p><a href="http://blog.websecurify.com/2012/02/cold-coffe-code.html">Cold, Coffe, Code</a><br/><a href="http://blog.websecurify.com/2012/02/upcoming-websecurify-mobile.html">The Upcoming Websecurify Mobile</a><br/><a href="http://blog.websecurify.com/2012/01/websecurify-102-for-windows-and-mac-has.html">Websecurify 1.0.2 for Windows and Mac has Arrived</a><br/><a href="http://blog.websecurify.com/2011/12/collage-of-websecurifys-evolution.html">A Collage of Websecurify's Evolution</a><br/><a href="http://blog.websecurify.com/2011/12/websecurifys-debute-on-itunes-and-mac.html">Websecurify's Debute on ITunes and Mac App Stores</a><br/></p>]]></content:encoded>
			<wfw:commentRss>http://www.gnucitizen.org/blog/identity-theft-attacks/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

