Идентифицируйте себя, и службы расскажут о себе все
Использовав Netcat или специально предназначенную для сканирования портов программу (вроде nmap, см. лекцию "Сканеры портов") для определения, какие порты в системе открыты, вы можете получить более подробную информацию об этих портах. Обычно это можно сделать, подключившись к порту; служба немедленно сообщит вам номер версии, экземпляр и, возможно, сведения об управляющей операционной системе. В результате вы получите возможность использовать Netcat для сканирования определенного интервала портов и получения сведений о работающих службах.
Имейте в виду, что, используя Netcat в автоматическом режиме, вы не сможете вводить команды в командной строке, поскольку программа не ожидает ввода информации от пользователя на стандартный ввод. Если вы просто запустите на выполнение команду nc 192.168.1.100 20-80, вы не сможете ничего узнать, поскольку программа остановится на первом же установленном соединении (возможно, это будет web-сервер, прослушивающий 80 порт) и затем будет ожидать, когда вы что-либо сделаете. Так что вам понадобится вычислить, что подавать на вход всем этим службам, чтобы вынудить их сообщить нам о себе нечто большее. Как только вы это сделаете, передав службе команду QUIT и внеся путаницу, информация посыплется на вас, как бобы из корзинки.
[root@originix nc]#echo QUIT | ./nc -v 192.168.1.100 21 22 80 originix [192.168.1.100] 21 (ftp) open 220 originix FTP server (Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999) ready. 221 Goodbye originix [192.168.1.100] 22 (ssh) open SSH-2.0-OpenSSH_2.3.0p1 Protocol mismatch. originix [192.168.1.100] 80 (www) open <!Doctype HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>501 Method Not Implemented</TITLE> </HEAD><BODY> <H1>Method Not Implemented</H1> QUIT to /index.html not supported.<P> Invalid method in request QUIT<P> <HR> <ADDRESS>Apache/1.3.14 Server at 127.0.01 Port 80</ADDRESS> </BODY></HTML> [root@originix nc]# Совет. Помните, что когда вы автоматически подключаетесь к нескольким портам, используйте опцию -v, чтобы можно было отделить вывод сообщений одной службы от другой.
Также, если вы используете автоматическое соединение с несколькими портами, один из которых telnet-сервер, вам следует использовать опцию -t, чтобы пропустить передаваемую двоичную информацию (следствие взаимодействия telnet-сервера с клиентом). Обычно хорошим выходом является пропустить 23 порт и работать с ним отдельно.
Полученный результат не слишком красив, но мы узнали о версиях трех работающих служб. Взломщик может использовать информацию для поиска версий, имеющих слабые места (http://www.securityfocus.com/ - прекрасное место для поиска информации о слабых местах разных версий программ). Взломщик, который нашел привлекательный с его точки зрения порт, может попытаться получить больше информации о нем, сосредоточившись на исследовании этой службы и попытавшись говорить на ее языке.
Сосредоточимся на web-сервере Apache. QUIT - команда, которую протокол HTTP не понимает. Попытаемся сказать что-нибудь более подходящее.
[root@originix nc]#./nc -v 192.168.1.100 80 originix [192.168.1.100] 80 (www) open GET / HTTP HTTP/1.1 200 OK Date% Tue, 12 Feb 2002, 09:43:07 GMT Server: Apache/1.3.14 (Unix) (Red-Hat/Linux) Last Modified: Sat, 05 Aug 2000 04:39:51 GMT Etag: "3a107-24-398b9a97" Accept-Ranges: bytes Content-Length: 36 Connection: Close Contebt-Type: text/html I don't think you mean to go here. [root@originix nc]#
Какая прелесть! Мы сказали коротенькую HTTP-фразу (набрав команду GET/HTTP и затем дважды нажав клавишу Enter) и Apache ответил. Он показал нам корневой файл index.html и все HTTP заголовки в нетронутом виде без преобразований, которые обычно выполняют браузеры на прикладном уровне. Заголовки сервера сообщили нам не только то, что мы имеем дело с сервером Apache на Unix-машине, но и то, что это машина находится под управлением Red-Hat.
Совет. Чтобы ввести в заблуждение взломщика, системный администратор может изменить эту информацию. Это не так просто, но неизменно приводит взломщиков в изумление, если, конечно, они доверяют получаемой информации.