<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://planet-soc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Planet SoC - </title>
 <link>http://planet-soc.com/organization/Nmap+Security+Scanner/planet</link>
 <description>Planet view per organization</description>
 <language>en</language>
<item>
 <title>GSoC is over… Kinda</title>
 <link>http://planet-soc.com/node/3539</link>
 <description>&lt;p&gt;&lt;img src=&quot;http://rhinovirus.org/math/wp-content/uploads/2008/08/dtape.jpeg&quot; alt=&quot;&quot; title=&quot;dtape&quot; width=&quot;480&quot; height=&quot;360&quot; class=&quot;alignnone size-medium wp-image-429&quot; align=&quot;right&quot; /&gt;Wow, Google Summer of Code is kind of over and I&amp;#8217;ve had a great summer with &lt;a href=&quot;http://nmap.org&quot;&gt;Nmap&lt;/a&gt;. When I say its kind of over I mean that I still have to submit my end of summer quiz, still ahve to submit my code to Google, and I still have to wait for my mentor to submit his quiz. And there is still a chance - though infinitesimally small - that Google opts not to pay me or send me a T-Shirt for my work.&lt;br /&gt;
I have good news and bad news, the good news is that I finished all the projects I wanted to before the deadline, the bad news is I wont get my T-Shirt until after I go back to school. Which means I can&amp;#8217;t use it to gloat over everyone the first day back; damn, I usually reserve that day for being an asshole.&lt;br /&gt;
Looks like I wont be making a good first impressions this year &lt;img src=&quot;http://rhinovirus.org/math/wp-includes/images/smilies/icon_sad.gif&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
In other news, you may notice a new link in the sidebar. I decided to take advantage of GoDaddy&amp;#8217;s &lt;em&gt;&lt;a href=&quot;https://www.godaddy.com/gdshop/ssl/ssl_opensource.asp&quot;&gt;free SSL for Open Source&lt;/a&gt;&lt;/em&gt; offer. Hopefully - soon - you will be able to brows my site securely.&lt;br /&gt;
Finally, I plan on releasing more of the code that I have written recently, hopefully someone can use my scraps.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3539#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 19 Aug 2008 03:41:10 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3539 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC is over… Kinda</title>
 <link>http://planet-soc.com/node/3565</link>
 <description>&lt;p&gt;&lt;img src=&quot;http://rhinovirus.org/math/wp-content/uploads/2008/08/dtape.jpeg&quot; alt=&quot;&quot; title=&quot;dtape&quot; width=&quot;480&quot; height=&quot;360&quot; class=&quot;alignnone size-medium wp-image-429&quot; align=&quot;right&quot; /&gt;Wow, Google Summer of Code is kind of over and I&amp;#8217;ve had a great summer with &lt;a href=&quot;http://nmap.org&quot;&gt;Nmap&lt;/a&gt;. When I say its kind of over I mean that I still have to submit my end of summer quiz, still have to submit my code to Google, and I still have to wait for my mentor to submit his quiz. And there is still a chance - though infinitesimally small - that Google opts not to pay me or send me a T-Shirt for my work.&lt;br /&gt;
