Инструментальные средства обеспечения безопасности

       

Nmapfe


Nmap поставляется с собственным графическим интерфейсом, который вы можете использовать под управлением X Window. Эта программа называется nmapfe. Ее внешний вид изображен на рис. 6.1. Программа имеет много таких же как и nmap параметров, но использует экранные формы и меню для ввода информации от пользователя и сканирования конфигурации. Программа выглядит куда приятней и проще в использовании, но у нее по-прежнему остается много настроечных параметров, вводимых из командной строки.


Рис. 6.1.  Nmap front end (Nmapfe)

Пример из жизни. Разметка сетей и возможных целей

Давайте посмотрим на некоторые примеры использования nmap и увидим, какие следы остаются в журналах одного из хостов (старая система Linux с IP-адресом 192.168.1.100). Мы начнем со сканирования Ping (опция -sP) всей сети 192.168.1.0. Мы можем обозначить эту цель несколькими способами в командной строке:

nmap -sP "192.168.1.*" nmap -sP 192.168.1.0/24 nmap -sP 192.168.1.1-254

Последний метод позволяет нам пропустить сетевые адреса и адреса общего доступа подсети класса C. Это нормально, что Ping сканирует эти адреса, но их пропуск при сканировании порта бережет время.

bash-2.04$ nmap -sP 192.168.1.1-254

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ ) Host (192.168.1.1) appears to be up. Host (192.168.1.100) appears to be up. Host (192.168.1.101) appears to be up. Host (192.168.1.102) appears to be up.

Nmap run completed - 254 IP addresses (4 hosts up) scanned in 2 seconds

Сейчас мы знаем, какие хосты ответили на Ping запрос. Но что, если некоторые хосты блокируют ICMP Pings? Если вы повторите запрос, по умолчанию nmap использует ICMP Ping и TCP Ping (ссылка на опцию -P). Итак, видимо, это полный список. Сейчас мы должны сфокусироваться на нашем реальном сканировании портов на этих четырех системах. Давайте попробуем запустить nmap безо всяких опций на этих четырех системах и посмотрим, что получится.

bash-2.04$ nmap 192.168.1.1,100-102

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ ) Interesting ports on (192.168.1.1): (The 1548 ports scanned but not shown below are in state: closed) Port State Service 80/tcp open http


