Script para parsear los resultados XML de Nmap
Les dejo un pequeño el cual nos sirve para hacer un parser de los resultados XML del escaner NMAP.
#!/usr/bin/perl
foreach ( qx( nmap -sS -oX - -iL ips.lst ) ) {
$_ if /port|address/;
if( /<address addr=\"([.0-9]+)\".*|
<port protocol="(tcp)".*portid=\"([0-9]+)\".*<state state=\"([a-z]+)\".*<service name=\"([a-z0-9-]+)\"/ ){
print "$1 $2\t $3\t $4\t $5\n";
}
}
foreach ( qx( nmap -sS -oX - -iL ips.lst ) ) {
$_ if /port|address/;
if( /<address addr=\"([.0-9]+)\".*|
<port protocol="(tcp)".*portid=\"([0-9]+)\".*<state state=\"([a-z]+)\".*<service name=\"([a-z0-9-]+)\"/ ){
print "$1 $2\t $3\t $4\t $5\n";
}
}
La salida tendra un formato como el siguiente:
127.0.0.1
tcp 22 open ssh
tcp 5900 open vnc
tcp 22 open ssh
tcp 5900 open vnc
Se que existen modulos de cpan para realizar en mejor forma este procedimiento pero nunca viene mal aprender un poco realizando nuestro propio script.
0 Comentarios