I have good news and bad news, the good news is that I finished all the projects I wanted to before the deadline, the bad news is I wont get my T-Shirt until after I go back to school. Which means I can&amp;#8217;t use it to gloat over everyone the first day back; damn, I usually reserve that day for being an asshole.&lt;br /&gt;
Looks like I wont be making a good first impressions this year &lt;img src=&quot;http://rhinovirus.org/math/wp-includes/images/smilies/icon_sad.gif&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
In other news, you may notice a new link in the sidebar. I decided to take advantage of GoDaddy&amp;#8217;s &lt;em&gt;&lt;a href=&quot;https://www.godaddy.com/gdshop/ssl/ssl_opensource.asp&quot;&gt;free SSL for Open Source&lt;/a&gt;&lt;/em&gt; offer. Hopefully - soon - you will be able to brows my site securely.&lt;br /&gt;
Finally, I plan on releasing more of the code that I have written recently, hopefully someone can use my scraps.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3565#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 19 Aug 2008 03:41:10 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3565 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC is over… Kinda</title>
 <link>http://planet-soc.com/node/3573</link>
 <description>&lt;p&gt;&lt;img src=&quot;https://rhinovirus.org/math/wp-content/uploads/2008/08/dtape.jpeg&quot; alt=&quot;&quot; title=&quot;dtape&quot; width=&quot;480&quot; height=&quot;360&quot; class=&quot;alignnone size-medium wp-image-429&quot; align=&quot;right&quot; /&gt;Wow, Google Summer of Code is kind of over and I&amp;#8217;ve had a great summer with &lt;a href=&quot;http://nmap.org&quot;&gt;Nmap&lt;/a&gt;. When I say its kind of over I mean that I still have to submit my end of summer quiz, still have to submit my code to Google, and I still have to wait for my mentor to submit his quiz. And there is still a chance - though infinitesimally small - that Google opts not to pay me or send me a T-Shirt for my work.&lt;br /&gt;
I have good news and bad news, the good news is that I finished all the projects I wanted to before the deadline, the bad news is I wont get my T-Shirt until after I go back to school. Which means I can&amp;#8217;t use it to gloat over everyone the first day back; damn, I usually reserve that day for being an asshole.&lt;br /&gt;
Looks like I wont be making a good first impressions this year &lt;img src=&quot;https://rhinovirus.org/math/wp-includes/images/smilies/icon_sad.gif&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
In other news, you may notice a new link in the sidebar. I decided to take advantage of GoDaddy&amp;#8217;s &lt;em&gt;&lt;a href=&quot;https://www.godaddy.com/gdshop/ssl/ssl_opensource.asp&quot;&gt;free SSL for Open Source&lt;/a&gt;&lt;/em&gt; offer. Hopefully - soon - you will be able to brows my site securely.&lt;br /&gt;
Finally, I plan on releasing more of the code that I have written recently, hopefully someone can use my scraps.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3573#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Tue, 19 Aug 2008 03:41:10 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3573 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC</title>
 <link>http://planet-soc.com/node/3484</link>
 <description>&lt;p&gt;The Summer of Code is almost over and I still haven&amp;#8217;t written any(enough) documentation!!!&lt;br /&gt;
Ill have to rectify this immediately.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3484#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 15 Aug 2008 00:34:17 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3484 at http://planet-soc.com</guid>
</item>
<item>
 <title>Nmap Codeswarm</title>
 <link>http://planet-soc.com/node/2673</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://rhinovirus.org/math/wp-content/uploads/2008/06/codeswarm.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-280&quot; title=&quot;codeswarm&quot; src=&quot;http://rhinovirus.org/math/wp-content/uploads/2008/06/codeswarm.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.spl0it.org&quot;&gt;Jabra&lt;/a&gt; was nice enough to make a &lt;a href=&quot;http://vis.cs.ucdavis.edu/~ogawa/codeswarm/&quot;&gt;Codeswarm&lt;/a&gt; out of the &lt;a href=&quot;http://nmap.org&quot;&gt;Nmap&lt;/a&gt; codebase.&lt;br /&gt;
The result is a tad skewed because it doesn&amp;#8217;t include the /nmap-dev, /nmap-exp, or /ncat repositories where some big new features are being coded but its more or less accurate and fun to watch.&lt;br /&gt;
Check it out &lt;a href=&quot;http://www.vimeo.com/1255202&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2673#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Mon, 30 Jun 2008 21:05:51 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">2673 at http://planet-soc.com</guid>
</item>
<item>
 <title>New Nmap diff format</title>
 <link>http://planet-soc.com/node/2013</link>
 <description>&lt;p&gt;For my readers that don&amp;#8217;t know what &lt;a href=&quot;http://insecure.org&quot;&gt;Nmap&lt;/a&gt; is, you wont understand the following. I&amp;#8217;ve been gun preparations to start coding an Nmap diff utility (codename Ndiff), and one of my tasks was to propose a possible format for the diff files, enjoy the following.&lt;br /&gt;
Hey everyone,&lt;br /&gt;
David said it better then I can:&lt;br /&gt;
On Sun, Jun 15, 2008 at 3:02 PM, David Fifield &amp;lt;david@bamsoftware.com&amp;gt; wrote:&lt;br /&gt;
&amp;gt; The real problems is that Zenmap&amp;#8217;s comparison doesn&amp;#8217;t answer the&lt;br /&gt;
&amp;gt; questions a users wants answered: Are there new hosts on the network?&lt;br /&gt;
&amp;gt; Did any machines go down? Any new ports? Web server still running?&lt;br /&gt;
&amp;gt; Zenmap just gives you a jumble of colored text and asks you to figure it&lt;br /&gt;
&amp;gt; out.&lt;br /&gt;
Nmap could use a program that intelligently compare XML output files,&lt;br /&gt;
instead of just doing the type of diff that Zenmap currently uses, we&lt;br /&gt;
could be parsing the files and outputting an intelligent diff that&lt;br /&gt;
better reflects the differences in network state. This diff file could&lt;br /&gt;
then be used by Zenmap or a third party program for visualization.&lt;br /&gt;
Here is a partial example of how the differences could be represented&lt;br /&gt;
in XML. The new tags &amp;lt;addhost&amp;gt; &amp;lt;delhost&amp;gt; &amp;lt;chghost&amp;gt; are used to express&lt;br /&gt;
changes in the host state. Inside the *host tags &amp;lt;chg(state/service)&lt;br /&gt;
is paired with &amp;lt;old(state/service) to show what has changed, both &amp;lt;add&lt;br /&gt;
and &amp;lt;del (port/state/service) are unpaired because their changes are&lt;br /&gt;
obvious.&lt;br /&gt;
&amp;lt;nmapdiff startdate=&amp;quot;12/4/07&amp;quot; starttime=&amp;quot;13:31:42&amp;quot; enddate=&amp;quot;12/4/08&amp;quot; endtime=&amp;quot;21:04:26&amp;quot; &amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chghost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;10.9.8.7&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;53&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;domain&amp;quot; product=&amp;quot;ISC BIND&amp;quot; version=&amp;quot;9.2.1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chgport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;80&amp;quot;&amp;gt; &amp;lt;state state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chgservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;oldservice name=&amp;quot;http&amp;quot; product=&amp;quot;Microsoft ISS&amp;quot; version=&amp;quot;11&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/chgport&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/chghost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addhost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;192.168.2.1&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;21&amp;quot;&amp;gt; &amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;ftp&amp;quot; product=&amp;quot;ftpd&amp;quot; version=&amp;quot;1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;8080&amp;quot;&amp;gt; &amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addhost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delhost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;192.168.2.100&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;21&amp;quot;&amp;gt; &amp;lt;delstate state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delservice name=&amp;quot;ftp&amp;quot; product=&amp;quot;ftpd&amp;quot; version=&amp;quot;1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delport&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;8080&amp;quot;&amp;gt; &amp;lt;delstate state=&amp;quot;open&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delport&amp;gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delhost&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;runstats&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addhost address=&amp;quot;192.168.2.1&amp;quot; reason=&amp;quot;reset&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delhost address=&amp;quot;192.168.2.100&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/runstats&amp;gt;&lt;br /&gt;
&amp;lt;/nmapdiff&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The differences could also be outputted in a more readable format such as:&lt;br /&gt;
12/4/07 - 13:31:42 -&amp;gt; 12/4/08 - 21:04:26&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;10.9.8.7:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 53/tcp is now open, was filtered&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 53/tcp is now listening with ISC BIND&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 80/tcp is now listening with Apache httpd, was Microsoft ISS&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;192.168.2.1:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Host 192.168.2.1 has come online.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 21/tcp is now listening with ftpd&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 8080/tcp is now listening with Apche httpd&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
There is also the matter of the language I would implement this in,&lt;br /&gt;
Ive given it some thought and heres what I&amp;#8217;m thinking:&lt;br /&gt;
PERL&lt;br /&gt;
Pros:&lt;br /&gt;
- Many parsers and applications for Nmap&amp;#8217;s XML format already written&lt;br /&gt;
in this language.&lt;br /&gt;
Cons:&lt;br /&gt;
- Nmap would have to list PERL as an optional requirement.&lt;br /&gt;
Python:&lt;br /&gt;
Pros:&lt;br /&gt;
- Easy integration with Zenmap&lt;br /&gt;
- Nmap already relies on Python for Zenmap, no extra dependencies.&lt;br /&gt;
Cons:&lt;br /&gt;
- It seems that the only Nmap XML parser(xml-expert) is dead.&lt;br /&gt;
- I&amp;#8217;m not particularly fond of python.&lt;br /&gt;
C++:&lt;br /&gt;
Pros:&lt;br /&gt;
- Easy integration with Nmap/Zenmap&lt;br /&gt;
- Possible future integration for XML parsing with Nmap, resuming&lt;br /&gt;
scans and etc.&lt;br /&gt;
Cons:&lt;br /&gt;
- I couldn&amp;#8217;t find any prior work, so I would probably end up working&lt;br /&gt;
with LibXML2&lt;br /&gt;
As you can see, there are still a lot of unresolved details, I would&lt;br /&gt;
appreciate any input on this. Here are some of the requirements that&lt;br /&gt;
David gave me:&lt;br /&gt;
* It must read Nmap XML files. (It is explicitly not a requirement to&lt;br /&gt;
read any other type of output file.)&lt;br /&gt;
* It must compare two output files at a time.&lt;br /&gt;
* It must show which hosts have come up or gone down.&lt;br /&gt;
* It must show when a port has changed state.&lt;br /&gt;
* It must support comparing output files coming from different scans&lt;br /&gt;
(different Nmap options or different target specifications).&lt;br /&gt;
* It must allow output in English text.&lt;br /&gt;
* It must allow output in XML, with a format and DTD to be determined.&lt;br /&gt;
Cheers,&lt;br /&gt;
Michael&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2013#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sun, 15 Jun 2008 22:19:01 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">2013 at http://planet-soc.com</guid>
</item>
<item>
 <title>New Nmap diff format</title>
 <link>http://planet-soc.com/node/3499</link>
 <description>&lt;p&gt;For my readers that don&amp;#8217;t know what &lt;a href=&quot;http://insecure.org&quot;&gt;Nmap&lt;/a&gt; is, you wont understand the following. I&amp;#8217;ve been gun preparations to start coding an Nmap diff utility (codename Ndiff), and one of my tasks was to propose a possible format for the diff files, enjoy the following.&lt;br /&gt;
