Как отобразить все сервисы и версию, которая работает на хосте?

Я пытаюсь отобразить все сервисы и их версии, который работает на использовании хоста порты от 1 до 1 023, таким образом:

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)

Я знаю, как отобразить их, но не в формате выше:

хост nmap-p 1-1023-sV

БОЛЕЕ ПОЗДНЕЕ РЕДАКТИРОВАНИЕ:

Мне удалось отобразить только сервисы без любого дополнительного неполезного текста:

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

Какие выводы:

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?

Теперь мне действительно любопытно, как я могу избавиться от первых двух столбцов.

3
задан 14 January 2015 в 21:05

1 ответ

Эти работы наверняка, просто протестировал его, и это точно, что Вы хотите:

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

index находит 3-й столбец и возвращает его положение substring который затем отмечает то положение в целой строке $0. Все это затем отправляется в print который отображает его. Разделитель полей по умолчанию в awk является пробелом (пробелы, ВКЛАДКИ, новые строки) так никакая потребность в использовании-F переключатель.

3
ответ дан 1 December 2019 в 16:28

Другие вопросы по тегам:

Похожие вопросы: