Я пытаюсь отобразить все сервисы и их версии, который работает на использовании хоста порты от 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?
Теперь мне действительно любопытно, как я могу избавиться от первых двух столбцов.
Эти работы наверняка, просто протестировал его, и это точно, что Вы хотите:
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 переключатель.