Hey everyone,&lt;br /&gt;
David said it better then I can:&lt;br /&gt;
On Sun, Jun 15, 2008 at 3:02 PM, David Fifield &amp;lt;david@bamsoftware.com&amp;gt; wrote:&lt;br /&gt;
&amp;gt; The real problems is that Zenmap&amp;#8217;s comparison doesn&amp;#8217;t answer the&lt;br /&gt;
&amp;gt; questions a users wants answered: Are there new hosts on the network?&lt;br /&gt;
&amp;gt; Did any machines go down? Any new ports? Web server still running?&lt;br /&gt;
&amp;gt; Zenmap just gives you a jumble of colored text and asks you to figure it&lt;br /&gt;
&amp;gt; out.&lt;br /&gt;
Nmap could use a program that intelligently compare XML output files,&lt;br /&gt;
instead of just doing the type of diff that Zenmap currently uses, we&lt;br /&gt;
could be parsing the files and outputting an intelligent diff that&lt;br /&gt;
better reflects the differences in network state. This diff file could&lt;br /&gt;
then be used by Zenmap or a third party program for visualization.&lt;br /&gt;
Here is a partial example of how the differences could be represented&lt;br /&gt;
in XML. The new tags &amp;lt;addhost&amp;gt; &amp;lt;delhost&amp;gt; &amp;lt;chghost&amp;gt; are used to express&lt;br /&gt;
changes in the host state. Inside the *host tags &amp;lt;chg(state/service)&lt;br /&gt;
is paired with &amp;lt;old(state/service) to show what has changed, both &amp;lt;add&lt;br /&gt;
and &amp;lt;del (port/state/service) are unpaired because their changes are&lt;br /&gt;
obvious.&lt;/p&gt;

