Nmap Development mailing list archives
Re: Ndiff mark II
From: David Fifield <david () bamsoftware com>
Date: Thu, 26 Mar 2009 16:06:10 -0600
On Thu, Mar 26, 2009 at 01:51:11PM -0600, David Fifield wrote:
The branch doesn't support XML output becuase I think that should be redesigned too. That means it won't work with Zenmap currently.
I want to solicit advice for representing differences in XML output.
Current Ndiff enumerates each discrete change as an XML element:
<nmapdiff>
<scandiff a-start="1221154772" b-start="1221595162">
<host>
<address addr="10.214.143.33" addrtype="ipv4"/>
<hostname name="cuvtdnray-504.example.com"/>
<host-state-change a-state="unknown" b-state="up"/>
<host-address-add>
<address addr="10.214.143.33" addrtype="ipv4"/>
</host-address-add>
<host-hostname-add>
<hostname name="cuvtdnray-504.example.com"/>
</host-hostname-add>
<port-state-change a-state="unknown" b-state="filtered" portid="1" protocol="tcp"/>
<port-state-change a-state="unknown" b-state="filtered" portid="3" protocol="tcp"/>
...
I think we can get a more intuitive and less verbose output by being
more like Nmap XML output. Here's sample XML corresponding to the text
snippet:
10.226.19.80:
-Not shown: 999 filtered ports
+Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
+21/tcp open ftp Netgear broadband router ftpd 1.0
+23/tcp open telnet Netgear broadband router admin telnetd
+80/tcp open http Embedded Allegro RomPager webserver 4.07 UPnP/1.0 (ZyXEL ZyWALL 2)
-8701/tcp open unknown
<nmapdiff>
<scandiff>
<a/>
<b>
<host>
<status state="up"/>
<address addr="10.214.143.33" addrtype="ipv4" />
<hostnames>
hostname name="cuvtdnray-504.example.com" type="PTR" />
</hostnames>
<ports>
<extraports state="filtered" count="999"/>
<port protocol="tcp" portid="3389">
<state state="open"/>
<service name="microsoft-rdp" product="Microsoft Terminal Service" ostype="Windows"/>
</port>
</ports>
</host>
</b>
<host>
<status state="up"/>
<address addr="10.226.19.80" addrtype="ipv4"/>
<ports>
<a>
<extraports state="filtered" count="999"/>
</a>
<b>
<extraports state="filtered" count="997"/>
</b>
<a/>
<b>
<port protocol="tcp" portid="21">
<state state="open"/>
<service name="ftp" product="Netgear broadband router ftpd" version="1.0" devicetype="router"/>
</port>
</b>
<a/>
<b>
<port protocol="tcp" portid="23">
<state state="open"/>
<service name="telnet" product="Netgear broadband router admin telnetd" devicetype="broadband router"/>
</port>
</b>
<a/>
<b>
<port protocol="tcp" portid="80">
<state state="open"/>
<service name="http" product="Embedded Allegro RomPager webserver" version="4.07 UPnP/1.0" extrainfo="ZyXEL
ZyWALL 2"/>
</port>
</b>
<a>
<port protocol="tcp" portid="8701">
<state state="open"/>
<service name="unknown"/>
</port>
</a>
<b/>
</ports>
</host>
</scandiff>
</nmapdiff>
The <a> and <b> elements show what was present in the A and B scans
respectively. An <a> element must always be followed immediately by a
<b> element, even if one of those is empty. Is this a reasonable way to
do the diff? What other methods of representing differences in XML are
there?
David Fifield
_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://SecLists.Org
Current thread:
- Ndiff mark II David Fifield (Mar 26)
- Re: Ndiff mark II Daniel Roethlisberger (Mar 26)
- Re: Ndiff mark II David Fifield (Mar 26)
- Re: Ndiff mark II Dieter Van der Stock (Mar 26)
