Como exibir todos os serviços e versões que são executados em um host?

3

Estou tentando exibir todos os serviços e suas versões que são executados em um host usando as portas de 1 a 1023, desta forma:

ssh, OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0)
smtp, Postfix smtpd
http, Apache httpd 2.2.22 ((Ubuntu))
rpcbind
imap, Courier Imapd (released 2011)
ssl/imap, Courier Imapd (released 2011)

Eu sei como exibi-los, mas não no formato acima:

nmap -p 1-1023 -sV host

EDITAR MAIS TARDE:

Consegui exibir apenas os serviços sem qualquer texto desnecessário:

nmap -p 1-1023 -sV host | head -n -5 | tail -n +7

Quais resultados:

8/tcp   open  http       BitTornado tracker T-0.3.18
21/tcp  open  ftp        vsftpd 2.3.5
22/tcp  open  ssh        OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0)
23/tcp  open  telnet     Linux telnetd
25/tcp  open  smtp       Postfix smtpd
80/tcp  open  http       Apache httpd 2.2.22 ((Ubuntu))
111/tcp open  rpcbind
143/tcp open  imap       Courier Imapd (released 2011)
158/tcp open  ssh        OpenSSH 5.9p1 Debian 5ubuntu1.1 (protocol 2.0)
165/tcp open  ssh        OpenSSH 5.9p1 Debian 5ubuntu1.1 (protocol 2.0)
177/tcp open  ftp        vsftpd 2.3.5
210/tcp open  ssh        OpenSSH 5.9p1 Debian 5ubuntu1.1 (protocol 2.0)
993/tcp open  ssl/imaps?

Agora estou realmente curioso para saber como posso me livrar das duas primeiras colunas.

    
por Adrian George 14.01.2015 / 18:45

1 resposta

3

Este funciona com certeza, apenas testamos e é exatamente o que você quer:

nmap -p 1-1023 -sV host | head -n -5 | tail -n +7 | awk '{print substr($0, index($0, $3))}'

index localiza a terceira coluna e retorna sua posição para substring , que marca essa posição na linha inteira $0 . Tudo isso é então enviado para print , que o exibe. O separador de campos padrão no awk é whitespace (espaços, TABs, newlines), portanto não há necessidade de usar o parâmetro -F.

    
por mbiber 14.01.2015 / 19:44

Tags