&lt;ol&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;lt;nmapdiff startdate=&amp;quot;12/4/07&amp;quot; starttime=&amp;quot;13:31:42&amp;quot; enddate=&amp;quot;12/4/08&amp;quot; endtime=&amp;quot;21:04:26&amp;quot; &amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chghost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;10.9.8.7&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;53&amp;quot;&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;domain&amp;quot; product=&amp;quot;ISC BIND&amp;quot; version=&amp;quot;9.2.1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chgport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;80&amp;quot;&amp;gt; &amp;lt;state state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;chgservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;oldservice name=&amp;quot;http&amp;quot; product=&amp;quot;Microsoft ISS&amp;quot; version=&amp;quot;11&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/chgport&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/chghost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addhost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;192.168.2.1&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;21&amp;quot;&amp;gt; &amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;ftp&amp;quot; product=&amp;quot;ftpd&amp;quot; version=&amp;quot;1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;8080&amp;quot;&amp;gt; &amp;lt;addstate state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addport&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/addhost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delhost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;address addr=&amp;quot;192.168.2.100&amp;quot; addrtype=&amp;quot;ipv4&amp;quot; /&amp;gt;;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;21&amp;quot;&amp;gt; &amp;lt;delstate state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delservice name=&amp;quot;ftp&amp;quot; product=&amp;quot;ftpd&amp;quot; version=&amp;quot;1&amp;quot; method=&amp;quot;probed&amp;quot; conf=&amp;quot;10&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delport&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delport protocol=&amp;quot;tcp&amp;quot; portid=&amp;quot;8080&amp;quot;&amp;gt; &amp;lt;delstate state=&amp;quot;open&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delservice name=&amp;quot;http&amp;quot; product=&amp;quot;Apache httpd&amp;quot; version=&amp;quot;2.0.39&amp;quot; conf=&amp;quot;10&amp;quot; method=&amp;quot;probed&amp;quot; /&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delport&amp;gt;;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/delhost&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;runstats&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;addhost address=&amp;quot;192.168.2.1&amp;quot; reason=&amp;quot;reset&amp;quot;/&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delhost address=&amp;quot;192.168.2.100&amp;quot;/&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/runstats&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;lt;/nmapdiff&amp;gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The differences could also be outputted in a more readable format such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li class=&quot;li1&quot;&gt;
12/4/07 - 13:31:42 -&amp;gt; 12/4/08 - 21:04:26
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;10.9.8.7:
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 53/tcp is now open, was filtered
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 53/tcp is now listening with ISC BIND
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 80/tcp is now listening with Apache httpd, was Microsoft ISS
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;192.168.2.1:
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Host 192.168.2.1 has come online.
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 21/tcp is now listening with ftpd
&lt;/li&gt;
&lt;li class=&quot;li1&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Port 8080/tcp is now listening with Apche httpd
&lt;/li&gt;
&lt;li class=&quot;li2&quot;&gt;
&amp;nbsp;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is also the matter of the language I would implement this in,&lt;br /&gt;
Ive given it some thought and heres what I&amp;#8217;m thinking:&lt;br /&gt;
PERL&lt;br /&gt;
Pros:&lt;br /&gt;
- Many parsers and applications for Nmap&amp;#8217;s XML format already written&lt;br /&gt;
in this language.&lt;br /&gt;
Cons:&lt;br /&gt;
- Nmap would have to list PERL as an optional requirement.&lt;br /&gt;
Python:&lt;br /&gt;
Pros:&lt;br /&gt;
- Easy integration with Zenmap&lt;br /&gt;
- Nmap already relies on Python for Zenmap, no extra dependencies.&lt;br /&gt;
Cons:&lt;br /&gt;
- It seems that the only Nmap XML parser(xml-expert) is dead.&lt;br /&gt;
- I&amp;#8217;m not particularly fond of python.&lt;br /&gt;
C++:&lt;br /&gt;
Pros:&lt;br /&gt;
- Easy integration with Nmap/Zenmap&lt;br /&gt;
- Possible future integration for XML parsing with Nmap, resuming&lt;br /&gt;
scans and etc.&lt;br /&gt;
Cons:&lt;br /&gt;
- I couldn&amp;#8217;t find any prior work, so I would probably end up working&lt;br /&gt;
with LibXML2&lt;br /&gt;
As you can see, there are still a lot of unresolved details, I would&lt;br /&gt;
appreciate any input on this. Here are some of the requirements that&lt;br /&gt;
David gave me:&lt;br /&gt;
* It must read Nmap XML files. (It is explicitly not a requirement to&lt;br /&gt;
read any other type of output file.)&lt;br /&gt;
* It must compare two output files at a time.&lt;br /&gt;
* It must show which hosts have come up or gone down.&lt;br /&gt;
* It must show when a port has changed state.&lt;br /&gt;
* It must support comparing output files coming from different scans&lt;br /&gt;
(different Nmap options or different target specifications).&lt;br /&gt;
* It must allow output in English text.&lt;br /&gt;
* It must allow output in XML, with a format and DTD to be determined.&lt;br /&gt;
Cheers,&lt;br /&gt;
Michael&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3499#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sun, 15 Jun 2008 22:19:01 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3499 at http://planet-soc.com</guid>
</item>
<item>
 <title>First nmap merge. keep it simple.</title>
 <link>http://planet-soc.com/node/1645</link>
 <description>&lt;p&gt;I applied my first major Nmap patch today, Yay! major milestone. From my patch email:&lt;br /&gt;
