Активное исследование стека
Для того чтобы воспользоваться утилитой nmap и выполнить все перечисленные тесты (за исключением обработки фрагментации и обработки сообщений об ошибках ICMP), достаточно указать в командной строке параметр -o. Давайте посмотрим, как будет выглядеть полученный результат.
[tsunami] nmap -o 192.168.1.10 Starting nmap V. 2.53 by fyodor@insecure.org Interesting ports on shadow (192.168.1.10): Port State Protocol Service 7 open tcp echo 9 open tcp discard 13 open tcp daytime 19 open tcp chargen 21 open tcp ftp 22 open tcp ssh 23 open tcp telnet 25 open tcp smtp 37 open tcp time 111 open tcp sunrpc 512 open tcp exec 513 open tcp login 514 open tcp shell 2049 open tcp nfs 4045 open tcp lockd TCP Sequence Prediction: Class=randorn positive increments Difficulty=26590 (Worthy challenge) Remote operating system guess: Solaris 2.5, 2.51
Как видно, при включении режима исследования стека утилиты nmap можно легко получить достаточно точное определение типа и версии операционной системы. Даже если на изучаемом узле не открыто ни одного порта, утилита nmap поможет сделать довольно точное предположение об используемой операционной системе.
[tsunami]# nmap – p80 -o 10.10.10.10 Starting nmap V. 2.53 by fyodor@insecure.org Warning: No ports found open on this machine, OS detection will be MUCH less reliable No ports open for host (10.10.10.10) Remote OS guesses: Linux 2.0.27-2.0.30, Linux 2.0.32-34, Linux 2.0.35-36, Linux 2.1.24 PowerPC, Linux 2.1.76, Linux 2.1.91-2.1.103, Linux 2.1.122-2.1.132; 2.2.0-prel – 2.2.2, Linux 2.2.0-pre6-2.2.2-ac5 Nmap run completed – 1 IP address (1 host up) scanned in 1 second
Как видно из приведенного листинга, утилита nmap даже без открытых портов, правильно определила операционную систему Linux.
Одной из примечательных особенностей утилиты nmap является то, что листинг сигнатур хранится в отдельном файле с именем nmap-os-fingerprints. При появлении каждой новой версии утилиты этот файл также обновляется, и на момент написания данной книги в нем содержались сотни сигнатур. Если вы хотите добавить новые сигнатуры и повысить таким образом эффективность утилиты nmap, обратитесь ПО адресу http://www.insecure.org:80/cgi-bin/nmap-submit.cgi.
Хотя на момент написания данной книги утилита nmap, по-видимому, позволяет наиболее точно выполнить исследование стека TCP/IP, она, тем не менее, является далеко не первой программой, в которой реализована соответствующая технология. До того как Федор встроил в утилиту nmap средства определения операционной системы, для этих же целей уже была создана утилита queso (http://www.apostols.org/projectz/). Необходимо отметить, что утилита queso не позволяет выполнять сканирование портов и может определять тип операционной системы только при наличии в исследуемой системе открытого порта (по умолчанию используется порт 80). Если порт 80 закрыт, необходимо задать другой открытый порт, как показано в следующем примере, в котором с помощью утилиты queso осуществляется попытка определить тип операционной системы через порт 25.
[tsunami] queso 10.10.10.20:25 10.10.10.20:25 * Windoze 95/98/NT