Ndiff is het resultaat van een Google Summer of Code project in 2008 en is een nieuwe functie in Nmap 5.0. Ndiff neemt XML-uitvoerbestanden van twee Nmap-scans en toont je de verschillen. Het resultaat wordt weggeschreven in een XML-formaat dat verder automatisch kan worden gefilterd in leesbare tekst.

Scan dus eerst je netwerk met Nmap en schrijf het resultaat weg in XML-formaat, bijvoorbeeld:

# nmap -n -oX /root/baseline.xml 192.168.1.0/24

Verandert er nu iets aan je netwerk, bijvoorbeeld een host die er bijkomt of een service die in- of uitgeschakeld wordt, en voer je een nieuwe scan uit, dan genereer je als volgt een leesbaar rapport van de verschillen:

# ndiff /root/baseline.xml /root/new.xml

Als systeembeheerder kun je hier uiteraard heel wat mee doen. Stel bijvoorbeeld een cronjob op die dagelijks of wekelijks met nmap je netwerk scant en dan met ndiff de wijzigingen detecteert en naar je e-mailt. Daardoor ben je onmiddellijk op de hoogte als iemand op één van de computers op je netwerk een backdoor service geïnstalleerd heeft. Dit zorgt immers voor een nieuwe open poort in de uitvoer van ndiff. Een voorbeeld van een eenvoudig script dat dit doet:

date=`date "+%s"`

cd /root/ndiff/

nmap -T4 -F -sV -O -oA scan-${date} 192.168.1.0/24 > /dev/null

ndiff scan-old.xml scan-${date}.xml > scan-diff-${date}

cp scan-${date}.xml scan-old.xml

echo "\n********** NDIFF RESULTS **********\n"

cat scan-diff-${date}

echo "\n********** SCAN RESULTS **********\n"

cat scan-${date}.nmap

Bron: Techworld