I have just applied a patch that reorganizes where the ping&lt;br /&gt;
probe information for -PS, -PU, -PA, and -PO is stored. Previously&lt;br /&gt;
this information was stored haphazardly in the global class &amp;#8216;NmapOps&amp;#8217;,&lt;br /&gt;
I moved them into the &amp;#8217;scan_lists&amp;#8217; struct which isn&amp;#8217;t stored as a&lt;br /&gt;
global.&lt;br /&gt;
Ideally this wont change any functionality so if something is acting&lt;br /&gt;
weird with respect to the probes listed above, it may be my fault.&lt;br /&gt;
The most likely places a bug may appear would be in traceroute.(cc/h),&lt;br /&gt;
idle_scan.(cc/h), service_scan.(cc/h), services.(cc/h), targets.cc,&lt;br /&gt;
and scan_engine.cc. I have gone through all these functions thoroughly&lt;br /&gt;
but it is possible that I missed something.&lt;br /&gt;
Cheers,&lt;br /&gt;
Michael&lt;br /&gt;
&lt;a title=&quot;I&amp;#039;m sure I&amp;#039;m not the first to make this observation&quot; href=&quot;http://flickr.com/photos/35034346144@N01/103727025&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/28/103727025_9c1113cf39.jpg&quot; align=&quot;left&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;About 80% of the settings in Nmap are stored internally as global variables, it helps out a lot in simplifying how Nmap works (anything to help simplify a program that complex is welcome) but in some cases it can also block new features. For instance, it is imposable to specify a unique range of scan ports for each host in your scan; when you scan multiple hosts they all must have the same - globally stored - parameters.&lt;br /&gt;
Its kind of disappointing due to how powerful Nmaps parallelism is; if you need to specify two different option sets for two different host scans you effectively have to start Nmap twice. While this might be trivial for two hosts, imagine 10,000 hosts, each one with unique scan options; you cant possibly start each nmap scan at the same time due to memory limitations so the only options are to ether take a lowest common denominator type scan that encompass all options, or brute force the list a few commands at a time.&lt;br /&gt;
But to rectify this would require a massive redesign of how Nmap fundamentally functions - with the chance of introducing a massive amount of bugs into this pretty stable software package - and would necessarily complicate the command line interface to a point that might be overwhelming to a new user(lets not forget about GNU/Hurd).&lt;/p&gt;

