Nmap escanea la lista de dominios y proporciona booleano si está arriba / abajo

1

Tengo una lista de dominios separados por una nueva línea en los que me gustaría realizar un escaneo de nmap arbitrario (por ejemplo, agresivo, syn) y me gustaría mostrar un valor booleano que indique si hay puertos abiertos. La función principal aquí es deducir si un servidor está activo incluso si está bloqueando el ping.

¿Hay un patrón común para lograr esto?

Estoy usando lo siguiente para poner los resultados en un archivo XML monolítico, pero las estrofas no están conectadas.

 mkdir results ; for ip in 'cat servers'; do nmap -oX results/${ip}.xml -T4 -A $ip; done
    
pregunta Fred Concklin 20.10.2014 - 20:22
fuente

2 respuestas

4

Considera este comando:

nmap 127.0.0.1 -T4 -p 111 -sT -oG - | awk | awk '/^Host: .* Status:.*Up/ { print $2" UP" }'

Un patrón común que usa scripts de shell es usar la salida grepable.

Use las banderas "-oG -", el guión final es para redirigir la salida a la salida estándar.

La salida de "-oG -" en este ejemplo genera lo siguiente cuando lo ejecuté en mi propio servidor:

Host: 127.0.0.1 (localhost) Status: Up

La salida se redirige a awk, donde busca cadenas que comienzan con "Host :, y contienen puertos abiertos.

Cuando se encuentra este patrón, awk imprimirá:

127.0.0.1 UP
    
respondido por el Dog eat cat world 20.10.2014 - 21:32
fuente
1

Recientemente utilicé algo como esto (script de powershell) para determinar simplemente si el servidor recibe una respuesta. Sé que no es nmap pero es rápido y fácil.

$erroractionpreference = 'silentlycontinue'
$import = import-csv 'config-network device.csv'
$collection = $()
   foreach ($HostName in $import)
    {
       $status = @{ "ServerName" = $Hostname.HostName; "TimeStamp" = (Get-Date -f s) }
       if (Test-Connection $Hostname.Hostname -Count 2 -ea 0 -Quiet)
    { 
       $status["Results"] = "Up"
    } 
       else 
    { 
       $status["Results"] = "Down" 
    }
       New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
       $collection += $serverStatus

    }
      $collection | Export-Csv .\ServerStatus-networkALL2.csv -NoTypeInformation

Importas desde CSV. en su caso, $ nombre de host puede ser la lista de direcciones IP que tiene o nombres de host.

Proporciona una salida simple que dice "arriba" o "abajo" dependiendo de si se recibe una respuesta.

puede ajustar la cuenta para determinar cuántos pings deben enviarse.

    
respondido por el LewisFletch 21.10.2014 - 07:21
fuente

Lea otras preguntas en las etiquetas