Interesting ports on (192.168.1.100): ( The 1539 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 80/tcp open http 512/tcp open exec 513/tcp open login 514/tcp open shell 1024/tcp open kdm 1032/tcp open iad3 6000/tcp open X11

Interesting ports on (192.168.1.101): (The 1547 ports scanned but not shown below are in state: closed) Port State Service 139/tcp open netbios-ssn 641/tcp open unknown

Interesting ports on (192.168.1.102): (The 1545 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 80/tcp open http

Nmap run completed - 4 IP addresses (4 hosts up) scanned in 17 seconds

Обратите внимание на синтаксис при спецификации цели. В отношении портов мы можем специфицировать IP-адреса с помощью комбинации разделенных запятой списков и диапазонов. Сейчас мы только что провели сканирование по умолчанию. Это значит, что сканировались только порты, которые указаны в служебном файле nmap, а также порты 1-1024. Использовались: обобщенный метод TCP connect() (возможно, самый громкий из возможных) и опция нормальной синхронизации (Normal timing). Давайте посмотрим, как теперь выглядит журнал Unix на 192.168.1.100.

Mar 15 20:25:33 originix in.telnetd[1653] : warning: can't get client address: Connection reset by peer Mar 15 20:25:33 originix in.telnetd[1653] : refused connect from unknown Mar 15 20:25:34 originix in.rlogind[1655] : warning: can't get client address: Connection reset by peer Mar 15 20:25:34 originix in.rlogind[1655] : refused connect from unknown Mar 15 20:25:34 originix in.ftpd[1656] : warning: can't get client address: Connection reset by peer Mar 15 20:25:34 originix in.ftpd[1656] : refused connect from unknown Mar 15 20:25:34 originix in.rshd[1658] : warning: can't get client address: Connection reset by peer Mar 15 20:25:34 originix in.rshd[1658] : refused connect from unknown Mar 15 20:25:34 originix in.rexecd[1657] : warning: can't get client address: Connection reset by peer Mar 15 20:25:34 originix in.rexecd[1657] : refused connect from unknown



Совершенно очевидно, что порты были просканированы, но эти службы не смогли определить IP-адрес клиента. Это потому, что nmap послал пакет сброса (RST) после завершения TCP вместо FIN. Некоторые службы в этом случае не смогут захватить IP-адрес сканера. Однако независимо от этого, у нас осталось множество свидетельств в журнале. Давайте прикинемся пользователем root и попробуем провести сканирование SYN с подлой политикой синхронизации. Это сканирование займет несколько больше времени, но не будет таким громким. Мы сделаем это только на 192.168.1.100, поэтому сможем просмотреть журналы. При проведении сканирования с тайными опциями синхронизации, хорошей идеей будет использовать признак -v или -d, чтобы можно было следить за тем, что происходит. Выходная информация будет слишком длинной, чтобы помещать ее здесь, но мы покажем командную строку.

# nmap -d -v -v -sS -T Sneaky -p 20-80 192.168.1.100

Проблема с тайным сканированием заключается в том, что оно занимает много времени. Поэтому мы хотим сократить диапазон портов. Даже 20-80 займет, по крайней мере, 15 секунд, умноженные на 61 порт. А это больше 15 минут! И это без учета 15-ти секундного времени ожидания ответов зондирования. Очевидно, тайное сканирование подойдет вам больше, если вы ищете конкретный порт среди целого ряда машин (вероятно, в надежде, что уязвимая служба работает за ней).

Хорошо то, что наши журналы на 192.168.1.100 не хранят никаких сведений. А 15-ти секундное время ожидания может быть достаточно длинным, чтобы предотвратить разоблачение нас через IDS.

Давайте посмотрим, как работает распознавание OS у nmap.

# nmap -O 192.168.1.1,100,101

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ ) Interesting ports on (192.168.1.1): (The 1548 ports scanned but not shown below are in state: closed) Port State Service 80/tcp open http

No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi). TCP/IP fingerprint: SInfo(V=2.54BETA30%P=i386-unknown-freebsd4.3%D=3/16%Time=3C9346F5%O=80%C=1) TSeq(Class=TD%gcd=1A4%SI=0%IPID=Z%TS=U) T1(Resp=Y%DF=N%W=400%ACK=S++%Flags=AR%Ops=) T2(Resp=Y%DF=N%W=400%ACK=S%Flags=AR%Ops=) T3(Resp=Y%DF=N%W=400%ACK=S++%Flags=AR%Ops=) T4(Resp=Y%DF=N%W=400%ACK=S%Flags=AR%Ops=) T5(Resp=Y%DF=N%W=400%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=N%W=400%ACK=S%Flags=AR%Ops=) T7(Resp=Y%DF=N%W=400%ACK=S++%Flags=AR%Ops=) PU(Resp=N)



Interesting ports on (192.168.1.100): ( The 1540 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 80/tcp open http 512/tcp open exec 513/tcp open login 514/tcp open shell 1024/tcp open kdm 6000/tcp open X11

Remote operating system guess: Linux 2.1.19 - 2.2.17 Uptime 2.597 days (since Wed Mar 13 23:00:28 2002) Interesting ports on (192.168.1.101): (The 1547 ports scanned but not shown below are in state: closed) Port State Service 139/tcp open netbios-ssn 641/tcp open unknown

Remote operating system guess: Windows 98 w/ Service Pack 1 Nmap run completed - 2 IP addresses (2 hosts up) scanned in 12 seconds

Nmap верно определил наши машины Linux и Windows. Он даже определил время безостановочной работы Linux. Тем не менее, у nmap были проблемы с нашим маршрутизатором Linksys. Мы сейчас можем послать этот отпечаток пальца разработчикам nmap, и этот Linksys будет узнаваемым в следующей версии nmap.


Содержание раздела