&lt;p&gt;Fundamental software design problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you keep the software in a state that all users can use it&lt;/li&gt;
&lt;li&gt;Add awesome new feature that can do your taxes and clean the kitchen sink&lt;/li&gt;
&lt;li&gt;Keep the software in a state that no normal user can use the advanced features without adding any new functionality and start charging $1,500 per seat *COUGH*Nessus*COUGH*&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cheers,&lt;br /&gt;
Michael&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/1645#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 30 May 2008 06:07:02 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">1645 at http://planet-soc.com</guid>
</item>
<item>
 <title>First nmap merge. keep it simple.</title>
 <link>http://planet-soc.com/node/3812</link>
 <description>&lt;p&gt;I applied my first major Nmap patch today, Yay! major milestone. From my patch email:&lt;br /&gt;
I have just applied a patch that reorganizes where the ping&lt;br /&gt;
probe information for -PS, -PU, -PA, and -PO is stored. Previously&lt;br /&gt;
this information was stored haphazardly in the global class &amp;#8216;NmapOps&amp;#8217;,&lt;br /&gt;
I moved them into the &amp;#8217;scan_lists&amp;#8217; struct which isn&amp;#8217;t stored as a&lt;br /&gt;
global.&lt;br /&gt;
Ideally this wont change any functionality so if something is acting&lt;br /&gt;
weird with respect to the probes listed above, it may be my fault.&lt;br /&gt;
The most likely places a bug may appear would be in traceroute.(cc/h),&lt;br /&gt;
idle_scan.(cc/h), service_scan.(cc/h), services.(cc/h), targets.cc,&lt;br /&gt;
and scan_engine.cc. I have gone through all these functions thoroughly&lt;br /&gt;
but it is possible that I missed something.&lt;br /&gt;
Cheers,&lt;br /&gt;
Michael&lt;br /&gt;
&lt;a title=&quot;I&amp;#039;m sure I&amp;#039;m not the first to make this observation&quot; href=&quot;http://flickr.com/photos/35034346144@N01/103727025&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/28/103727025_9c1113cf39.jpg&quot; align=&quot;left&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;About 80% of the settings in Nmap are stored internally as global variables, it helps out a lot in simplifying how Nmap works (anything to help simplify a program that complex is welcome) but in some cases it can also block new features. For instance, it is imposable to specify a unique range of scan ports for each host in your scan; when you scan multiple hosts they all must have the same - globally stored - parameters.&lt;br /&gt;
Its kind of disappointing due to how powerful Nmaps parallelism is; if you need to specify two different option sets for two different host scans you effectively have to start Nmap twice. While this might be trivial for two hosts, imagine 10,000 hosts, each one with unique scan options; you cant possibly start each nmap scan at the same time due to memory limitations so the only options are to ether take a lowest common denominator type scan that encompass all options, or brute force the list a few commands at a time.&lt;br /&gt;
But to rectify this would require a massive redesign of how Nmap fundamentally functions - with the chance of introducing a massive amount of bugs into this pretty stable software package - and would necessarily complicate the command line interface to a point that might be overwhelming to a new user(lets not forget about GNU/Hurd).&lt;/p&gt;

&lt;p&gt;Fundamental software design problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you keep the software in a state that all users can use it&lt;/li&gt;
&lt;li&gt;Add awesome new feature that can do your taxes and clean the kitchen sink&lt;/li&gt;
&lt;li&gt;Keep the software in a state that no normal user can use the advanced features without adding any new functionality and start charging $1,500 per seat *COUGH*Nessus*COUGH*&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cheers,&lt;br /&gt;
Michael&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3812#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 30 May 2008 06:07:02 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">3812 at http://planet-soc.com</guid>
</item>
<item>
 <title>Google sent me a free book</title>
 <link>http://planet-soc.com/node/1258</link>
 <description>&lt;p&gt;Free as in free beer.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/1258#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/81">Nmap Security Scanner</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Fri, 16 May 2008 01:22:39 +0200</pubDate>
 <dc:creator>rhinovirus</dc:creator>
 <guid isPermaLink="false">1258 at http://planet-soc.com</guid>
</item>
</channel>
</rss>
