Elenco scansione Nmap di domini e fornire booleano se su / giù

1

Ho una lista separata di domini di nuova riga su cui vorrei eseguire una scansione nmap arbitraria (ad es. aggressiva, syn) e vorrei produrre un booleano che indichi se sono aperte o meno porte. La funzione principale qui è quella di dedurre se un server è attivo anche se si tratta di un blocco ping.

C'è un modello comune per realizzare questo?

Sto usando quanto segue per mettere i risultati in un file XML monolitico, ma le stanze non sono collegate.

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

2 risposte

4

Considera questo comando:

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

Un modello comune che utilizza lo scripting di shell consiste nell'utilizzare l'output grepable.

Usa i flag "-oG -", il trattino finale è reindirizzare l'output a stdout.

L'output da "-oG -" in questo esempio genera quanto segue quando l'ho eseguito sul mio server:

Host: 127.0.0.1 (localhost) Status: Up

L'output viene reindirizzato su awk, dove cerca stringhe che iniziano con "Host :, e contengono porte aperte.

Quando viene trovato questo modello, awk stamperà:

127.0.0.1 UP
    
risposta data 20.10.2014 - 21:32
fonte
1

Recentemente ho usato qualcosa come questo (script di PowerShell) per determinare semplicemente se il server riceve una risposta. so che non è nmap ma è semplice e veloce.

$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

Importi da CSV. nel tuo caso $ hostname potrebbe essere la lista di indirizzi IP che hai o nomi host.

Fornisce un output semplice che dice "up" o "down" a seconda che venga ricevuta una risposta.

puoi regolare il conto per determinare quanti ping devono essere inviati.

    
risposta data 21.10.2014 - 07:21
fonte

Leggi altre domande sui tag