NAME
Parse::Nessus::NBE - use to extract specific data from Nessus NBE files
SYNOPSIS
use Parse::Nessus::NBE;function(@nessusdata);function(@nessusdata,$query);
DESCRIPTION
This module is designed to extract information from Nessus NBE files. Functions have been designed to return certain sets of data, such as service banners and OS versions. Other functions have been provided that will return more specific information, such as all IPs listening on a given port or all IPs associated with a specified plugin id.
EXAMPLES
To obtain a list of banners
my @banners = nbanners(@nessusdata);print @banners;# returnsIP|service banner# example192.168.0.5|CompaqHTTPServer/2.1192.168.0.11|Apache/1.3.26 (Unix) mod_perl/1.24192.168.0.30|Microsoft-IIS/5.0192.168.0.31|220 cpan01 FTP server (SunOS 5.8) ready.192.168.0.51|NetWare HTTP Stack192.168.0.99|220 Service ready for new user....
To query by port
my $port = 80;my @ports = nports(@nessusdata,$port);print @ports;# returnsIP|specified port# example192.168.0.5|ssh (22/tcp)192.168.0.6|ssh (22/tcp)192.168.0.8|ssh (22/tcp)192.168.0.23|ssh (22/tcp)192.168.0.89|ssh (22/tcp)...
To obtain a list of web directories
my @webdirs = nwebdirs(@nessusdata);print @webdirs;# returnsIP|web port|web dir(s)|web dir(s) requiring authentication# example192.168.0.21|http (80/tcp)|/css /design /downloads /images /js192.168.0.43|http (80/tcp)|/images /public|/console192.168.0.47|https (443/tcp)|/files /html /images /js /jsp192.168.0.101|https (443/tcp)|/application /common /images /report|/printers192.168.0.110|http (80/tcp)|/admin...
To obtain a list of nfs shares
my @nfs = nnfs(@nessusdata);print @nfs;# returnsIP|nfs port|nfs share(s)# example192.168.0.11|nfs (2049/tcp)|/apps (mountable by everyone)192.168.0.31|nfs (2049/tcp)|/cdrom (mountable by everyone)192.168.0.28|nfs (2049/tcp)|/data (mountable by everyone)192.168.0.45|nfs (2049/tcp)|You are running a superfluous NFS daemon...192.168.0.108|nfs (2049/tcp)|You are running a superfluous NFS daemon......
To obtain a OS listing
my @os = nos(@nessusdata);print @os;# returnsIP|OS version# example192.168.0.1|IOS 12.1.5-12.2(6a), Cisco IOS 12.1(5)-12.2(7a)192.168.0.154|Linux 2.1.19 - 2.2.20192.168.0.111|HP Advancestack Etherswitch 224T or 210192.168.0.92|AIX 4.2-4.3.3192.168.0.10|NT Server 4.0 SP4-SP5 running Checkpoint Firewall-1...
To obtain a listing of SNMP community strings
my @snmp = nsnmp(@nessusdata);print @snmp;# returnsIP|SNMP community string(s)# example192.168.0.1|private public192.168.0.111|public192.168.0.121|private public192.168.0.128|private public192.168.0.145|public...
To query by plugin id
my $plugin = 10667;my @plugin = nplugin(@nessusdata,$plugin);print @plugin;# returnsIP|port|plugin data# example192.168.0.202|https (443/tcp)|...OpenSSL which is;older than 0.9.6e...192.168.0.222|https (443/tcp)|...OpenSSL which is;older than 0.9.6e...192.168.0.235|https (443/tcp)|...OpenSSL which is;older than 0.9.6e...192.168.0.236|https (443/tcp)|...OpenSSL which is;older than 0.9.6e...192.168.0.237|https (443/tcp)|...OpenSSL which is;older than 0.9.6e......
To obtain a OS count, useful for graphing
my @countos = nstatos(nessusdata);print @countos;# returnsOS version|count# exampleWindows NT4 or 95/98/98SE|17Windows 2000 Advanced Server SP3|14TOPS-20 Monitor 7(21733),KL-10 (DEC 2065)|11Cisco router running IOS 12.1.5-12.2.13a|11PS2 Linux 1.0|9Linux 2.4.17 on HP 9000 s700|7Cisco 2620 running IOS 12.1(6)|6Windows 2000 Server SP3|5Windows NT4 Workstation SP6a|4Nortel/Alteon ACE Director 3 Version 6.0.42-B|4
To obtain a service count, useful for graphing
my @countservices = nstatservices(nessusdata);print @countservices;# returnsservice port|count#examplehttp (80/tcp)|69telnet (23/tcp)|48netbios-ssn (139/tcp)|48https (443/tcp)|46loc-srv (135/tcp)|42ftp (21/tcp)|39smtp (25/tcp)|34pcanywheredata (5631/tcp)|30ssh (22/tcp)|25sun-answerbook (8888/tcp)|22
To obtain a vulnerability count, useful for graphing
# note: options are as follows:# 1 returns high severity vulnerabilties# 2 returns medium severity vulnerabilities# 3 returns low level security notesmy @countvulns = nstatvulns(@nessusdata,1);print @countvulns;#returnsplugin id|count#example11875|4011412|1710116|1211856|1110932|1010937|711793|6
AUTHOR
David J Kyger <[email protected]>
Thanks
Gwendolynn ferch Elydyr <[email protected]>
COPYRIGHT
Copyright 2003 David J Kyger. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.