From 59e4189e7040cdd6380a99ae09c93f9531a734b5 Mon Sep 17 00:00:00 2001 From: fyodor Date: Wed, 7 Sep 2005 08:26:45 +0000 Subject: [PATCH] About to release Nmap 3.84ALPHA2 if all goes well --- CHANGELOG | 61 +- Makefile.in | 2 +- NmapOps.cc | 1 + NmapOps.h | 1 + TargetGroup.cc | 4 +- configure | 42 + configure.ac | 38 + docs/nmap_russian.1 | 1856 ++++++++++++++++++++----------------- nmap-os-fingerprints | 210 ++--- nmap-service-probes | 2083 ++++++++++++++++++++++++++++++++++++------ nmap.cc | 11 + nmap.h | 1 + nmap_winconfig.h | 2 +- service_scan.cc | 120 ++- service_scan.h | 21 + 15 files changed, 3219 insertions(+), 1234 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 10f8bc948..e63ec4d61 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,63 @@ # Nmap Changelog ($Id$) +o Fixed crash when Nmap is compiled using gcc 4.X by adding the + --fno-strict-aliasing option when that compiler is detected. Thanks + to Greg Darke (starstuff(a)optusnet.com.au) for discovering that + this option fixes (hides) the problem and to Duilio J. Protti + (dprotti(a)flowgate.net) for writing the configure patch to detect + gcc 4 and add the option. A better fix is to identify and rewrite + lines that violate C99 alias rules, and we are looking into that. + +o Applied an enormous nmap-service-probes (version detection) update + from SoC student Doug Hoyte (doug(a)hcsw.org). Version 3.81 had + 1064 match lines covering 195 service protocols. Now we have 2865 + match lines covering 359 protocols! So the database size has nearly + tripled! This should make your -sV scans quicker and more + accurate. Thanks also go to the (literally) thousands of you who + submitted service fingerprints. Keep them coming! + +o Added "rarity" feature to Nmap version detection. This causes + obscure probes to be skipped when they are unlikely to help. Each + probe now has a "rarity" value. Probes that detect dozens of + services such as GenericLines and GetRequest have rarity values of + 1, while the WWWOFFLEctrlstat and mydoom probes have a rarity of 9. + When interrogating a port, Nmap always tries probes registered to + that port number. So even WWWOFFLEctrlstat will be tried against + port 8081 and mydoom will be tried against open ports between 3127 + and 3198. If none of the registered ports find a match, Nmap tries + probes that have a rarity less than or equal to its current + intensity level. The intensity level defaults to 7 (so that most of + the probes are done). You can set the intensity level with the new + --version_intensity option. Alternatively, you can just use + --version_light or --version_all which set the intensity to 2 (only + try the most important probes and ones registered to the port + number) and 9 (try all probes), respectively. --version_light is + much faster than default version detection, but also a bit less + likely to find a match. This feature was designed and implemented + by Doug Hoyte (doug(a)hcsw.org). + +o Added a "fallback" feature to the nmap-service-probes database. + This allows a probe to "inherit" match lines from other probes. It + is currently only used for the HTTPOptions, RTSPRequest, and + SSLSessionReq probes to inherit all of the match lines from + GetRequest. Some servers don't respond to the Nmap GetRequest (for + example because it doesn't include a Host: line) but they do respond + to some of those other 3 probes in ways that GetRequest match lines + are general enough to match. The fallback construct allows us to + benefit from these matches without repeating hundreds of signatures + in the file. This is another feature designed and implemented + by Doug Hoyte (doug(a)hcsw.org). + +o Fixed crash with certain --excludefile or + --exclude arguments. Thanks to Kurt Grutzmacher + (grutz(a)jingojango.net) and pijn trein (ptrein(a)gmail.com) for + reporting the problem, and to Duilio J. Protti + (dprotti(a)flowgate.net) for debugging the issue and sending the + patch. + +o Applied pach from Steve Martin (smartin(a)stillsecure.com) which + standardizes many OS names and corrects typos in nmap-os-fingerprints. + o Fixed a crash found during certain UDP version scans. The crash was discovered and reported by Ron (iago(a)valhallalegends.com) and fixed by Doug Hoyte (doug(a)hcsw.com). @@ -76,9 +134,6 @@ o Applied a massive OS fingerprint update from Zhao Lei broadband routers, printers, WAPs and pretty much any other device you can coax an ethernet cable (or wireless card) into! -o Integrated hundreds of nmap-service-probes signatures from Doug - Hoyte (doug(a)hcsw.org) - o Added a distcc probes and a bunch of smtp matches from Dirk Mueller (mueller(a)kde.org) to nmap-service-probes. Also added AFS version probe and matches from Lionel Cons (lionel.cons(a)cern.ch). And diff --git a/Makefile.in b/Makefile.in index a35d33876..5b21c73b2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -export NMAP_VERSION = 3.84ALPHA1 +export NMAP_VERSION = 3.84ALPHA2 NMAP_NAME= nmap NMAP_URL= http://www.insecure.org/nmap/ NMAP_PLATFORM=@host@ diff --git a/NmapOps.cc b/NmapOps.cc index 271253592..b2130a941 100644 --- a/NmapOps.cc +++ b/NmapOps.cc @@ -225,6 +225,7 @@ void NmapOps::Initialize() { osscan = 0; servicescan = 0; override_excludeports = 0; + version_intensity = 7; pingtype = PINGTYPE_UNKNOWN; listscan = pingscan = allowall = ackscan = bouncescan = connectscan = 0; rpcscan = nullscan = xmasscan = fragscan = synscan = windowscan = 0; diff --git a/NmapOps.h b/NmapOps.h index 86b6d37c2..20ecb108c 100644 --- a/NmapOps.h +++ b/NmapOps.h @@ -246,6 +246,7 @@ class NmapOps { // Version Detection Options int override_excludeports; + int version_intensity; struct in_addr decoys[MAX_DECOYS]; int osscan_limit; /* Skip OS Scan if no open or no closed TCP ports */ diff --git a/TargetGroup.cc b/TargetGroup.cc index af9ddfa64..ee12853c1 100644 --- a/TargetGroup.cc +++ b/TargetGroup.cc @@ -305,8 +305,8 @@ int TargetGroup::parse_expr(const char * const target_expr, int af) { * returns: number of hosts skipped */ int TargetGroup::skip_range(_octet_nums octet) { unsigned long hosts_skipped = 0, /* number of hosts skipped */ - oct = 0, /* octect number */ - i; /* simple lcv */ + oct = 0; /* octect number */ + int i = 0; /* simple lcv */ /* This function is only supported for RANGES! */ if (targets_type != IPV4_RANGES) diff --git a/configure b/configure index 21118d1ee..00a8cf57e 100755 --- a/configure +++ b/configure @@ -2680,6 +2680,48 @@ echo "$as_me: error: Could not locate a C++ compiler. If it exists, add it to yo { (exit 1); exit 1; }; } fi +nmap_gcc_mayor_version=0 +echo "$as_me:$LINENO: checking whether the compiler is gcc 4 or greater" >&5 +echo $ECHO_N "checking whether the compiler is gcc 4 or greater... $ECHO_C" >&6 +if test x"$GXX" = xno; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +else + # On some distros, there are snapshots available as gcc4 + if test -z "$ac_cv_prog_CC" || test x"$CC" = xgcc4; then + our_gcc="$CC" + else + our_gcc="$ac_cv_prog_CC" + fi + # new mayor versions must be added here + case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in + *4.) + nmap_gcc_mayor_version=4 + ;; + *3) + nmap_gcc_mayor_version=3 + ;; + *2) + nmap_gcc_mayor_version=2 + ;; + *1) + nmap_gcc_mayor_version=1 + ;; + esac + if test "$nmap_gcc_mayor_version" -ge 4; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi +fi + +# Remember that all following tests will run with this CXXFLAGS by default +if test "$nmap_gcc_mayor_version" -ge 4; then + CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" +fi + diff --git a/configure.ac b/configure.ac index b17a84144..177dd9cfe 100644 --- a/configure.ac +++ b/configure.ac @@ -47,6 +47,44 @@ if test $CXXPROG = "MISSING"; then AC_MSG_ERROR([Could not locate a C++ compiler. If it exists, add it to your PATH or give configure the CXX=path_to_compiler argument. Otherwise, install a C++ compiler such as g++ or install a binary package of Nmap (see http://www.insecure.org/nmap/nmap_download.html ))]) fi +nmap_gcc_mayor_version=0 +AC_MSG_CHECKING([whether the compiler is gcc 4 or greater]) +if test x"$GXX" = xno; then + AC_MSG_RESULT([no]) +else + # On some distros, there are snapshots available as gcc4 + if test -z "$ac_cv_prog_CC" || test x"$CC" = xgcc4; then + our_gcc="$CC" + else + our_gcc="$ac_cv_prog_CC" + fi + # new mayor versions must be added here + case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in + *4.) + nmap_gcc_mayor_version=4 + ;; + *3) + nmap_gcc_mayor_version=3 + ;; + *2) + nmap_gcc_mayor_version=2 + ;; + *1) + nmap_gcc_mayor_version=1 + ;; + esac + if test "$nmap_gcc_mayor_version" -ge 4; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi + +# Remember that all following tests will run with this CXXFLAGS by default +if test "$nmap_gcc_mayor_version" -ge 4; then + CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" +fi + dnl AC_PROG_INSTALL dnl AC_PATH_PROG(MAKEDEPEND, makedepend) diff --git a/docs/nmap_russian.1 b/docs/nmap_russian.1 index 79fa0fa11..1ee0fa09b 100644 --- a/docs/nmap_russian.1 +++ b/docs/nmap_russian.1 @@ -1,836 +1,1020 @@ -.\" This definition swiped from the gcc(1) man page -.de Sp -.if n .sp -.if t .sp 0.4 -.. -.TH NMAP 1 -.SH НАЗВАНИЕ -nmap \- Утилита для сканирования и исследования безопасности сети. -.SH ИСПОЛЬЗОВАНИЕ -.B nmap -[Метод(ы) сканирования] [Опции] <Хост или сеть #1,[#N]> -.SH ОПИСАНИЕ - -.I Nmap -предназначен для сканирования сетей с любым количеством объектов, -определения состояния объектов сканируемой сети а также портов -и соответствующих им служб. Для этого -.I nmap -использует много различных методов сканирования, таких, как UDP, -TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), -Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование. -Более подробное их описание приведено в разделе -.I Опции выбора методов сканирования. -Nmap также поддерживает большой набор дополнительных возможностей, а именно: -определение операционной системы (далее - ОС) удаленного хоста с использованием -отпечатков стека TCP/IP, "невидимое" сканирование, динамическое вычисление -времени задержки и повтор передачи пакетов, параллельное сканирование, -определение неактивных хостов методом параллельного ping-опроса, -сканирование с использованием ложных хостов, определение наличия пакетных -фильтров, прямое (без использования portmapper) RPC-сканирование, -сканирование с использованием IP-фрагментации а также произвольное -указание IP-адресов и номеров портов сканируемых сетей. -.PP -Результатом работы Nmap является список отсканированных портов -удаленной машины с указанием номера и состояния порта, типа -используемого протокола а также названия службы, закрепленной -за этим портом. Порт характеризуется тремя возможными -состояниями: "открыт", "фильтруемый" и "нефильтруемый". -Состояние "открыт" означает, что удаленная машина прослушивает -данный порт. Состояние "фильтруемый" означает, что фаирволл, -пакетный фильтр или другое устройство блокирует доступ к этому -порту и Nmap не смог определить его состояние. "Нефильтруемый" -означает, что по результатам сканирования Nmap воспринял данный -порт как закрытый, при этом средства защиты не помешали Nmap -определить его состояние. Это состояние Nmap определяет в любом -случае (даже если большинство сканируемых портов хоста фильтруются). -.PP -В зависимости от указанных опций, Nmap также может определить -следующие характеристики сканируемого хоста: метод генерации -TCP ISN, имя пользователя (username) владельца процесса, -зарезервировавшего сканируемый порт, символьные имена, -соответствующие сканируемым IP-адресам и т.д. -.SH OPTIONS -Большинство опций могут комбинироваться друг с другом. -Одни опции предназначены для выбора определенного метода -сканирования, другие указывают на использование дополнительных -возможностей или служат для настройки различных параметров сканирования. -.I nmap -предупреждает пользователя о недопустимом сочетании указанных им опций. -.Sp -Те, кто хотят немедленно начать работу с программой, могут пропустить -этот раздел и перейти к изучению -.I примеров -вызова Nmap в конце данного руководства. Вы -можете также запустить -.B nmap -h -для получения краткой справки по всем опциям. -.TP -.B Опции выбора методов сканирования. -.TP -.B \-sT -Использовать метод TCP connect(). Наиболее общий метод сканирования -TCP-портов. Функция connect(), присутствующая в любой ОС, позволяет -создать соединение с любым портом удаленной машины. Если указанный -в качестве аргумента порт открыт и прослушивается сканируемой машиной, -то результат выполнения connect() будет успешным (т.е. соединение -будет установлено), в противном случае указанный порт является закрытым, -либо доступ к нему заблокирован средствами защиты. -.Sp -Для того, чтобы использовать данный метод, пользователь может не иметь никаких -привилегий на сканирующем хосте. Этот метод сканирования легко -обнаруживается целевым (т.е. сканируемым) хостом, поскольку его -log-файл будет содержать запротоколированные многочисленные попытки -соединения и ошибки выполнения данной операции. Службы, -обрабатывающие подключения, немедленно заблокируют доступ адресу, -вызвавшему эти ошибки. -.TP -.B \-sS -использовать метод TCP SYN. Этот метод часто называют "полуоткрытым" -сканированием, поскольку при этом полное TCP-соединение с портом -сканируемой машины не устанавливается. Nmap посылает SYN-пакет, -как бы намереваясь открыть настоящее соединение, и ожидает ответ. -Наличие флагов SYN|ACK в ответе указывает на то, что порт удаленной -машины открыт и прослушивается. Флаг RST в ответе означает обратное. -Если Nmap принял пакет SYN|ACK, то в ответ немедленно отправляет -RST-пакет для сброса еще не установленного соединения (реально эту -операцию выполняет сама ОС). Очень немного сайтов способны обнаружить -такое сканирование. Пользователь должен иметь статус root для -формирования поддельного SYN-пакета. -.Sp -Для ускорения процесса опроса портов при сканировании больших сетей -совместно с опцией -sS вы можете использовать режим, позволяющий опросить -какой-либо порт на всех активных объектах сканируемой вами сети намного -быстрее, чем при использовании одной опции -p. Это можно сделать с -помощью опции -PS <порт>. -.TP -.B \-sF \-sX \-sN -"Невидимое" FIN, Xmas Tree и NULL-сканирование. Эти методы используются -в случае, если SYN-сканирование по каким-либо причинам оказалось -неработоспособным. Так, некоторые фаирволлы и пакетные фильтры "ожидают" -поддельные SYN-пакеты на защищенные ими порты, и программы типа Synlogger -или Courtney способны отследить SYN-сканирование. -.Sp -Идея заключается в следующем. В FIN-сканировании в качестве запроса -используется FIN-пакет. В Xmas Tree используется пакет с набором флагов -FIN|URG|PSH, а NULL-сканирование использует пакет без флагов. -Согласно рекомендации RFC 973 п. 64, ОС сканируемого хоста должна -ответить на такой пакет, прибывший на закрытый порт, пакетом RST, в -то время как открытый порт должен игнорировать эти пакеты. -Разработчики Microsoft Windows, как обычно, решили полностью -игнорировать все общепринятые стандарты и пойти своим путем. -Поэтому любая ОС семейства Windows не посылает в ответ RST-пакет, -и данные методы не будут работать с этими ОС. Однако во всем есть -свои плюсы, и в Nmap этот признак является основным для -различения операционных систем, обладающих таким свойством. -Если в результате FIN-сканирования вы получили список -открытых портов, то это не Windows. Если же все эти методы -выдали результат, что все порты закрыты, а SYN-сканирование -обнаружило открытые порты, то вы скорей всего имеете дело с ОС Windows. -К сожалению, Windows не единственная ОС, обладающая этим недостатком. -К таким ОС относятся также Cisco, BSDI, IRIX, HP/UX и MVS. -Все эти ОС не отправляют RST-пакеты. -.TP -.B \-sP -Ping-"сканирование". Иногда вам необходимо лишь узнать адреса -активных хостов в сканируемой сети. Nmap может сделать это, -послав ICMP-сообщение "запрос эха" на каждый IP-адрес, -указанный вами. Хост, отправивший ответ на эхо, является активным. -Некоторые сайты (например microsoft.com) блокируют эхо-пакеты. -По этой причине Nmap также посылает TCP ACK-пакет на 80-й порт -сканируемого хоста (по умолчанию). Если в ответ вы получили -RST-пакет, хост активен. Третий метод использует SYN-пакет и -ожидает в ответ RST либо SYN|ACK. -Для пользователей, не обладающих статусом root, используется -метод connect(). -.Sp -Для root-пользователей Nmap по умолчанию использует параллельно -оба метода - ICMP и ACK. Вы можете изменить это, используя опцию -.B \-P -описанную ниже. -.Sp -Заметим, что ping-сканирование по умолчанию выполняется в любом -случае и только активные хосты подвергаются сканированию. -Используйте эту опцию только в случае, если вы хотите выполнить -только ping-опрос, не производя сканирования портов. -.TP -.B \-sU -Сканировать UDP-порты. Этот метод используется для определения, -какие UDP-порты (RFC 768) на сканируемом хосте являются открытыми. -На каждый порт сканируемой машины отправляется UDP-пакет без данных. -Если в ответ было получено ICMP-сообщение "порт недоступен", -это означает, что порт закрыт. В противном случае предполагается, -что сканируемый порт открыт. -.Sp -Некоторые считают сканирование UDP-портов бесполезным занятием. -Мы в этом случае напоминаем о известной "дыре" в демоне rpcbind -ОС Solaris. Он может быть обнаружен на любом из недокументированных -UDP-портов с номером, больше 32770. Если вы обнаружите его, то -будет уже не важно, блокируется ли 111-й порт фаирволлом или нет. -.Sp -К сожалению, сканирование UDP-портов проходит очень медленно, -поскольку практически все ОС следуют рекомендации RFC 1812 -(раздел 4.3.2.8) по ограничению скорости генерирования -ICMP-сообщений "порт недоступен". Например, ядро Linux -(каталог net/ipv4/icmp.h) ограничивает генерирование таких -сообщений до 80 за 4 секунды с простоем 0,25 секунды, если -это ограничение было превышено. У ОС Solaris еще более жесткое -ограничение (2 сообщения в секунду), и поэтому сканирование -Solaris проходит еще более медленно. -.I nmap -определяет параметры этого ограничения, и соответственно уменьшает -количество генерируемых запросов, предотвращая тем самым затопление -сети ненужными пакетами, которые игнорируются целевой машиной. -.Sp - Как обычно, Microsoft снова все проигнорировала, и не использует - в своих ОС никаких ограничений. Поэтому вы очень быстро можете - просканировать все 65535 UDP-портов хоста, работающего под управлением - ОС Windows. -.Sp -.TP -.B \-sO -Сканирование протоколов IP. Данный метод используется для -определения IP-протоколов, поддерживаемых сканируемым хостом. -Метод заключается в передаче хосту IP-пакетов без какого-либо -заголовка для каждого протокола сканируемого хоста. -Если получено сообщение "Протокол недоступен", то данный -протокол хостом не используется. В противном случае Nmap -предполагает, что протокол поддерживается хостом. -.Sp -Некоторые ОС (AIX, HP-UX, Digital UNIX) и фаирволлы могут -блокировать передачу сообщений "Протокол недоступен". -По этой причине все сканируемые протоколы будут "открыты" -(т.е. поддерживаются). Поскольку описанная техника схожа -с методом сканирования UDP-портов, ограничение скорости генерации -ICMP-сообщений также будет иметь место. Однако поле "тип протокола" -IP-заголовка состоит всего лишь из 8 бит, поэтому 256 протоколов -будут отсканированы за приемлемое время. -.TP -.B \-sI -Сканирование "вхолостую". Позволяет произвести абсолютно невидимое -сканирование портов. Атакующий может просканировать цель, -не посылая при этом пакетов от своего IP-адреса. -Вместо этого используется метод IdleScan, позволяющий -просканировать жертву через так называемый хост-"зомби". -Кроме абсолютной невидимости, этот тип сканирования позволяет -определить политику доверия между машинами на уровне протокола IP. -Листинг результатов показывает открытые порты со стороны хоста-"зомби". -.Sp -Таким образом, можно просканировать цель с использованием нескольких "зомби", -которым цель может "доверять", в обход фаирволлов и пакетных фильтров. -Такого рода информация может быть самой важной при выборе целей "первого удара". -Вы можете указать конкретный порт для проверки изменения IPID на хосте-"зомби". -В противном случае Nmap будет использовать номер порта по умолчанию для "tcp ping". -.Sp -Мы подготовили статью с описанием этого метода, Вы можете ознакомиться с ней по -адресу -http://www.cherepovets-city.ru/insecure/runmap/runmap-idlescan.htm. -.TP -.B \-sA -Использовать ACK-сканирование. Этот дополнительный метод используется -для определения набора правил (ruleset) фаирволла. В частности, он -помогает определит, защищен ли сканируемый хост фаирволлом или просто -пакетным фильтром, блокирующим входящие SYN-пакеты. -.Sp -В этом методе на сканируемый порт хоста отправляется ACK-пакет -(со случайными значениями полей acknowledgement number и sequence number). -Если в ответ пришел RST-пакет, порт классифицируется как "нефильтруемый". -Если ответа не последовало (или пришло ICMP-сообщение о недоступности порта), -порт классифицируется как "фильтруемый". Заметим, что -.I nmap -не выдает "нефильтруемые" порты в результатах, поэтому -если вы не обнаружите ни одного открытого порта при использовании -этого типа сканирования, это будет означать, что все порты просканированы -и являются нефильтруемыми. Обращаем ваше внимание, что этот метод никогда -не покажет состояние порта "открыт" в результатах сканирования. -.TP -.B \-sW -Использовать метод TCP Window. Этот метод похож на ACK-сканирование, -за исключением того, что иногда с его помощью можно определять -открытые порты точно так же, как и фильтруемые/нефильтруемые. -Это можно сделать, проверив значение поля Initial Window TCP-пакета, -возвращаемого хостом в ответ на посланный ему запрос, ввиду наличия -определенных особенностей обработки данного поля у некоторых ОС. -Список уязвимых операционных систем включает в себя по крайней мере -несколько версий AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, -OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, -OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX и VxWorks. -Для более подробной информации смотрите архив nmap-hackers. -.TP -.B \-sR -использовать RPC-сканирование. Этот метод используется совместно -с другими методами сканирования и позволяет определить программу, -которая обслуживает RPC-порт, и номер ее версии. Для этого все -открытые TCP/UDP-порты хоста затопляются NULL-командами оболочки -SunRPC, после чего определяются RPC-порты и закрепленные за ними -программы. Таким образом, вы легко получаете информацию, которую -могли бы получить с помощью команды 'rpcinfo -p', даже если -portmapper сканируемого хоста закрыт фаирволлом или -TCP-wrapper'ом. -.TP -.B \-sL -Получить список сканируемых адресов. Эта опция позволяет -вам получить список адресов хостов, которые БУДУТ просканированы -Nmap, до начала процесса сканирования. По умолчанию определяются -имена хостов, однако это можно запретить, используя опцию -n. -Опция может использоваться в случае, когда вам необходимо определить -имена большого количества хостов по их адресам и т.д. -.TP -.B \-b -использовать атаку "Прорыв через FTP". Интересной "возможностью" -протокола FTP (RFC 959) является поддержка "доверенных" (proxy) -ftp-соединений. Другими словами, с доверенного хоста source.com -можно соединиться с ftp-сервером target.com и отправить файл, -находящийся на нем, на любой адрес Internet! Заметим, что данная -возможность известна с 1985 года (когда был написан этот RFC). -Nmap использует эту "дыру" для сканирования портов с "доверенного" -ftp-сервера. Итак, вы можете подключиться к ftp-серверу "над" -фаирволлом и затем просканировать заблокированные им порты -(например 139-й). Если ftp-сервер позволяет читать и записывать -данные в какой-либо каталог (например /incoming), вы также -можете отправить любые данные на эти порты. -.Sp -Аргумент, указываемый после '-b', представляет собой URL сервера ftp, -используемого в качестве "доверенного". Формат URL следующий: -.I имя_пользователя:пароль@сервер:порт. - Адрес сервера нужно указать обязательно, остальное можно не указывать. -.TP -.B Опции настройки и выбора дополнительных возможностей. -Эти опции не обязательные (т.е. возможна нормальная работа Nmap и без их указания), -однако все они являются весьма полезными. -.TP -.B \-P0 -Не производить ping-опрос хостов перед их непосредственным сканированием. -Эта опция позволяет просканировать сети, блокирующие обработку ICMP-эха -с помощью фаирволлов. Примером такой сети является microsoft.com, и вы -всегда должны использовать опцию '-P0'или '-PT80'(см. ниже), когда -сканируете такую сеть. -.TP -.B \-PT [список_портов] -использовать TCP "ping". Вместо посылки запроса ICMP-эха, Nmap -отправляет TCP ACK-пакет на сканируемый хост и ожидаем ответ. -Если хост активен, то в ответ должен придти RST-пакет. Для не-root -пользователей используется функция connect(). Эта опция позволяет -вам определить состояние сканируемого хоста, даже если обработка -ICMP-эха запрещена фаирволлом. Для указания номера порта сканируемого -сервера, на который будет отправляться ACK-пакет, используется опция --PT<порт1>[,порт2][...]. По умолчанию используется 80-й порт, -поскольку он практически никогда не фильтруется. -.TP -.B \-PS [список_портов] -Опция, также используемая для ping-опроса. При этом вместо -ACK-пакета TCP "ping" используется SYN-пакет. Активные хосты -посылают в ответ RST-пакеты (реже - SYN|ACK). -.TP -.B \-PU [список_портов] -Использовать UDP Ping. Nmap отправляет UDP-пакеты на указанный -хост и ожидает в ответ ICMP "port unreachable" (или ответы от -открытых портов UDP) если хост активен. Поскольку большинство -служб, использующих UDP, не отвечают на запросы, Вам лучше -использовать порты, которые заведомо закрыты. -.TP -.B \-PE -Эта опция использует в качестве ping-запроса нормальный -ping-пакет (запрос ICMP-эха). Опция применяется для поиска -активных хостов а также адресов сетей с возможностью широковещания. -Такие сети пересылают прибывший ICMP-пакет всем своим объектам. -Как правило, такие сети представляют собой "живую мишень" для хакера. -.TP -.B \-PP -Использует пакет ICMP "timestamp request (code 13)" для определения активных хостов. -.TP -.B \-PM -Схожа с опциями -.B \-PE -и -.B \-PP -за исключением того, что используется пакет "netmask request" (ICMP code 17). -.TP -.B \-PB -режим ping-опроса по умолчанию. Использует одновременно запросы типа ACK ( -.B \-PT -) и ICMP ( -.B \-PE -). -.TP -.B \-O -Эта опция позволяет определить операционную систему сканируемого хоста с -помощью метода отпечатков стека TCP/IP. Другими словами, Nmap активизирует -мощный алгоритм, функционирующий на основе анализа свойств сетевого -программного обеспечения установленной на нем ОС. В результате сканирования -получается формализованный "отпечаток", состоящий из стандартных тестовых -запросов и "ответов" хоста на них. Затем полученный отпечаток сравнивается -с имеющейся базой стандартных ответов известных ОС, хранящейся в файле -nmap-os-fingerprinting, и на основании этого принимается решение о типе -и версии ОС сканируемого хоста. -.Sp -Этот метод требует наличия хотя бы одного закрытого и одного открытого -порта на целевом хосте. Если вы обнаружите машину, у которой это условие -выполняется, но Nmap не смог определить версию ОС - вышлите нам адрес этой -машины. Если же, по каким-либо причинам выслать адрес не представляется -возможным, запустите Nmap с опцией '-d' и вышлите полученный отпечаток. -.TP -.B \-6 -Опция разрешает поддержку протокола IPv6. Все хосты должны поддерживать -IPv6 при использовании этой опции, и могут быть указаны путем нормального -имени DNS (запись AAAA) или литеральным IP-адресом, например -3ffe:501:4819:2000:210:f3ff:fe03:4d0. На данный момент, поддерживаются -только методы TCP connect()-сканирование и TCP connect() Ping-сканирование. -Если Вам необходимо UDP или другой тип сканирования, рекомендуем -ссылку http://nmap6.sourceforge.net/ -.TP -.B \-I -Использовать reverse-ident сканирование. Протокол Ident (RFC 1413) -позволяет вскрыть имя пользователя (username) процесса, использующего -TCP, даже если этот процесс не инициализировал соединение. Так, например, -вы можете подключиться к порту http и затем использовать identd для -поиска на сервере пользователя root. Это может быть сделано только -при установлении "полного" TCP-соединения с портом сканируемой машины -(т.е. необходимо использовать опцию '-sT'). Nmap опрашивает identd -сканируемого хоста параллельно с каждым открытым портом. Естественно, -этот метод не будет работать, если на целевом хосте не запущен identd. -.TP -.B \-f -Эта опция используется совместно с SYN, FIN, Xmas или NULL-сканировании -и указывает на необходимость использования IP-фрагментации с малым -размером фрагментов. Идея заключается в том, чтобы разбить TCP-заголовок -пакета на несколько фрагментов (обычно два) на стороне источника. -Сканируемый хост "собирает" эти IP-фрагменты в один TCP-пакет. -.Sp -Это значительно усложняет фильтрацию пакетов, работу систем обнаружения -и других подобных средств защиты, и позволяет Nmap скрыть свои действия. -Будьте осторожны, используя эту опцию! Некоторые программы "зависают" при -попытке собрать такие маленькие фрагменты. Так, например, весьма неплохой -"сниффер" завис сразу же при получении первого 36-байтного фрагмента. -А следом за ним пришел 24-байтный фрагмент. -.TP -.B \-v -Использовать режим "подробного отчета". Эту опцию рекомендуется -использовать в любых случаях, поскольку при этом Nmap подробно -сообщает о ходе выполнения текущей операции. Для получения лучшего -эффекта можно указать ее дважды. Ну а если вы укажете еще опцию -.B \-d -то от скроллинга экрана у вас может закружиться голова. -.TP -.B \-h -Печатает справку по использованию Nmap с указанием опций -и краткого их описания, не запуская саму программу. -.TP -.B \-oN <имя_файла> -Записывает результаты сканирования в указанный файл -.B в удобной для пользователя -форме. -.TP -.B \-oX <имя_файла> -Записывает результаты сканирования в файл, указанный в качестве -аргумента, в формате -.B XML -Это позволяет программам легче интерпретировать вывод Nmap'а. -Вы можете использовать аргумент '-' (без кавычек) для вывода на stdout. -Нормальный вывод в этом случае будет подавлен. Document Type Definition (DTD) -расшифровывающий структуру результатов Nmap в формате XML доступен здесь: - http://www.insecure.org/nmap/data/nmap.dtd . -.TP -.B \-oG <имя_файла> -Записывает результаты сканирования в файл, указанный в качестве аргумента, -в формате, удобном для команд типа grep. Это простой формат, при котором -все данные записываются в одну строку. Формат пришел на смену опции -oM -(см. ранние версии) и использовался для взаимодействия с другими программами. -Сейчас мы рекомендуем использовать XML. Также возможно использование аргумента '-'. -.TP -.B \-oA <база_имени_файла> -Записывает результаты во всех основных форматах (нормальном, grep и XML). -Вам необходимо указать базу имени, и выходные файлы будут называться -base.nmap, base.gnmap и base.xml. -.TP -.B \-oS <имя_файла> -Эту возможность мы предусмотрели для любителей языка -.B s| -Если вы прервали сканирование сети нажатием комбинации , -то вы можете продолжить его, используя эту опцию, если результаты -сканирования записывались в лог-файл с помощью опций '-oG' или '-oN'. -В этом случае запустите Nmap с указанием этой опции и имени файла, в -который производилась запись предыдущего сеанса. При этом никаких других -опций указывать не нужно, поскольку при возобновлении сканирования -будут использоваться опции, указанные в предыдущем сеансе. Nmap -продолжит сканирование с адреса, следующего за последним "завершенным". -.TP -.B \--append_output -Указывает Nmap дописать результаты сканирования в файл, вместо -того, чтобы заменить его. -.TP -.B \-iL <имя_файла> -Считывает описание целевых хостов из текстового файла. Файл должен -содержать список имен хостов или IP-адресов, разделенных пробелами, -знаками табуляции или комбинацией (каждый хост - с новой строки). -Если вы хотите использовать StdIn в качестве источника информации о хостах, -укажите вместо имени файла символ '-'. Более подробная информация о -форматах выражений приведены в разделе "Способы задания целевого хоста". -.TP -.B \-iR <число_хостов> -Если вы укажете эту опцию, Nmap будет сканировать случайно выбранные -им хосты, адреса которых получены с помощью генератора случайных величин. -Этот процесс будет длиться, пока вы его не остановите. Функция может -пригодиться для статистического исследования Internet. -.TP -.B \-p <диапазон(ы)_портов> -Эта опция указывает Nmap, какие порты необходимо просканировать. -Например, '-p 23' означает сканирование 23 порта на целевой машине. -Если указано выражение типа '-p 20-30,139,60000-' Nmap будет -сканировать порты с номерами с 20 по 30 включительно, 139 и от -60000 и выше (до 65535). По умолчанию Nmap сканирует все порты в диапазоне -1-1024, поскольку все они перечислены в файле services. -.TP -.B \-F -Быстрое сканирование. Указывает Nmap на необходимость сканирования портов -только тех служб, которые перечислены в файле services. Сканирование -проходит гораздо быстрее, чем если бы Nmap сканировал все 65535 портов. -.TP -.B \-D <ложный_хост1,[ложный_хост2],[,ME],...> -В этом режиме Nmap "создает" ложные хосты, адреса которых задаются -произвольно и указываются в качестве аргументов. При этом на стороне -сканируемого хоста создается видимость, что производится одновременное -сканирование с различных хостов (обладающих разными IP-адресами), что -очень затрудняет обнаружение вашего реального IP-адреса. -.Sp -Адреса разделяются запятой. Вы также можете указать свой IP-адрес - -(аргумент 'ME') в качестве одного из хостов. Если вы поместите -аргумент 'ME' на шестой позиции или дальше, некоторые распространенные -скан-детекторы (например, scanlogd авторства Solar Designer'а) скорее -всего не покажут ваш IP-адрес вообще. Если вы явно не указали аргумент 'ME', -Nmap поместит вас на случайную позицию. Также вы можете указать имена -хостов вместо их IP-адресов. Заметим, что хосты, указанные вами в качестве -ложных, должны реально существовать и функционировать, в противном случае -вы можете "затопить" сканируемый хост SYN-пакетами. Это также может -способствовать обнаружению вашего хоста, потому что если ложные хосты -не функционируют, то единственным работающим хостом окажется ваш. -.Sp -Стоит заметить, что некоторые скан-детекторы блокируют доступ хосту, -осуществившему попытку сканирования. Поэтому ложный хост может потерять -соединение со сканируемым хостом. Эта ситуация может возникнуть даже в -том случае, если вы указали в качестве ложного хоста адрес шлюза или 'localhost'. -Поэтому аккуратно используйте эту опцию. -.Sp -Ложные хосты могут использоваться с любым методом сканирования, а -также при определении операционной системы. Если вы указали много -ложных хостов, это замедлит процесс сканирования и сделает его менее -точным. Некоторые провайдеры могут отфильтровывать ваши пакеты (но еще -больше их не отфильтруют), и в этом случае использование ложных хостов -не даст вам ожидаемого результата. -.TP -.B \-S -Если Nmap не смог автоматически определить IP-адрес вашего хоста -(о чем вы получили соответствующее сообщение), вам необходимо -самостоятельно указать IP-адрес, используя его в качестве аргумента -данной опции (т.е. адрес интерфейса, который вы хотите использовать). -Другое применение данной опции - для создания видимости сканирования -целевого хоста кем-то другим. В этом случае вы не сможете получить -результат, однако на стороне сканируемого хоста создается видимость -сканирования с указанного вами адреса. Для этого совместно с -'-S' необходимо использовать опцию '-e'. -.TP -.B \-e <интерфейс> -указывает Nmap, какой интерфейс будет использоваться для -приема/передачи пакетов. Имя интерфейса указывается в качестве -аргумента опции. Nmap обычно сам определяет интерфейс, однако -выдаст вам соответствующее сообщение, если по каким-либо причинам -он не смог этого сделать. -.TP -.B \-g <номер_порта> -указывает номер порта на вашем компьютере, который будет -использоваться Nmap для осуществления сканирования. Многие -фаирволлы и пакетные фильтры позволяют проходить пакетам DNS -(порт 53) и FTP-DATA (порт 20) к защищаемому ими хосту и установить -соединение. Этот момент является большой "дырой" в безопасности -фаирволлов, поэтому атакующему ничего не стоит отправлять нужные -ему пакеты через 53-й или 20-й порт. -.TP -.B \--data_length <число> -Обычно Nmap посылает пакет, содержащий только заголовок. Таким образом, -TCP-пакет имеет длину 40 байт, а ICMP "echo requests" - 28. Эта опция -добавляет к большинству пакетов (кроме пакетов для определения ОС) -указанное число нулевых байт. Добавляет конспирации. -.TP -.B \-n -Никогда не преобразовывать адреса обнаруженных хостов в DNS-адрес. -Увеличивает скорость сканирования. -.TP -.B \-R -Всегда преобразовывать адреса обнаруженных хостов в DNS-адрес. -.TP -.B \-r -Не переставлять номера сканируемых портов случайным образом. -.TP -.B \-ttl <значение> -Записывает в поле TTL отправляемых пакетов IPv4 заданное значение. -.TP -.B \-\-randomize_hosts -Указывает Nmap на необходимость случайной перестановки каждой -группы из 2048 хостов перед непосредственным их сканированием. -Эта опция делает сканирование менее заметным для различных систем -сетевого мониторинга, особенно если вы используете ее совместно с -опцией настройки времени, устанавливающей более медленное сканирование. -.TP -.B \-M <максимум_сокетов> -устанавливает максимальное количество сокетов, используемых параллельно -в методе TCP connect() сканирования. Установка меньшего значения немного -замедляет процесс сканирования, но предотвращает "завал" сканируемого хоста. -Для последней цели лучше всего использовать опцию '-sS', так как -SYN-сканирование гораздо легче "переносится" операционными системами. -.TP -.B --packet_trace -Показывать все принимаемые и передаваемые пакеты в формате TCPDump. -.TP -.B --datadir [каталог] -При запуске Nmap считывает данные из файлов nmap-services, nmap-protocols, -nmap-rpc, и nmap-os-fingerprints. Их местоположение Nmap берет из переменной ---nmapdir. Затем проверяется переменная окружения NMAPDIR, после чего ~/nmap, -а затем путь наподобие /usr/share/nmap . А потом Nmap ищет их в текущем каталоге. -Этой опцией можно явно задать положение этих файлов. -.TP -.B Опции настройки временных параметров -Обычно Nmap автоматически настраивает временные параметры в соответствии -с характеристиками сканируемой сети. Настройки осуществляются, во-первых, -для проведения максимально быстрого сканирования, и во-вторых, -для уменьшения вероятности появления ошибок. Если вас не устраивает -автоматическая настройка временных параметров, вы можете настроить их -самостоятельно, используя эти опции. -.TP -.B -T -эта опция устанавливает временной режим сканирования. Требуемый режим -указывается в качестве аргумента. Режим -.B Paranoid -используется в случае, -когда очень велика вероятность использования скан-детекторов. В этом -режиме сканирование проходит очень медленно. Параллельное сканирование -не используется. Вместо этого Nmap проводит сканирование последовательно, -с интервалом по меньшей мере 5 минут между посылкой пакетов. Режим -.B Sneaky -похож на режим Paranoid. Разница заключается в том, что интервал между -посылкой двух пакетов составляет 15 секунд. Режим -.B Polite -используется в случае, когда необходимо минимизировать нагрузку на -сеть и уменьшить вероятность "завала" сканируемого хоста. В этом -режиме тесты проходят последовательно с интервалом минимум 0,4 секунды. -Режим -.B Normal -используется Nmap по умолчанию. В этом режиме сканирование производится -с максимально возможной скоростью, и по возможности без перегрузки сети -и возникновения ошибок. В режиме -.B Aggressive -устанавливается ограничение на сканирование одного хоста, равное 5 минутам, -и, кроме того, время ожидания ответа на запрос не превышает 1,25 секунды. -Режим -.B Insane -применяется только при сканировании очень быстрых сетей. -Время сканирования одного хоста составляет 75 секунд, а ожидание ответа на -запрос - 0,3 секунды. -.Sp -Каждому режиму присвоен соответствующий номер, и вы можете указать его -вместо полного названия режима. Так, опция '-T0' означает режим -Paranoid, а '-T5' - Insane. Нумерация соответствует порядку, в котором -они были перечислены выше. Заметим, что опция '-T' осуществляет настройку -Nmap на высоком уровне, и не должна использоваться с опциями, приведенными -ниже (они обеспечивают низкоуровневую настройку). -.TP -.B --host_timeout <миллисекунд> -Устанавливает время, отводимое Nmap на полное сканирование одного хоста, -прежде чем он перейдет к очередному IP-адресу. По умолчанию этот параметр -отсутствует, т.е. Nmap не переходит к очередному адресу до окончания -сканирования текущего. -.TP -.B --max_rtt_timeout <миллисекунд> -Устанавливает верхнюю границу временного интервала, в течение которого -Nmap ожидает ответ на посланный запрос, прежде чем повторить запрос либо -послать новый. По умолчанию это значение установлено равным 9000 миллисекунд. -.TP -.B --min_rtt_timeout <миллисекунд> -Если сканируемый хост немедленно отвечает на посланный запрос, Nmap -сразу же передает следующий, сэкономив тем самым очень много времени. -Это ускоряет сканирование, но может привести к потере пакетов с ответами, -пришедшими несколько позже, чем обычно. Эта опция устанавливает нижнюю -границу времени ожидания ответа, т.е. Nmap в любом случае будет ждать -в течении указанного вами времени не зависимо от того, пришел ответ или нет. -.TP -.B --initial_rtt_timeout <миллисекунд> -Устанавливает время, отводимое на начальный тест. Эта опция -используется в основном для сканирования хостов, защищенных -фаирволлом, совместно с опцией '-P0'. Обычно Nmap автоматически -выбирает оптимальное значение этого параметра. Значение по -умолчанию составляет 6000 миллисекунд. -.TP -.B --max_parallelism <количество> -Устанавливает максимальное количество параллельных процессов сканирования, -используемых Nmap. Установка этого параметра равным 1 означает, что Nmap -никогда не будет сканировать более одного порта в один момент времени. -.TP -.B --min_parallelism <количество> -Устанавливает минимальное количество параллельных процессов сканирования, -используемых Nmap. Увеличивает скорость прохождения пакетов через фаирволлы. -.TP -.B --scan_delay <миллисекунд> -устанавливает минимальное время задержки между тестами. -Эта опция может использоваться для снижения нагрузки на сеть и -уменьшения вероятности обнаружения сканирования. -.TP - -.SH СПОСОБЫ ЗАДАНИЯ ЦЕЛЕВОГО ХОСТА -Все, что не является опцией или ее аргументом, Nmap воспринимает как -адрес или имя целевого хоста (т.е. хоста, подвергаемого сканированию). -Простейший способ задать сканируемый хост - указать его имя или адрес в -командной строке после указания опций и аргументов. Если вы хотите -просканировать подсеть IP-адресов, вам необходимо указать параметр -.B '/mask' -("маска") после имени или IP-адреса сканируемого хоста. -Маска может принимать следующие значения: -'/0' - сканировать весь Интернет; -'/16' - сканировать адреса класса B; -'/24' - сканировать адреса класса С; -'/32' - сканировать только указанный хост. -.Sp -Nmap позволяет также гибко указать целевые IP-адреса, используя -списки и диапазоны для каждого их элемента. Например, необходимо -просканировать подсеть класса B с адресом 128.210.*.*. -Задать эту сеть можно любым из следующих способов: -128.210.*.* -128.210.0-255.0-255 -128.210.1-50,51-255.1,2,3,4,5-255 -128.210.0.0/16 -Все эти строки эквивалентны. Заметим, что если вы используете "звездочку" -('*'), то в большинстве оболочек вам понадобится отделить ее -обратной "косой чертой" либо апострофами. Приведем еще один пример. -Если вы указали в качестве целевого IP-адреса строку '*.*.5.6-7', -Nmap отсканирует все IP-адреса, оканчивающиеся на 5.6 либо 5.7. -Более подробно примеры вызова программы Nmap приведены ниже. - -.SH ПРИМЕРЫ -Приведем некоторые примеры использования Nmap и соответствующие -способы запуска программы с указанием параметров в командной строке. -.Sp -.B nmap -v target.example.com -.Sp -Сканировать все зарезервированные TCP-порты на хосте target.example.com. -Опция '-v' означает включение режима подробного отчета о ходе процесса -сканирования. -.Sp -.B nmap -sS -O target.example.com/24 -.Sp -Запускает SYN-сканирование всех 255 машин с адресами класса C, одной -из которых является target.example.com. Кроме того, осуществляется -определение ОС каждого из сканируемых хостов. Для этого вам необходим статус root. -.Sp -.B nmap -sX -p 22,53,110,143,4564 "198.116.*.1-127" -.Sp -Осуществляет Xmas-сканирование первой половины адресов (0-127) каждой из -255 подсетей класса B адресного пространства 128.210.*.*. На этих хостах -тестируется присутствие sshd (22 порт), DNS (53), pop3d (110), imapd -(143) и состояние порта 4564. Обращаем внимание, что Xmas-сканирование -не будет работать с ОС Windows, CISCO, IRIX, HP/UX и BSDI. -.Sp -.B nmap -v --randomize_hosts -p 80 '*.*.2.3-5' -.Sp -Nmap будет искать все машины, IP-адрес которых оканчивается на .2.3, -.2.4 и .2.5. Если ваш статус root, вы также можете просканировать -порты обнаруженных хостов, указав опцию '-sS'. Вы найдете много -интересных машин, адреса которых начинаются на 127. Поэтому мы -рекомендуем вместо первой звездочки указать '127-222'. -Попробуйте обязательно! -.Sp -.B "host -l company.com | cut '-d ' -f 4 | ./nmap -v -iL -" -.Sp -Просканировать серверы DNS зоны и найти хосты в домене company.com, -передав затем в Nmap их адреса. Так выглядит команда для GNU/Linux. -Для других ОС она будет выглядеть несколько иначе. -.SH ВОЗМОЖНЫЕ ОШИБКИ -Если вы обнаружили какие-либо симптомы, говорящие о неверной работе -программы, или нашли место в коде, приводящее к такому эффекту - -немедленно отправьте нам эту информацию. Не забывайте также отправлять -нам отпечатки ОС, чтобы пополнять базу данных Nmap. Программа выдаст -вам соответствующее сообщение и URL, где она обнаружила новый отпечаток. -.SH АВТОРЫ -.Sp -Базовая версия: Nmap 3.ХХ -release by Fyodor -.I -.Sp -Русская версия: RuNmap 3.ХХ, -Алексей Волков -.I -.SH РАСПРОСТРАНЕНИЕ -Новейшую версию Nmap и RuNmap вы можете получить по адресам -.Sp -.I http://www.cherepovets-city.ru/insecure -.Sp -.I http://www.insecure.org/ -.Sp -.I nmap -(C) 1995-2003 by Insecure.Com LLC -.Sp -Эта программа бесплатна, Вы можете распространять и вносить -изменения в исходный код с соответствии с требованиями GNU General -Public License, опубликованной Free Software Foundation; версия 2. -Это дает Вам право модифицировать и распространять программу с -некоторыми ограничениями. Если Вы не можете принять условия данной -лицензии, Вы можете обратиться к нам за приобретением дополнительных -лицензий (sales@insecure.com). -.Sp -Если Вы получили программу с дополнительными лицензионными требованиями, -отличными от приведенных выше (GNU GPL), это означает, что на полученную -Вами программу распространяется дополнительное соглашение, -имеющее преимущество перед приведенным выше. -.Sp -Исходный код программы в полном объеме прилагается к дистрибутиву -поскольку пользователи должны иметь право знать, что сделает программа -прежде, чем она будет запущена. Кроме того, наличие исходного кода -позволяет быстро устранить ошибки в программе. -.Sp -Наличие исходного кода также позволит переносить Nmap на другие -платформы и добавлять новые возможности. Вы можете отправить Ваши -доработки на адрес alex@cherepovets-city.ru и, возможно, они будут -включены в следующие версии программы. Высылая Ваши доработки нам, -Вы тем самым предоставляете Insecure.Org неограниченное право на -использование, модификацию и релицензирование кода на свободное -распространение согласно GNU GPL. Если Вы желаете определить Ваши -дополнительные условия, просто вышлите их перед высылкой самого кода. -.Sp -Программа распространяется с надеждой авторов на то, что она будет -полезной для тех, кто ее использует, но -.B БЕЗ ВСЯКИХ ГАРАНТИЙ; -и без гарантии на то, что она находится -.B В СОСТОЯНИИ, ПРИГОДНОМ ДЛЯ ПРОДАЖИ. -Смотрите GNU -General Public License (файл COPYING в дистрибутиве -.I nmap -). -.Sp -Также заметим, что работа Nmap иногда приводит к сбою -некоторых приложений, стеков TCP/IP, и даже операционных -систем. -.B Авторы Nmap не несут ответственности за последствия, -которые могут быть вызваны запуском, работой и (или) воздействием -программы на любые вычислительные системы, сети и хосты, равно -как не возмещают ущерб, причиненный действиями третьих лиц при -использовании Nmap. Ответственность за подобные действия возлагается -на лиц, их совершивших. -.Sp -Из соображений безопасности программа Nmap не должна запускаться -с привилегиями (например suid root). -.Sp -Библиотека -.I Libpcap -распространяется совместно с Nmap. Владельцы авторского права: -Van Jacobson, Craig Leres и Steven McCanne, Национальная -лаборатория Lawrence Berkley Калифорнийского университета, -Беркли, Калифорния. Версия, распространяемая с Nmap, может -быть модифицирована. Исходный код библиотеки можно получить по адресу -http://www.tcpdump.org . -.Sp -Вопросы и комментарии отправляйте по адресу: -.I alex@cherepovets-city.ru +.\" This definition swiped from the gcc(1) man page +.de Sp +.if n .sp +.if t .sp 0.4 +.. +.TH NMAP 1 +.SH НАЗВАНИЕ ПРОГРАММЫ +nmap \- the Network Mapper \- инструмент для сканирования и исследования безопасности Сети. +.SH ИСПОЛЬЗОВАНИЕ +.B nmap +[тип(ы) сканирования] [опции] <хост или сеть #1 ... [#N]> +.SH ОПИСАНИЕ +Nmap создан для системных администраторов и любопытных индивидуумов для +того, что бы сканировать сети с любым количеством объектов для +определения доступности хостов и идентификации сервисов, которые они +предоставляют. +.PP +Nmap поддерживает такие виды сканирования как: UDP, TCP connect(), TCP +SYN (полуоткрытое соединение), ftp proxy (bounce attack), ICMP (ping), +FIN, ACK, Xmas Tree, SYN, IP Protocol и NULL. +.PP +Смотрите секцию Типы Сканирования для более подробной информации. +.PP +Nmap также поддерживает ряд расширенных особенностей, - например +удалённое определение операционной системы методом снятия отпечатка +TCP/IP стека, стелс-сканирование, вычисление динамической задержки и +интервала повторной передачи, параллельное сканирование, определение +неактивных хостов методом параллельного ping-сканирования, сканирование с +использованием ложных хостов, обнаружение систем фильтрации трафика (port +filtering detection), прямое (без использования portmapper) RPC-сканирование, IP-фрагментацию при сканировании, а также произвольное +указание сканируемых адресов и портов. +.PP +Много работы проводилось над адаптацией nmap для пользователей без прав +root. К сожалению, много критических ядерных интерфейсов (как, например +raw-сокеты) требуют root-привилегий, так что старайтесь запускать nmap +именно с этими правами (не setuid root, конечно). +.PP +Результатом работы nmap обычно является список отсканированных портов на +удаленной машине(ах) с указанием номера и состояния порта, типа +используемого протокола, а также названия службы, закрепленной за этим +портом. Порт характеризируется возможными состояниями: "открыт"(open), +"закрыт"(closed), "фильтруемый"(filtered) и "нефильтруемый"(unfiltered). +Состояние порта "open" означает, что на удалённой машине за этим портом +закреплён определённый сервис и он может принять соединение на этот порт. +Состояние порта "close" означает, что соединения на этот порт невозможны. +Состояние порта "filtered" означает, что фаервол, пакетный фильтр или +любая другая помеха мешает определить состояние порта. Состояние порта +"unfiltered" - означает что порт закрыт и система защиты не мешает это +определить. Такое состояние отображается если большинство портов +сканируемой машины находится в состоянии filtered. В некоторых случаях +nmap не может точно определить разницу между состояниями порта filtered, +open или closed. Например, порт который не отвечает на FIN-сканирование +может находиться в состоянии как open так и filtered. В подобных случаях +nmap отображает такие порты как "open|filtered" или "closed|filtered". +.PP +В зависимости от указанных опций, nmap также может определить следующие +характеристики сканируемого хоста: тип ОС, метод генерации TCP ISN, имя +пользователя (username) владельца процесса, зарезервировавшего +сканируемый порт, символьные имена, соответствующие сканируемым IP-адресам и т.п. +.SH ОПЦИИ + Большинство опций могут комбинироваться друг с другом. Одни опции + предназначены для выбора определенного метода сканирования, другие + указывают на использование дополнительных возможностей или служат для + настройки различных параметров сканирования. Nmap предупреждает + пользователя о недопустимом сочетании указанных им опций. +.Sp + Если вы немедленно хотите начать работу с nmap, можете пропустить этот + раздел и перейти к изучению примеров вызова nmap в конце данного + руководства. Вы можете также запустить программу nmap с ключом ' +.B -h' +для получения краткой справки по всем опциям. +.TP +.B ТИПЫ СКАНИРОВАНИЯ +.TP +.B \-sS +Сканирование методом SYN. Этот метод называется "полуоткрытое" +сканирование, поскольку полное TCP-соединение с портом сканируемой +машины не устанавливается. Nmap посылает SYN-пакет, как бы +намереваясь открыть настоящее соединение, и ожидает ответ. Флаги +SYN|ACK в ответе указывают на то, что порт удаленной машины +открыт. Флаг RST указывает на то, что порт удалённой машины +закрыт. Если nmap принял пакет SYN|ACK, то в ответ немедленно +отправляется (операционной системой) RST-пакет для сброса еще не +установленного соединения. Очень немного сайтов способны +обнаружить такое сканирование, однако хорошо настроенный фаервол +на это способен. Пользователь должен иметь root-привилегии +для формирования поддельного SYN-пакета. Этот тип сканирования +является применимым по-умолчанию для привилегированных +пользователей. +.TP +.B \-sT +Сканирование методом TCP connect(). Наиболее простой метод +сканирования TCP-портов. Системный вызов connect(), присутствующий +в любой ОС, позволяет создать соединение с любым портом удаленной +машины. Соединение происходит методом стандартного "tcp-рукопожатия", - сканирующая машина отправляет на сканируемую +пакет с флагом SYN, если в ответ приходит пакет с флагом RST - то +порт закрыт, если SYN|ACK, то сканирующая отправляет ACK и тогда +соединение установлено). Если порт открыт и прослушивается +сканируемой машиной, то результат выполнения connect() будет +успешным (т.е. соединение будет установлено), в противном случае +указанный порт является закрытым или доступ к нему блокируется. +Единственным преимуществом данного метода является то, что его +можно использовать без root-привилегий. +.Sp +Этот метод сканирования легко обнаружим, поскольку в log-файле на +сканируемой машине сохранятся записи о многочисленных попытках +соединения и об ошибках выполнения данной операции службами, к +которым производилось подключение, а затем мгновенное завершение +соединения. Этот тип сканирования является применимым по-умолчанию +для непривилегированных пользователей. +.TP +.B \-sF \-sX \-sN +Сканирование методом stealth-FIN, Xmas Tree или NULL. Эти методы +используются в случае, если SYN-сканирование по каким-либо +причинам не дало ожидаемого результата. Некоторые фаерволы и +пакетные фильтры ожидают SYN-пакеты на защищаемые ими порты, и +программы типа Synlogger или Courtney способны отследить SYN-сканирование. Вышеуказанные типы сканирования могут быть не +замечены системами защиты. +.Sp +FIN-сканировании в качестве запроса используется FIN-пакет. В Xmas +Tree используется пакет с набором флагов FIN|URG|PSH, а NULL-сканирование использует пакет без флагов. Согласно RFC 793 +стр.64, закрытый порт должен ответить на один из таких посланных +нами пакет пакетом с флагом RST. Фильтруемые порты обычно не +отвечают на такие пакеты, поэтому nmap обозначает такой порт +"open|filered". Если добавить опцию распознавания версии (-sV), +nmap попытается определить точно ли такие порты открыты. К +несчастью, Microsoft как всегда решила полностью игнорировать все +общепринятые стандарты и пойти своим путём. Поэтому любая ОС +семейства Windows не посылает в ответ RST-пакет, и данные методы +не будут работать с этими ОС. С другой стороны в nmap этот признак +является основным для различения операционных систем, если данные +типы сканирования нашли открытые порты - скорее всего сканируемая +машина работает не под управлением windows. К сожалению, Windows +не единственная ОС, обладающая этим недостатком. К таким ОС +относятся также Cisco, BSDI, IRIX, HP/UX и MVS. Все эти ОС не +отправляют RST-пакеты. Но это не так важно, поскольку nmap может +определять операционную систему другими методами автоматически. +.TP +.B \-sP +Ping-сканирование: Иногда вам необходимо лишь узнать какие хосты +активны в сканируемой сети. Nmap может сделать это, послав ICMP-сообщение "эхо запрос" на каждый IP-адрес, который вы укажете. +Хост, отправивший ответ на эхо, является активным. Некоторые сайты +(например microsoft.com) блокируют пакеты с эхо запросом. Поэтому +nmap также посылает TCP АСК-пакет на 80-й порт сканируемого хоста +(по умолчанию). Если в ответ мы получили RST-пакет, - хост +активен. Третий метод посылает SYN-пакет и ожидает в ответ RST +либо SYN|ACK. Для пользователей, не обладающих статусом +root, используется метод connect(). +.Sp +Для привилегированных пользователей nmap по умолчанию использует +параллельно оба метода - ICMP и ACK. Вы можете изменить это, +используя опцию ' +.B \-P +', описанную ниже. +.Sp +Обратите внимание, что ping-сканирование по умолчанию выполняется +в любом случае и только активные хосты подвергаются сканированию. +Используйте эту опцию только в случае, если вы хотите произвести +только ping-опрос, не сканируя порты. +.B \-sV +Включить режим определения версий служб, за которыми закреплены +сканируемые порты. После сканирования TCP и/или UDP-портов любым +методом, nmap попытается определить привязанный к этим открытым +портам протокол службы (ftp, ssh, telnet, http), имя приложения +(ISC Bind, Apache httpd, Solaris telnetd), номер версии и +дополнительные детали (например, открыт ли Х сервер для +подключений или версию протокола SSH). Файл, названный nmap-service-probes используется для определения оптимальтых тестов, с +помощью которых можно получить максимально точную информацию в +данных условиях. Если nmap скомпилирован с поддержкой OpenSSL, он +подключится к SSL-серверу с попыткой определить, какая служба +работает за шифрованием. Если обнаружена служба RPC, nmap +предпримет атаку на RPC по методу "грубой силы" для определения +номера программы RPC и номера версии. Некоторые UDP-порты остаются +в состоянии "open|filtered" если UDP-сканирование не сможет точно +определить в каком состоянии находится порт. Определитель версии +попытается соединиться на такой порт, и если он открыт, то его +состояние изменится на open. Опция '-A' также включает этот режим. +При использовании опции '--version_trace' nmap будет отображать +всю информацию о происходящем процессе определения версии (это +некоторая разновидность информации которую можно получить при +включении опции '--packet_trace'). +.TP +.B \-sU +UDP-сканирование: этот тип сканирования используется для +определения открытых UDP (User Datagram Protocol, RFC 768) портов +на сканируемой машине. Nmap посылает 0-байтный UDP-пакет на каждый +порт сканируемой машины. Если в ответ получено сообщение ICMP +"port unreachable" (ICMP порт недоступен), то сканируемый порт +закрыт, если что-то другое - то открыт. Если ответ вообще не +приходит, то nmap помечает порт состоянием "open|filtered", и это +значит что порт открыт, но фаервол или другой пакетный фильтр +блокирует доступ к данному порту. Включение режима определения +версий служб (-sV) может помочь точно распознать открытые и +фильтруемые порты. +.Sp +Некоторые пользователи считают сканирование UDP-портов бесполезным +занятием. Мы обычно в этом случае напоминаем об известной дыре в +демоне rpcbind ОС Solaris. Rpcbind может быть обнаружен на любом +из недокументированных UDP-портов с номером, больше 32770. Если вы +обнаружите его, то будет уже не важно, блокируется ли 111-й порт +фаерволом или нет. Но как вы можете обнаружить на каком именно из +30,000 портов запущен rpcbind? Конечно же с помощью UDP-сканирования. Также недокументированные (свыше 1024 номера) порты +часто используются троянами или DDoS-клиентами. Очень часто такие +UDP-сервисы как snmp, tftp, NFS также имеют уязвимости. +.Sp +К сожалению, сканирование UDP-портов очень медленный процесс, +поскольку практически все ОС следуют рекомендации RFC 1812 (раздел +4.3.2.8) по ограничению скорости генерирования ICMP-сообщений +"порт недоступен". Например, ядро Linux (файл - net/ipv4/icmp.h) +ограничивает генерирование таких сообщений до 80 за 4 секунды с +простоем 0,25 секунды, если это ограничение было превышено. У ОС +Solaris еще более жесткое ограничение (2 сообщения в секунду), и +поэтому сканирование Solaris проходит еще более медленно. Nmap +определяет параметры этого ограничения, и соответственно уменьшает +количество генерируемых запросов, предотвращая тем самым +затопление сети ненужными пакетами, которые игнорируются +сканируемой машиной. +.Sp +Как обычно, Microsoft проигнорировала рекомендации RFC, и не +использует в своих ОС никаких ограничений. Поэтому nmap может +очень быстро просканировать все 65535 UDP-портов хоста, +работающего под управлением ОС Windows. :-) +.TP +.B \-sO +Сканирование протоколов IP. Данный метод используется для +определения IP-протоколов, которые поддерживает сканируемый хост. +Метод заключается в отправке хосту IP-пакетов без заголовка для +каждого сканируемого протокола. Если получено сообщение ICMP +"protocol unreachable" (протокол недоступен), то данный протокол +хостом не используется. В противном случае nmap предполагает, что +протокол хостом поддерживается. Стоит заметить, что некоторые ОС +(AIX, HP-UX, Digital UNIX) и фаерволы могут блокировать передачу +сообщений "ICMP protocol unreachable". По этой причине все +сканируемые протоколы nmap обозначает как "open" (т.е. +поддерживаются). +.Sp +Поскольку описанная техника схожа со сканированием UDP-портов, то +и соответственно есть лимит скорости генерации ICMP-сообщений. +Однако поле "тип протокола" IP-заголовка состоит всего лишь из 8 +бит, поэтому 256 протоколов будут отсканированы за приемлемое +время. +.TP +.B \-sI <зомби-хост[:порт]> +Idle-сканирование - позволяет произвести абсолютно невидимое +сканирование портов. Это означает, что никакие пакеты с вашего +реального ip-aдреса не отправляются на сканируемую машину. Метод +IdleScan использует сторонний канал для сканирования, которое +проходит через хост-зомби, и основано на методе предугадывания +генерируемого на хосте-зомби значения "IP fragmentation ID". +Системы защиты на сканируемом хосте определят источником +сканирования хост-зомби, который вы используете. +.Sp +Кроме абсолютной невидимости, этот тип сканирования позволяет +определить политику доверия между сканируемыми машинами на уровне +протокола IP. Листинг результатов сканирования отображает порты +открытые для хоста-"зомби". Таким образом, можно просканировать +цель с использованием нескольких "зомби", которым цель может +"доверять", в обход фаерволов и пакетных фильтров. Такого рода +информация может быть самой важной при выборе приоритетных целей +для атаки. +.Sp +Вы можете указать конкретный порт для проверки изменения IPID на +хосте-"зомби". В ином случае nmap будет использовать номер порта +по умолчанию для "tcp ping". +.Sp +Что бы узнать, можно ли использовать хост в качестве зомби, +- нужно запустить nmap c дополнительными опциями "-O -v", и в поле +IPID Sequence Generation будет указан тип генерирования. Если +"Incremental" - то этот хост можно использовать как зомби. +.TP +.B \-sA +Сканирование методом ACK. Этот метод обычно используется для +определения набора правил фаервола. В частности, он помогает +определить защищен ли сканируемый хост фаерволом или просто +используется пакетный фильтр, блокирующий входящие SYN-пакеты. +.Sp +Этот метод сканирования подразумевает отправку ACK-пакета (со +случайными значениями полей acknowledgement number и sequence +number) на порт сканируемого хоста. Если в ответ пришел RST-пакет, +порт обозначается как "unfiltered" (нефильтруемый). Если ответа не +последовало (или пришло ICMP-сообщение "port unreachable"), порт +обозначается как "фильтруемый". Заметим, что обычно nmap не +отображает нефильтруемые порты в результатах, поэтому если после +сканирования методом АСК не обнаружено ни одного открытого порта, +то это означает, что все порты являются нефильтруемыми (в ответ +пришел RST-пакет). Этот метод никогда не показывает состояние +порта "open" в результатах сканирования. +.TP +.B \-sW +Cканировать методом TCP Window. Этот метод очень похож на ACK-сканирование, за исключением того, что иногда с его помощью можно +определить открытые порты точно так же, как и +фильтруемые/нефильтруемые, проверяя значение поля window size TCP-пакета, возвращаемого хостом в ответ на посланный ему запрос, +поскольку есть некоторые аномалии обработки данного поля у +некоторых ОС. Список уязвимых операционных систем включает в себя +несколько версий AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, +OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, +OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX и +VxWorks. Для более подробной информации смотрите архив конференции +nmap-hackers. +.TP +.B \-sR +RPC-сканирование. Метод работает только в комбинации с другими +методами сканирования. Все предварительно отсканированные открытые +порты затопляются NULL-командами программы SunRPC, для того чтобы +определить какие из этих портов являются RPC-портами, и какие за +ними закрепленные программы. Таким образом, вы легко получаете +информацию, которую могли бы получить с помощью команды 'rpcinfo +-p', даже если portmapper сканируемого хоста закрыт фаерволом или +TCP-wrapper'ом. Этот тип сканирования включается также при выборе +опции '-sV' (режим определения версий служб). +.TP +.B \-sL +Cоставить список сканирования. Этот метод просто генерирует список +IP-адресов или имён хостов без любого их сканирования. Имена +хостов определяются по-умолчанию, но это можно отменить опцией -n. +.TP +.B \-b +Прорыв через FTP. Интересной "возможностью" протокола FTP (RFC +959) является поддержка proxy ftp-соединений. Другими словами, с +доверенного хоста evil.com можно соединиться с ftp-сервером +target.com и отправить файл, находящийся на нем, на любой адрес в +Интернет! Заметим, что данная возможность известна с 1985 года, +когда был написан этот RFC. Nmap использует эту уязвимость для +сканирования портов с proxy ftp-сервера. Итак, вы можете +подключиться к ftp-серверу за фаерволом и затем просканировать +заблокированные порты, например 139-й. Если ftp-сервер +позволяет читать и записывать данные в какой-либо каталог +(например /incoming), вы также можете отправить любые данные на +эти порты. (но nmap за вас это делать не будет). +.Sp +Аргумент, указываемый после '-b', это URL сервера ftp, +используемого в качестве proxy. Формат URL следующий: +имя_пользователя:пароль@сервер:порт. Адрес сервера нужно указать +обязательно, остальное - опционально. Нужно заметить, что в данное +время этот вид сканирования не эффективен, потому как почти во +всех приложениях уязвимость, используемая данным методом, +устранена. +.TP +.B НАСТРОЙКА ДОПОЛНИТЕЛЬНЫХ ПАРАМЕТРОВ СКАНИРОВАНИЯ +Ни одна из нижеуказанных опций не является необходимой, но некоторые могут быть очень полезными. +.TP +.B \-P0 +Вообще не производить ping-опрос хостов перед их сканированием. +Эта опция позволяет просканировать сети, блокирующие обработку +ICMP-эха с помощью фаерволов. Примером такой сети является +microsoft.com, и вы всегда должны использовать опцию ' +.B \-P0 +' или ' +.B \-PS80 +' (см. ниже), когда сканируете такую сеть. Заметьте, что в +этом случае "ping" Обозначает несколько больше, чем традиционный +ICMP echo request пакет. Nmap использует разные комбинации TCP, +UDP и ICMP пакетов для того, что бы определить активен ли хост. +По-умолчанию nmap посылает ICMP echo request и TCP ACK пакет на +порт 80. +.TP +.B \-PA [порт(ы)] +Использовать TCP ACK ping для определения присутствия хоста в +сети. Вместо того, что бы отправлять ICMP echo request пакет и +ждать ответа, мы отправляем TCP ACK пакет на сканируемый хост. +Если в ответ мы получим RST-пакет, значит сканируемый хост +активен. Эта опция помогает избежать сканирования неактивных +хостов в сети, блокирующей ICMP-пакеты. Для непривилегированных +пользователей используется connect() метод, при котором активность +хоста фактически определяется его ответом на посланный нами SYN-пакет. Что бы указать порт(ы) назначения для нашего сканирования +- используйте '-PA[,port2][...]'. По-умолчанию используется +80-ый порт, поскольку чаще всего он не фильтруется. +.TP +.B \-PS [порт(ы)] +Использовать SYN-пакет (запрос на соединение) вместо ACK-пакетов +для привилегированных пользователей. Активные хосты должны +ответить на наш пакет RST-пакетом (или что уже редко - SYN|ACK). +Можно указать порты назначения точно так же как и в '-PA' опции. +.TP +.B \-PR +Использовать raw ethernet ARP ping. Когда сканируемый хост +находится в одном физическом сегменте сети со сканирующим, можно +более быстро и надёжно (ARP-пакеты не фильтруются фаерволом или +другим IP-фильтром) определить активен ли он. Nmap посылает IPv4-to-Ethernet ARP-запрос для каждого сканируемого хоста и смотрит +за приходящими ARP-ответами. Эта опция не может комбинироваться с +остальными типами ping-опроса. +.B \-PU [порт(ы)] +Эта опция отправляет UDP-запрос на сканируемый хост. Если в ответ +приходит сообщение "ICMP port unreachable", или UDP-ответ (порт +открыт), то сканируемый хост активен. Поскольку многие UDP-сервисы +не отвечают на пустой пакет, лучше указывать предположительно +закрытый порт. +.TP +.B \-PE +Использовать "настоящий" ping (посылать на сканируемый хост "ICMP +echo request" пакет). При включении этой опции ищутся активные +хосты и broadcast-адреса (адреса которые доступны внешне, и +транслируют приходящие IP-пакеты всем хостам внутренней сети). +Такие адреса могут использоваться для организации DoS-атак. (Атака +типа отказ в обслуживании) +.TP +.B \-PP +Использовать пакет ICMP "timestamp request (type 13)" для определения активных хостов. +.TP +.B \-PM +Использовать пакет ICMP "netmask request (type 17)" для определения активных хостов. +.TP +.B \-PB [порт(ы)] +Это тип ping-опроса по-умолчанию. Он параллельно использует ACK +( +.B -PA +) и "ICMP echo request" пакет ( +.B -PE +). Этим путем можно обойти +фаервол который фильтрует один из этих пакетов. +.TP +.B \-O +(Operating system detection) - эта опция позволяет определить +операционную систему сканируемого хоста с помощью снятия +отпечатков стека TCP/IP. Другими словами, nmap активизирует мощный +алгоритм, функционирующий на основе анализа свойств сетевого стека +установленной на хосте ОС. В результате сканирования получается +"отпечаток", состоящий из стандартных тестовых запросов и +"ответов" хоста на них. Затем полученный отпечаток сравнивается с +имеющейся базой стандартных ответов известных ОС, хранящейся в +файле nmap-os-fingerprinting, и на основании этого принимается +решение о типе и версии ОС сканируемого хоста. +.Sp +Если nmap не смог определить OC сканируемой машины, потому что +такого отпечатка ещё нет в базе, но получение отпечатка +представляется возможным (на машине хотя бы один открытый порт) +nmap укажет url, на котором вы сможете отправить отпечаток для +внесения его разработчиками в базу отпечатков, если вы точно +знаете что за ОС используется на сканируемом хосте. Заметьте, если +вы укажете ip-адрес машины, для которой вы прислали отпечаток, то +при внесении его в базу эта машина будет ещё раз просканирована +для подтверждения результатов. +.Sp +Опция '-О' также инициализирует несколько других тестов. Один из +таких как использование "TCP timestamp" опции (RFC 1323) для +определения времени активности хоста с момента его последней +перезагрузки. Эта информация предоставляется только с разрешения +сканируемого хоста. +.Sp +Другой тест, инициализируемые опцией '-O' - это "TCP Sequence +Predictability Classification" - классификация предсказуемости +последовательности TCP. Его суть в том, что бы определить +насколько тяжело установить поддельное соединение с удалённой +машиной. Эта информация может использоваться для обхода прав +доступа к удалённой машине или скрытия источника атаки. Эта +информация отображается при включенной опции '-v'. +.Sp +Когда опция '-v' используется вместе с '-O', - частота генерации +IPID также отображается. Большинство машин отображаются как +"incremental", что означает изменение поля "ID" в заголовке IP для +каждого отправленного пакета на одинаковую величину, что делает их +уязвимыми для некоторых углублённых методов сбора информации и +spoof-атак. +.TP +.B \--osscan_limit +Определение ОС сканируемой машины значительно эффективнее, если +найдены хотя бы один закрытый и открытый порт. Используйте эту +опцию и nmap не будет пробовать определять ОС, если таковых портов +не найдено. Это может сократить время сканирования, например при +-P0 сканировании множества хостов. Эта опция используется только +вместе с '-O' или '-A' опциями. +.TP +.B \-A +Эта опция включает режим Additional Advanced и Aggressive, +объединяя опции '-O' и '-sV'. В будущем эта опция планируется для +объединения многих опций, для того что бы меньше запоминать. ;-) +.TP +.B \-6 +Эта опция включает поддержку протокола IPv6. Все сканируемые хосты +должны поддерживать IPv6 при использовании этой опции, и могут +быть указаны путем нормального имени DNS (запись AAAA) или +литеральным IP-адресом, например +3ffe:501:4819:2000:210:f3ff:fe03:4d0. На данный момент, +поддерживаются только методы TCP connect()-сканирование и TCP +connect() Ping-сканирование. Если Вас интересует UDP или другой +тип сканирования, посетите http://nmap6.sourceforge.net/. +.TP +.B \--send_eth +Эта опция заставляет nmap отсылать пакеты на канальном уровне +(data link layer) вместо сетевого уровня (network layer). По-умолчанию nmap сам выбирает на каком уровне отправлять пакеты в +зависимости от используемой платформы. Raw-сокеты (сетевой +уровень) более эффективно использовать на UNIX машинах, однако на +канальном уровне лучше функционируют ОС семейства Windows, в +которых Microsoft отключила поддержку raw-сокетов. Nmap однозначно +будет использовать raw-сокеты если нет другого выбора (например в +не локальной сети). +.TP +.B --send_ip +Эта опция заставляет nmap отсылать пакеты на сетевом уровне +(network layer) вместо канального (data link layer). Это +противоположная опция к '--send_eth'. +.TP +.B \--spoof_mac [mac, prefix, or vendor substring] +Эта опция заставляет nmap использовать заданный MAC-адрес во всех +отправляемых пакетах канального уровня. Адрес может задаваться в +нескольких форматах. Если это просто строка "0", nmap выберет +полностью случайный MAC-адрес для этой сессии. Если заданный адрес +- набор шестнадцатеричных чисел, с разделителем в виде двоеточия, +nmap будет использовать эту строку как МАС-адрес. Если задано +меньше 12 шестнадцатеричных чисел, nmap сам заполнит недостающие +случайными значениями. Если заданный аргумент не 0 и не +шестнадцатеричная строка, то nmap будет искать в файле nmap-mac-prefixes похожее значение в именах производителей сетевого +оборудования. Если такой производитель будет найден, nmap возьмет +OUI (3байтный префикс) производителя и дополнит его случайными 3 +байтами, в результате получится поддельный МАС-адрес определённого +производителя. Правильными аргументами --spoof_mac будут, например: "Apple", "0", "01:02:03:04:05:06", "deadbeefcafe", "0020F2", и "Cisco". +.TP +.B \-f +(fragment packets) - эта опция используется совместно с SYN, FIN, +Xmas или NULL-сканировании и указывает на необходимость +использования IP-фрагментации. Идея заключается в том, чтобы +разбить TCP-заголовок исходящего пакета на несколько фрагментов. +Сканируемый хост дефрагментирует эти IP-фрагменты в один TCP-пакет. Фрагментирование значительно усложняет фильтрацию пакетов, +работу систем обнаружения и других подобных средств защиты, и +позволяет nmap скрыть свои действия. Однако следует осторожно +использовать данную опцию, поскольку некоторые старые или +непрофессиональные новые программы, например снифферы, просто +зависают при попытке собрать такие маленькие фрагменты. Укажите +эту опцию один раз и nmap будет разбивать пакеты на 8байтовые или +меньше пакеты, исключая IP-заголовок. Например, 20-байтовый TCP +заголовок будет разбит на 3 пакета - на 2 по 8байт и один на 4. +Конечно же, каждый фрагмент имеет собственный IP-заголовок. +Укажите опцию '-f' ещё раз и пакеты будут разбиваться +соответственно на 16байтные фрагменты. Или вы можете указать свой +собственный размер фрагмента, используя опцию '--mtu'. Не +используйте эти (-f и --mtu) опции вместе, и не забывайте, что +размер фрагмента должен быть кратен 8. +.Sp +Заметьте, что некоторые ОС, например Linux c включенным модулем ip +tables connection tracking, дефрагментируют исходящие пакеты на +уровне ядра. Просмотрите генерируемый nmap фрагментированный +трафик сниффером, что бы выяснить работает ли опция '-f'. +.TP +.B \-v +(verbose output) - использовать режим подробного отчета. Если вы +укажете эту опцию, nmap будет подробно сообщать о ходе выполнения +текущей операции. Для получения лучшего эффекта можно указать ее +дважды. Можете ещё несколько раз указать опцию ' +.B \-d +', но в таком случае от скроллинга экрана вам может поплохеть. ;-) +.TP +.B \-h +(help) - показывает краткую инструкцию по использованию nmap +с указанием опций и краткого их описания, не запуская саму +программу. +.TP +.B \-oN <имя_файла> +(output Normal) - записывает результаты сканирования в удобной для +пользователя форме в файл, указанный в качестве аргумента. +.TP +.B \-oX <имя_файла> +(output XML) - записывает результаты сканирования в формате +.B XML +в файл, указанный в качестве аргумента. Это позволяет программам +легче обрабатывать вывод nmap'а. Вы можете использовать аргумент +'-' (без кавычек) для вывода на stdout. Нормальный вывод в этом +случае не используется. Внимательно следите за сообщениями об +ошибках, потому как они выводятся на stderr. Document Type +Definition (DTD), объясняющий структуру вывода результатов nmap в +формате XML доступен здесь: http://www.insecure.org/nmap/nmap.dtd. +.TP +.B \--stylesheet <имя_файла> +Nmap обращается к XSL таблице стилей, которая называется nmap.xsl, +для просмотра или транслирования XML вывода в HTML формат. Если вы +желаете указать другую таблицу стилей - используйте эту опцию. В +качестве аргумента указывается полный путь или url, например '--stylesheet http://www.insecure.org/nmap/data/nmap.xsl', что +укажет браузеру загрузить последнюю версию таблицы стилей с +сервера insecure.org. Эта таблица может использоваться для +просмотра nmap XML-вывода на машине где nmap не установлен. По +умолчанию, в целях безопасности, используется локальная копия +nmap.xsl. +.TP +.B \--no_stylesheet +Указывает nmap не использовать никакой XSL таблицы стилей для +отображения XML-вывода. +.TP +.B \-oG <имя_файла> +(output Grepable) - записывает результаты сканирования в удобной +для программы grep форме в файл, указанный в качестве аргумента. +Вы можете использовать аргумент '-' (без кавычек) для вывода на +stdout. Нормальный вывод в этом случае не используется. +Внимательно следите за сообщениями об ошибках, потому как они +выводятся на stderr. В нынешнее время рекомендуется использовать +XML-вывод (-oX). +.TP +.B \-oA <имя_базы> +(output All) - записывает результаты во всех основных форматах +(нормальном, grep и XML). Вы указываете базовое имя, например +base, и выходные файлы будут называться base.nmap, base.gnmap и +base.xml. +.TP +.B \-oS <имя_файла> +thIs l0gz th3 r3suLtS of YouR ScanZ iN a +.B s| +Если сканирование было прервано нажатием комбинации [Ctrl+C], +сетевым сбоем и т.п., то оно может быть продолжено включением этой +опции. Если результаты прерванного сканирования записывались в +лог-файл с помощью опций '-oG' или '-oN', просто запустите nmap с +указанием этой опции и имени лог-файла, в который производилась +запись предыдущего сеанса. Не указывайте никаких других опций, +поскольку при возобновлении сканирования будут использоваться +опции, указанные в предыдущем сеансе. Nmap продолжит сканирование +с адреса, следующего за последним отсканированным. +.TP +.B \--exclude <хост1 [,хост2][,хост3],..."> +Исключить из списка сканирования цели (хосты, сетевые диапазоны), +которые не должны сканироваться. +.TP +.B \--excludefile <имя_файла> +Смысл этой опции такой же, как и '--exclude', только цели для +исключения задаются файлом, каждая запись - в отдельной строке. +.TP +.B \--allports +Опция используется вместе с режимом определения версий служб (-sV) +и разрешает работать со всеми найденными открытыми портами, даже с +теми, которые помечены как опасные в файле nmap-service-probes. +.TP +.B \--append_output +Дописывать результаты сканирования в лог-файл, а не затирать +предыдущую информацию в нём. +.TP +.B \-iL <имя_файла> +(input List) - считывать список хостов для сканирования из файла, +заданного в качестве аргумента. Файл должен содержать список имен +хостов или IP-адресов, разделенных пробелами, знаками табуляции +или что бы каждая запись была в отдельной строке. Что бы nmap +считал список хостов с StdIn, укажите вместо имени файла символ +'-'. Более подробная информация о форматах выражений приведены в +разделе "Способы задания цели". +.TP +.B \-iR <количество_хостов> +Если указать эту опцию, то nmap будет сканировать хосты выбранные +случайным образом. Используйте 0 в качестве заданной цели для +сканирования, и nmap будет сканировать пока вы его не остановите. +Эта опция может быть использована для статистических исследований +Интернета. Если вам действительно скучно - запускайте "nmap -sS -PS80 -iR 0 -p 80" что бы найти некоторые веб-сервера, которые +могут вас заинтересовать. +.TP +.B \-p <диапазон_портов> +Этой опцией вы можете задать порты, которые вы хотите сканировать. +Для примера, если задать "-р 23", то будет сканироваться только 23 +порт на хосте. "-р 20-30,139,60000-" просканирует порты от 20 до +30, 139 порт, и все порты, номера которых больше 60000. По +умолчанию сканируются порты от 1 до 1024, и те, которые указаны в +файле nmap-services. Для сканирования протоколов IP (-sO) эта +опция указывает какой протокол просканировать (0-255). +.Sp +Когда сканируются как TCP так и UDP порты, можно указать диапазон +для каждого типа портов отдельно, используя префиксы "Т:" и "U:" +соответственно. Например, если задать аргумент "-р +U:53,111,137,T:21-25,80,139,8080" то будут сканироваться 53, 111, +и 137 UDP-порты, и указанные ТСР-порты. Заметьте, что бы +просканировать UDP и ТСР порты, нужно указать -sU и хотя бы один +из методов ТСР-сканирования (-sS, -sF, -sT). +.TP +.B \-F +Быстрое сканирование. Если указать эту опцию, то nmap будет +сканировать порты только тех служб, которые перечислены в файле +nmap-services (или nmap-protocols для '-sO'). Сканирование +проходит гораздо быстрее, чем если бы nmap сканировал все 65535 +портов хоста. +.TP +.B \-D <ложный_хост1,[ложный_хост2],[,ME],...> +Эта опция используется для сокрытия реального источника +сканирования, используя ложные хосты. Вместе с нашими пакетами на +сканируемый хост отсылаются такие же пакеты, но с поддельными +адресами источника. Защитная программа на сканируемом хосте может +отобразить 5-10 попыток сканирования с разных источников, но +узнать с какого именно хоста производится истинное сканирование +сложно, особенно если указать много ложных хостов. +.Sp +Указывайте ложные хосты через запятую, и используйте "МЕ" для +обозначения своего хоста в этой цепочке. Например, если указать +"МЕ" на 5 позиции, то истинные пакеты будут отправлены после +предыдущих четырех ложных. Если не указать "ME", nmap выберет +позицию для вашего хоста случайным образом. +.Sp +Учтите, что хосты, которые вы укажете как ложные, должны быть в +активном состоянии, иначе вы можете случайно затопить сканируемую +цель SYN-пакетами, или будет очень легко определить источник +сканирование, если только ваша машина окажется активной. Также +предпочтительно использовать ip-адреса вместо dns-имён, иначе на +сервере имён ложных хостов в лог-файле сохранятся записи о ваших +обращениях к ним. +.Sp +Стоит заметить, что некоторые детекторы сканирования портов +блокируют доступ хосту, осуществившему попытку сканирования. +Поэтому ложный хост может потерять соединение со сканируемым +хостом. Эта ситуация может возникнуть даже в том случае, если вы +указали в качестве ложного хоста адрес шлюза или сервера имён. +Поэтому используйте эту опцию очень осторожно. +.Sp +Ложные хосты можно использовать в любом методе сканирования а +также при определении операционной системы удалённого хоста (-O). +.Sp +Если вы укажете много ложных хостов, процесс сканирования +замедлится и станет менее аккуратным. Некоторые провайдеры +фильтруют поддельные исходящие пакеты, так что данный вид +сканирования может вообще не достичь желаемого результата. +.TP +.B \-S +При некоторых обстоятельствах nmap не сможет определить ваш ip-адрес (nmap сообщит вам об этом). В таких случаях можно +использовать эту опцию для явного указания вашего ip-адреса. +.Sp +Другой вариант использования этой опции - отправка пакетов с +поддельным ip-адресом. Это может использоваться для создания +видимости сканирования целевого хоста кем-то другим, однако в +таком случае результат сканирования можно получить лишь +прослушивая трафик, проходящий между целевым хостом и хостом, +пакеты которого вы подделываете. Что бы использовать данный метод, +необходимо так же включить опцию '-e'. +.TP +.B \-e <интерфейс> +Если nmap не может определить какой интерфейс использовать для +приёма и отправки пакетов, то этой опцией можно указать его явно. +.TP +.B \--source_port <номер_порта> +Использовать порт отправки с определённым номером. Много +непрофессиональных фаерволов и пакетных фильтров позволяют +пакетам, отправленным с таких портов как например 53 (DNS) или 20 +(FTP-DATA), свободно инициализировать соединения на защищаемом +хосте. Соответственно, изменив наш порт отправки на разрешенный +фаерволом порт мы можем устанавливать соединения с защищённой этим +фаерволом машиной. Для UDP сканирования попробуйте сначала +установить 53 порт, а для TCP - 20. Однако эта техника не всегда +работает, вы не сможете определить характер изменения ISN, в связи +с чем nmap самостоятельно сменит номер порта для этой цели, даже +если вы указали эту опцию. +.TP +.B \--data_length <количество_байт> +Обычно nmap использует минимальные по размеру пакеты, которые +содержат только заголовок. TCP пакеты обычно размером в 40 байт, а +ICMP эхо запрос - всего 28. Эта опция указывает nmap дополнять +отсылаемые пакеты заданным количеством байт случайной информации. +Пакеты используемые при определении ОС сканируемого хоста не +изменяются. +.TP +.B \-n +Указывает nmap никогда не преобразовывать ip-адреса активных +хостов в DNS-адресa. Увеличивает скорость сканирования и +предотвращает появление записей о dns-запросах nmap в лог-файле +на сервере имен. +.TP +.B \-R +Указывает nmap всегда преобразовывать ip-адреса хостов в DNS-адресa. Обычно это происходит только если сканируемые машины +находятся в активном состоянии. +.TP +.B \-r +Указывает nmap не изменять порядок номеров сканируемых портов случайным образом. +.TP +.B \-\-ttl <значение> +Устанавливать в поле TTL отправляемых пакетов IPv4 заданное значение. +.TP +.B \-\-privileged +Указывает nmap, что пользователь имеет достаточные привилегии для +таких операций как использование raw-сокетов, прослушивание +трафика, и т.п. Эта опция используется в таких системах, где +непривилегированным пользователям ядро разрешает использовать +функции, которые доступны только привилегированным, например в +специально сконфигурированной ОС Linux. Nmap не может этого +определить, так как использует функцию getuid(), и в этом случае +используется данная опция, которую необходимо указывать перед +всеми остальными опциями. В качестве альтернативы --privileged +можно использовать переменную NMAP_PRIVILEGED. +.TP +.B \-\-interactive +Запускает nmap в интерактивном режиме. Эту опцию полезно +использовать в многопользовательских системах, так как, например, +в истории командной строки не остаётся указанных вами параметров. +.TP +.B \-\-randomize_hosts +Указывает nmap сканировать хосты в случайной последовательности. +Используются группы до 2048 хостов. Эта опция делает сканирование +менее заметным для различных систем сетевого мониторинга, особенно +если вы используете ее совместно с опциями настройки временных +параметров. +.TP +.B \-M <максимальное_количество_сокетов> +Устанавливает максимальное количество сокетов, используемых +параллельно в методе TCP connect() сканирования. Эту опцию можно +использовать для замедления процесса сканирования и предотвращения +выведения из строя сканируемого хоста. +.TP +.B --packet_trace +Указывает nmap отображать все принимаемые и передаваемые пакеты в +формате TCPDump. Эта опция может использоваться для отладки работы +nmap и сети, а также в обучающих целях. +.TP +.B --datadir [имя_директории] +При запуске nmap считывает данные из файлов nmap-service-probes, +nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes и nmap-os-fingerprints. Сначала nmap ищет эти файлы в директории +указанной в опции --nmapdir. Если файлы не найдены - проверяется +переменная окружения NMAPDIR, после чего ~/nmap, а затем путь +наподобии /usr/local/share/nmap или /usr/share/nmap. И наконец, +nmap ищет эти файлы в текущем каталоге. Этой опцией можно задать +явное имя директории где расположены эти файлы. +.TP +.B НАСТРОЙКА ВРЕМЕННЫХ ПАРАМЕТРОВ +Обычно nmap автоматически настраивает временные параметры при +запуске, в соответствии с характеристиками сканируемой сети, что +бы произвести сканирование как можно быстрее и точнее. Но иногда +бывают случаи, когда самостоятельная настройка временных +параметров nmap вас не устраивает. В этом случае вы можете +воспользоваться следующими опциями: +.TP +.B -T +Возможность установления режимов сканирования с готовыми наборами +правил по установке временных интервалов. +.B Paranoid +режим - сканирование происходит очень медленно для того что бы системы +защиты не распознали его. Пакеты посылаются последовательно, с +интервалом в 5 минут. Режим +.B Sneaky +похож на режим Paranoid. +Разница лишь в том, что интервал между посылкой пакетов составляет +15 секунд. Режим +.B Polite +используется в случае, когда необходимо +что бы нагрузка на сеть была минимальной. В этом режиме пакеты +отправляются последовательно с интервалом минимум 0,4 секунды. +Режим +.B Normal +используется nmap по умолчанию. В этом режиме +сканирование производится с максимальной скоростью, и по +возможности без перегрузки сети и потери пакетов. Режим +.B Aggressive +используется для быстрого сканирования хорошо фильтруемых сетей, +особенно если используется SYN-сканирование. Режим +.B Insane +рекомендуется использовать или в очень быстрых сетях, или если вы +точно знаете, что пакеты не затеряются. Время сканирования одного +хоста - 15 минут, а ожидание ответа на запрос - 0,3 секунды. +.Sp +Каждому режиму присвоен определённый номер от 0 до 5, и его можно +указать вместо полного названия режима. Например, опция '-T0' +означает режим Paranoid, а '-T5' - Insane. Если вы хотите +использовать такие опции как --max_rtt_timeout или --host_timeout, +располагайте их в командной строке после любых '-T' опций. +.TP +.B --host_timeout <миллисекунды> +Устанавливает время, отводимое nmap на сканирование одного хоста, +прежде чем он перейдет к очередному IP-адресу. По умолчанию этот +параметр не имеет ограничения. +.TP +.B --max_rtt_timeout <миллисекунд> +Устанавливает максимальное количество времени, в течение которого +nmap ожидает ответ на посланный запрос, прежде чем повторить +запрос или считать его утерянным. По умолчанию это значение +установлено равным 9000 миллисекунд. +.TP +.B --min_rtt_timeout <миллисекунд> +Если сканируемый хост очень быстро отвечает на запросы, nmap будет +автоматически уменьшать интервал между посылаемыми запросами. Это +ускоряет сканирование, но может привести к потере пакетов с +ответами, пришедшими позже, чем обычно. Эта опция определяет +сколько времени nmap должен ждать перед отправкой очередного +пакета. +.TP +.B --initial_rtt_timeout <миллисекунд> +Устанавливает время, отводимое на определение активности хоста. +Эта опция используется в основном для сканирования хостов, +защищенных фаерволом, совместно с опцией '-P0'. Обычно nmap +автоматически выбирает оптимальное значение этого параметра после +отправки ping и первых сканирующих пакетов на хост. Значение по +умолчанию составляет 6000 миллисекунд. +.TP +.B --max_hostgroup <количество_хостов> +Устанавливает максимальное количество хостов, которое nmap может +сканировать параллельно. Большинство техник сканирования портов +используют одновременное сканирование нескольких хостов, что +позволяет работать быстрее. Но что бы дождаться всех результатов +сканирования вам необходимо ждать, пока будут просканированы все +хосты. Если вы хотите, что бы хосты сканировались поочерёдно и +результаты выводились относительно каждого хоста без задержки +- используйте 1 в качестве аргумента. Заметьте, что ping +-сканирование группирует хосты по-своему и игнорирует этот +параметр. +.TP +.B --min_hostgroup <количество_хостов> +Устанавливает минимальное количество хостов, которое nmap должен +сканировать параллельно. (см. --max_hostgroup) +.TP +.B --max_parallelism <количество> +Устанавливает максимальное количество параллельных процессов +сканирования nmap. Установка этого параметра равным 1 означает, +что nmap никогда не будет сканировать более одного порта в один +момент времени. Этот параметр также влияет и на ping-сканирование, +RPC-сканирование и т.п. +.TP +.B --min_parallelism <количество> +Устанавливает минимальное количество параллельных процессов +сканирования nmap. Увеличивает скорость прохождения пакетов через +некоторые фаерволы, однако если установить слишком большое +значение, - результаты сканирования будут ненадёжными. +.TP +.B --scan_delay <миллисекунды> +Устанавливает минимальное время задержки между отправкой пакетов. +Эта опция используется для снижения нагрузки на сеть и уменьшения +вероятности обнаружения сканирования. Nmap иногда может +увеличивать это значение самостоятельно, если обнаруживает +значительные потери пакетов. Например, ОС Solaris отвечают только +одним ICMP port unreachable пакетом в секунду при UDP-сканировании. Nmap старается определить это и увеличить +минимальное время задержки до одной секунды. +.TP +.B --max_scan_delay <миллисекунды> +Как отмечено выше, nmap может автоматически изменять время +задержки между отправкой пакетов. Это может давать лучшие +результаты при сканировании, но значительно замедлять его. По +умолчанию (без включенной '-Т' опции), nmap может изменять время +задержки между отправкой пакетов до 1 в секунду. Эта опция +позволяет установить большее или меньшее максимальное значение. +.SH СПОСОБЫ ЗАДАНИЯ ЦЕЛИ +Всё, что не является опцией (или аргументом опции) nmap интерпретирует +как адрес сканируемой цели. Простейший вариант - указать имена или ip-адреса хостов в командной строке. Если вы хотите просканировать подсеть +ip-адресов, вы можете дополнить +.B /маску +сети к ip-адресу. Маска должна +быть в диапазоне от 0 (сканировать весь Интернет) до 32 (сканировать +единственный хост). Используйте /24 для сканирования целой сети класса +"С" и /16 для сети класса "В". +.Sp +Nmap также позволяет более гибко указать целевые IP-адреса, используя +списки и диапазоны для каждого их элемента. Например, чтобы +просканировать подсеть класса "B" с адресом 192.168.*.*. в командной +строке вы можете указать " +.B 192.168.*.* +" или " +.B 192.168.0-255.0-255 +" или даже " +.B 192.168.1-50,51-255.1,2,3,4,5-255 +". И, конечно же, вы можете +использовать маску - " +.B 192.168.0.0/16" +. Если вы используете астериск +("*"), помните, что некоторые командные интерпретаторы требуют указывать +"\" перед этим символом, или другие спецсимволы. +.Sp +Ещё одним вариантом задания адресов является использование префикса. +Например, что бы просканировать все адреса в сети, заканчивающиеся на +.6.7 можно задать "*.*.6.7". +.SH ПРИМЕРЫ +В этом разделе приводятся некоторые примеры использования nmap, от +простых до более сложных. +.Sp +.B nmap -v target.example.com +.Sp +Сканировать все зарезервированные TCP-порты на хосте target.example.com. +Опция '-v' означает включить режим подробного отчета о ходе процесса +сканирования. +.Sp +.B nmap -sS -O target.example.com/24 +.Sp +Запускает SYN-сканирование (-sS) всех 255(маска /24) машин с адресами +класса "C", одной из которых является target.example.com. Также +осуществляется определение ОС (-O) каждого из сканируемых хостов. Для +выполнения этих действий вам необходим статус root. +.Sp +.B nmap -sX -p 22,53,110,143,4564 198.116.*.1-127 +.Sp +Запускает Xmas-сканирование (-sX) первой половины адресов (0-127) каждой +из 255 подсетей класса "B" адресного пространства 128.210.*.*. На этих +хостах сканируются 22, 53, 110, 143 и 4564 порты. Заметьте, что Xmas-сканирование работает с ОС Windows, CISCO, IRIX, HP/UX и BSDI машинами. +.Sp +.B nmap -v --randomize_hosts -p 80 *.*.2.3-5 +.Sp +Вместо сканирования конкретных адресных диапазонов, иногда бывает +интересно сканировать хосты, выбранные случайным образом. Эта команда +ищет веб-сервера, ip-адрес которых оканчивается на .2.3, .2.4 и .2.5. +Если ваш статус root, вы также можете просканировать порты обнаруженных +хостов, указав опцию '-sS'. Вы можете найти много интересных машин, +адреса которых начинаются на 127. Для этого укажите вместо первого +астериска '127-222'. +.Sp +.B host -l company.com | cut -d -f 4 | ./nmap -v -iL - +.Sp +Просмотреть серверы DNS зоны и найти хосты в домене company.com, передав +затем в nmap их адреса. Так выглядит команда для GNU/Linux, но для других +ОС она может выглядеть несколько иначе. +.SH ОШИБКИ +Ошибки? Какие ошибки? Если вы нашли ошибки - просьба незамедлительно +сообщить о них. (желательно присылать и исправления :-) ). Не забывайте +также присылать новые отпечатки ОС для пополнения общей базы. Отправляйте +информацию на e-mail fyodor[@]insecure.org или в конференцию http://seclists.org/#nmap-dev. +.SH АВТОР +.Sp +Fyodor +.I +.SH РАСПРОСТРАНЕНИЕ +Новейшую версию nmap вы можете скачать по адресу http://www.insecure.org/nmap/ +.Sp +Права на Nmap Security Scanner принадлежат 1996-2004 Insecure.Com LLC. +Nmap также является зарегистрированной торговой маркой Insecure.Com LLC. +Эта программа является бесплатным программным обеспечением. Вы можете +свободно распространять и/или модифицировать ее в соответствии с +требованиями GNU General Public License, опубликованной Free Software +Foundation; Версия 2. Если вы хотите использовать технологии nmap в +частных программных продуктах - мы можем продать альтернативные лицензии. +Обращайтесь на sales@insecure.com +.Sp +ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ БЕЗ ПРЕДОСТАВЛЕНИЯ КАКИХ-ЛИБО ГАРАНТИЙ. +.Sp +Этот продукт также включает в себя программное обеспечение произведённое +Apache Software Foundation (http://www.apache.org/) +.Sp +Авторские права на библиотеку PCRE (Perl Compatible Regular Expressions), +созданную Philip Hazel, принадлежат Кэмбриджскому Университету. Подробнее - http://www.pcre.org/ +.Sp +Библиотека Libpcap распространяется вместе с nmap и авторские права на +неё принадлежат Van Jacobson, Craig Leres и Steven McCanne, Национальная +лаборатория Lawrence Berkley Калифорнийского университета, Беркли, +Калифорния. Сейчас эта библиотека сопровождается http://www.tcpdump.org. +.Sp +Nmap опционально может быть скомпилирован с поддержкой OpenSSL. Подробнее - http://www.openssl.org/. +.Sp +Перевод руководства пользователя на русский : Айви Ризз 5B43694E5D \ No newline at end of file diff --git a/nmap-os-fingerprints b/nmap-os-fingerprints index 1d2ee752a..4d47fbfaf 100644 --- a/nmap-os-fingerprints +++ b/nmap-os-fingerprints @@ -8619,6 +8619,21 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +# HP9000 Model 804 K450 running HP-UX 11.00 +# Mac OS9 +Fingerprint Apple Mac OS 9, or HP-UX 11.00 +Class HP | HP-UX | 11.X | general purpose +Class Apple | Mac OS | 9.X | general purpose +TSeq(Class=RI%gcd=<6%SI=<4F254&>C95) +T1(DF=N%W=8000%ACK=S++%Flags=AS%Ops=MEWNNNT) +T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) +T3(Resp=Y%DF=N%W=8000%ACK=S++%Flags=AS%Ops=MEWNNNT) +T4(DF=N%W=0%ACK=O%Flags=R%Ops=) +T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=N%W=0%ACK=O%Flags=R%Ops=) +T7(DF=N%W=0%ACK=S%Flags=AR%Ops=) +PU(Resp=Y%DF=N%TOS=0%IPLEN=70%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # HP-UX B.11.00 # HP-UX B.11.11 Fingerprint HP-UX 11 @@ -8719,21 +8734,6 @@ T6(DF=N|Y%W=0%ACK=O%Flags=R%Ops=) T7(DF=N|Y%W=0%ACK=S%Flags=AR%Ops=) PU(DF=N|Y%TOS=0%IPLEN=70%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) -# HP9000 Model 804 K450 running HP-UX 11.00 -# Mac OS9 -Fingerprint Apple Mac OS 9, or HP-UX 11.00 -Class HP | HP-UX | 11.X | general purpose -Class Apple | Mac OS | 9.X | general purpose -TSeq(Class=RI%gcd=<6%SI=<4F254&>C95) -T1(DF=N%W=8000%ACK=S++%Flags=AS%Ops=MEWNNNT) -T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) -T3(Resp=Y%DF=N%W=8000%ACK=S++%Flags=AS%Ops=MEWNNNT) -T4(DF=N%W=0%ACK=O%Flags=R%Ops=) -T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=N%W=0%ACK=O%Flags=R%Ops=) -T7(DF=N%W=0%ACK=S%Flags=AR%Ops=) -PU(Resp=Y%DF=N%TOS=0%IPLEN=70%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - # HP-UX 7.0 B 9000/375 Fingerprint HP-UX 7.0 Class HP | HP-UX | 7.X | general purpose @@ -13844,19 +13844,6 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) -# Windows 98SE, no service packs, on AMD Sempron 2.4 GHz -Fingerprint Microsoft Windows 98SE -Class Microsoft | Windows | 95/98/ME | general purpose -TSeq(Class=RI%gcd=<6%SI=<1AA4&>D%IPID=RPI%TS=U) -T1(DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=M) -T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) -T3(Resp=Y%DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=M) -T4(DF=N%W=0%ACK=O%Flags=R%Ops=) -T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=N%W=0%ACK=O%Flags=R%Ops=) -T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - Fingerprint Microsoft Windows 98 SP1 Class Microsoft | Windows | 95/98/ME | general purpose TSeq(Class=TD%gcd=<5%SI=<20) @@ -13881,6 +13868,19 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +# Windows 98SE, no service packs, on AMD Sempron 2.4 GHz +Fingerprint Microsoft Windows 98SE +Class Microsoft | Windows | 95/98/ME | general purpose +TSeq(Class=RI%gcd=<6%SI=<1AA4&>D%IPID=RPI%TS=U) +T1(DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=M) +T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) +T3(Resp=Y%DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=M) +T4(DF=N%W=0%ACK=O%Flags=R%Ops=) +T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=N%W=0%ACK=O%Flags=R%Ops=) +T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # Microsoft Windows 98 4.10.2222.A # "Windows 98SE, patched up to date" (1/25/03) Fingerprint Microsoft Windows 98SE @@ -15050,6 +15050,18 @@ T6(DF=N%W=400|800%ACK=S%Flags=AR%Ops=) T7(DF=N%W=800|C00%ACK=S++%Flags=AR%Ops=) PU(Resp=N) +Fingerprint Microsoft Windows XP Home Edition +Class Microsoft | Windows | NT/2K/XP | general purpose +TSeq(Class=RI%gcd=<6%SI=<23C4E&>330%IPID=I%TS=U) +T1(DF=Y%W=F424%ACK=S++%Flags=AS%Ops=MNW) +T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) +T3(Resp=Y%DF=Y%W=F424%ACK=S++%Flags=AS%Ops=MNW) +T4(DF=N%W=0%ACK=O%Flags=AR%Ops=) +T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=N%W=0%ACK=O%Flags=AR%Ops=) +T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # Microsoft Windows XP Home Edition (English) SP2 build 2600.xps_p2_gdr.050301:1519 Fingerprint Microsoft Windows XP Home Edition (English) SP2 Class Microsoft | Windows | NT/2K/XP | general purpose @@ -15063,31 +15075,6 @@ T6(DF=N%W=1000|800%ACK=S%Flags=AR%Ops=WNMETL) T7(Resp=N) PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=F%RIPCK=E%UCK=F%ULEN=134%DAT=E) -# Microsoft Windows XP Version 5.1 Home German SP2 (Build 2600.xpsp_sp2_rtm.040803-2158 : SP2), latest Updates as of Oct 27, 2004 -Fingerprint Microsoft Windows XP Home Edition (German) SP2 -Class Microsoft | Windows | NT/2K/XP | general purpose -TSeq(Class=TR%gcd=<6%IPID=I) -T1(DF=N%W=805C%ACK=S++%Flags=AS%Ops=MNWNNT) -T2(Resp=N) -T3(Resp=N) -T4(Resp=N) -T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=N%W=0%ACK=O%Flags=R%Ops=) -T7(Resp=N) -PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - -Fingerprint Microsoft Windows XP Home Edition -Class Microsoft | Windows | NT/2K/XP | general purpose -TSeq(Class=RI%gcd=<6%SI=<23C4E&>330%IPID=I%TS=U) -T1(DF=Y%W=F424%ACK=S++%Flags=AS%Ops=MNW) -T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) -T3(Resp=Y%DF=Y%W=F424%ACK=S++%Flags=AS%Ops=MNW) -T4(DF=N%W=0%ACK=O%Flags=AR%Ops=) -T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=N%W=0%ACK=O%Flags=AR%Ops=) -T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - # Microsoft Windows XP Home Edition (German) SP1 # ver 5.1 build 2600.xpsp2.030422-1633 : SP 1; German version # Microsoft Windows XP Home Edition (German) SP1 @@ -15103,6 +15090,19 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E|F%ULEN=134%DAT=E) +# Microsoft Windows XP Version 5.1 Home German SP2 (Build 2600.xpsp_sp2_rtm.040803-2158 : SP2), latest Updates as of Oct 27, 2004 +Fingerprint Microsoft Windows XP Home Edition (German) SP2 +Class Microsoft | Windows | NT/2K/XP | general purpose +TSeq(Class=TR%gcd=<6%IPID=I) +T1(DF=N%W=805C%ACK=S++%Flags=AS%Ops=MNWNNT) +T2(Resp=N) +T3(Resp=N) +T4(Resp=N) +T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=N%W=0%ACK=O%Flags=R%Ops=) +T7(Resp=N) +PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # Microsoft Windows XP Home Edition (English) SP1 Version 5.1.2600.1106 build 2600 xpsp.1.020828-1-920 Fingerprint Microsoft Windows XP Home Edition SP1 Class Microsoft | Windows | NT/2K/XP | general purpose @@ -15232,19 +15232,6 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(Resp=N) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) -# Windows XP Professionnel (5.1) Service Pack 2 -Fingerprint Microsoft Windows XP Pro SP2 -Class Microsoft | Windows | NT/2K/XP | general purpose -TSeq(Class=TR%gcd=<6%IPID=I) -T1(DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=MNWNNT) -T2(Resp=Y%DF=N%W=C00|800|400%ACK=S%Flags=AR%Ops=WNMETL) -T3(Resp=Y%DF=N%W=C00|800|400%ACK=S++%Flags=AR%Ops=WNMETL) -T4(DF=N%W=400|1000%ACK=S%Flags=AR%Ops=WNMETL) -T5(DF=N%W=C00%ACK=S++%Flags=AR%Ops=WNMETL) -T6(DF=N%W=800|400%ACK=S%Flags=AR%Ops=WNMETL) -T7(DF=N%W=400|800%ACK=S++%Flags=AR%Ops=WNMETL) -PU(Resp=N) - # Microaodr Windows XP Pro with SP! and latest Windows Update patches as of June 1, 2005 Fingerprint Microsoft Windows XP Pro SP1 Class Microsoft | Windows | NT/2K/XP | general purpose @@ -15416,6 +15403,20 @@ T6(DF=N%W=C00|400|800%ACK=S%Flags=R%Ops=WNMETL) T7(DF=N%W=1000|800%ACK=S%Flags=R%Ops=WNMETL) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +# Microsoft Windows Version 5.1 Build 2600.xpsp2.030825-2117: Service Pack 1 +# Microsoft Windows XP Professional SP1 build 2600, latest windows updates (march 27, 2005) +Fingerprint Microsoft Windows XP Pro SP1 +Class Microsoft | Windows | NT/2K/XP | general purpose +TSeq(Class=RI%gcd=<6%SI=<1B1AC&>29E%IPID=I%TS=U) +T1(DF=N%W=2000|4000%ACK=S++%Flags=AS%Ops=M) +T2(Resp=N) +T3(Resp=N) +T4(DF=N%W=0%ACK=O%Flags=R%Ops=) +T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=N%W=0%ACK=O%Flags=R%Ops=) +T7(Resp=N) +PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # Windows XP Professional 2002 - Service Pack 1 - Hotfixes # Windows XP Profesional build 2600.xpsp2.030422-1633: Service Pack 1 # Windows XP Professional SP1 build 2600.xpsp1.030422-166: Service Pack 1 @@ -15489,6 +15490,19 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +# Windows XP Professionnel (5.1) Service Pack 2 +Fingerprint Microsoft Windows XP Pro SP2 +Class Microsoft | Windows | NT/2K/XP | general purpose +TSeq(Class=TR%gcd=<6%IPID=I) +T1(DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=MNWNNT) +T2(Resp=Y%DF=N%W=C00|800|400%ACK=S%Flags=AR%Ops=WNMETL) +T3(Resp=Y%DF=N%W=C00|800|400%ACK=S++%Flags=AR%Ops=WNMETL) +T4(DF=N%W=400|1000%ACK=S%Flags=AR%Ops=WNMETL) +T5(DF=N%W=C00%ACK=S++%Flags=AR%Ops=WNMETL) +T6(DF=N%W=800|400%ACK=S%Flags=AR%Ops=WNMETL) +T7(DF=N%W=400|800%ACK=S++%Flags=AR%Ops=WNMETL) +PU(Resp=N) + # Microsoft Windows XP Professional Service Pack 2 Build 5 1 2600 Fingerprint Microsoft Windows XP Pro SP2 Class Microsoft | Windows | NT/2K/XP | general purpose @@ -15753,6 +15767,19 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(Resp=N) PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +# Microsoft Windows Version 5.1 (Build 2600.XPSP_SP2_GDR.050301-1519 : Service Pack 2) +Fingerprint Microsoft Windows XP SP2 +Class Microsoft | Windows | NT/2K/XP | general purpose +TSeq(Class=TR%gcd=<6%IPID=I) +T1(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) +T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) +T3(Resp=Y%DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) +T4(DF=N%W=0%ACK=O%Flags=R%Ops=) +T5(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) +T6(DF=N%W=0%ACK=O%Flags=R%Ops=) +T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) +PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) + # Microsoft Windows XP Professional Build 2600.xpsp_sp2_rtm.040803-2158 : Service Pack 2 # Microsoft Windows XP Professional SP2 build 2600.xpsp_sp2_rtm.040803-2158 # Microsoft Windows XP Professional SP2 and latest Windows Updates patches as of Dec 15, 2004 @@ -15791,33 +15818,6 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) -# Microsoft Windows Version 5.1 (Build 2600.XPSP_SP2_GDR.050301-1519 : Service Pack 2) -Fingerprint Microsoft Windows XP SP2 -Class Microsoft | Windows | NT/2K/XP | general purpose -TSeq(Class=TR%gcd=<6%IPID=I) -T1(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) -T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) -T3(Resp=Y%DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) -T4(DF=N%W=0%ACK=O%Flags=R%Ops=) -T5(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT) -T6(DF=N%W=0%ACK=O%Flags=R%Ops=) -T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -PU(DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - -# Microsoft Windows Version 5.1 Build 2600.xpsp2.030825-2117: Service Pack 1 -# Microsoft Windows XP Professional SP1 build 2600, latest windows updates (march 27, 2005) -Fingerprint Microsoft Windows XP Pro SP1 -Class Microsoft | Windows | NT/2K/XP | general purpose -TSeq(Class=RI%gcd=<6%SI=<1B1AC&>29E%IPID=I%TS=U) -T1(DF=N%W=2000|4000%ACK=S++%Flags=AS%Ops=M) -T2(Resp=N) -T3(Resp=N) -T4(DF=N%W=0%ACK=O%Flags=R%Ops=) -T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=N%W=0%ACK=O%Flags=R%Ops=) -T7(Resp=N) -PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) - # HP Jornada running Windows CE 2.11 (Handheld/PC Pro 3.0) running on StrongARM 1100 Fingerprint HP Jornada running Microsoft Windows CE 2.11 (Handheld/PC Pro 3.0 PDA) Class Microsoft | Windows | PocketPC/CE | PDA @@ -15896,18 +15896,6 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(Resp=N) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) -Fingerprint Microsoft Windows Longhorn eval build 4051 -Class Microsoft | Windows || general purpose -TSeq(Class=TR%gcd=<6%IPID=I%TS=100HZ) -T1(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) -T2(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=) -T3(Resp=Y%DF=Y%W=0%ACK=O%Flags=AR%Ops=) -T4(DF=Y%W=0%ACK=O%Flags=R%Ops=) -T5(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) -T6(DF=Y%W=0%ACK=O%Flags=R%Ops=) -T7(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) -PU(DF=N%TOS=0%IPLEN=164%RIPTL=148%RID=E|F%RIPCK=E%UCK=E%ULEN=134%DAT=E) - Fingerprint Microsoft Windows 2000 Server SP3 Class Microsoft | Windows || general purpose TSeq(Class=RI%gcd=<6%SI=<30714&>2A7%IPID=I) @@ -15920,6 +15908,18 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=) T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) +Fingerprint Microsoft Windows Longhorn eval build 4051 +Class Microsoft | Windows || general purpose +TSeq(Class=TR%gcd=<6%IPID=I%TS=100HZ) +T1(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) +T2(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=) +T3(Resp=Y%DF=Y%W=0%ACK=O%Flags=AR%Ops=) +T4(DF=Y%W=0%ACK=O%Flags=R%Ops=) +T5(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) +T6(DF=Y%W=0%ACK=O%Flags=R%Ops=) +T7(DF=Y%W=0%ACK=S++%Flags=AR%Ops=) +PU(DF=N%TOS=0%IPLEN=164%RIPTL=148%RID=E|F%RIPCK=E%UCK=E%ULEN=134%DAT=E) + Fingerprint MikroTik RouterOS 2.7.20 Class MikroTik | RouterOS || software router TSeq(Class=RI%gcd=<6%SI=<1B9B36E&>46A4A%IPID=Z%TS=100HZ) diff --git a/nmap-service-probes b/nmap-service-probes index a3cd176c5..29c1616ec 100644 --- a/nmap-service-probes +++ b/nmap-service-probes @@ -41,16 +41,33 @@ Probe TCP NULL q|| # FEATURE('greet_pause') in Sendmail, for example) totalwaitms 6000 match acap m|^\* ACAP \(IMPLEMENTATION \"CommuniGate Pro ACAP (\d[-.\w]+)\"\) | p/CommuniGate Pro ACAP server/ i/for mail client preference sharing/ v/$1/ -match aim m|^\*\x01..\0\x04\0\0\0\x01$|s p/Pyboticide AIM chat filter/ # AMANDA index server 2.4.2p2 on Linux 2.4 match amanda m|^220 ([-.\w]+) AMANDA index server \((\d[-.\w ]+)\) ready\.\r\n| p/Amanda backup system index server/ v/$2/ h/$1/ o/Unix/ +match antivir m|^220 Symantec AntiVirus Scan Engine ready\.\r\n| p/Symantec AntiVirus Scan Engine/ +match antivir m|^200 NOD32SS ([\d.]+) \((\d+)\)\r\n| p/NOD32 AntiVirus/ v/$1 ($2)/ +match aplus m|^\x01\xff\0\xff\x01\x1d\0\xfd\0\n\x03\x05A\+ API \(([\d.]+)\) - CCS \(([\d.]+)\)\0| p/Cleo A+/ i/API $1; CSS $2/ # arkstats (part of arkeia-light 5.1.12 Backup server) on Linux 2.4.20 match arkstats m|^\0`\0\x03\0\0\0\x1810\x000\x000\x00852224\0\0\0\0\0\0\0\0\0\0\0| p/Arkeia arkstats/ -match backdoorjeam m|^220 jeem\.mail\.pv ESMTP\r\n| p/Jeem backdoor/ i/**BACKDOOR**/ +match artsd m|^MCOP\0\0\0.\0\0\0\x01\0\0\0\x10aRts/MCOP-([\d.]+)\0\0\0\0|s p/artsd/ i/MCOP $1/ +match audit m|^Visionsoft Audit on Demand Service\r\nVersion: ([\d.]+)\r\n\r\n| p/Visionsoft Audit on Demand Service/ v/$1/ o/Windows/ + +match backdoor m|^220 jeem\.mail\.pv ESMTP\r\n| p/Jeem backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^\r\nUser Access Verification\r\n\r\nYour PassWord:| p/Jeem backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^ \r\n$| p/OptixPro backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^echo o [\d.]+ \d+ >s\r\necho common>> s\r\necho common>> s\r\necho bin>> s\r\necho get m220\.exe| p/JTRAM backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^220 Bot Server \(Win32\)\r\n$| p/Gaobot backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^PWD$| p/Subseven backdoor/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^=+\n= +RBackdoor ([\d.]+) | p/RBackdoor/ v/$1/ i/**BACKDOOR**/ o/Windows/ +match backdoor m|^220 Windrone Server \(Win32\)\r\n$| p/NerdBot backdoor/ i/**BACKDOOR**/ o/Windows/ + # Bittorrent Client 3.2.1b on Linux 2.4.X match bittorent m|^\x13BitTorrent protocol\0\0\0\0\0\0\0\0| p/Bittorrent P2P client/ # BMC Software Patrol Agent 3.45 match bmc-softwarepatrol m|^\0\0\0\x17i\x02\x03..\0\x05\x02\0\x04\x02\x04\x03..\0\x03\x04\0\0\0\0\x01\x01\0| p/BMC Software Patrol Agent/ +match buildservice m|^200 HELLO - BuildForge Agent v([\d.]+)\n| p/BuildForge Agent/ v/$1/ +match buildservice m|^\$\0\0\0\$\0\0\x000RAR\0 \0\0.\xe2\x02\0\xc4G\x0f\0\0\0\0\0\0\0\0\0\0\0\0\0|s p/Xoreax IncrediBuild/ o/Windows/ + +match cddbp m|^201 ([\w-_.]+) CDDBP server v([\w-.]+) ready at .*\r\n| p/freedb cddbp server/ v/$2/ h/$1/ match chargen m|^!"#\$%\&'\(\)\*\+,-\./0123456789:;<=>\?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_`abcdefgh\r\n"#\$%\&'\(\)\*\+,-\./0123456789:;<=>\?\@ABCDEF| p/Linux chargen/ o/Linux/ # Redhat 7.2, xinetd 2.3.7 chargen match chargen m|^\*\+,-\./0123456789:;<=>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_`abcdefghijklmnopq\r\n\+,-\./| p/xinetd chargen/ o/Unix/ @@ -58,16 +75,27 @@ match chargen m|^\*\+,-\./0123456789:;<=>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_` match chargen m|^\ !"#\$%&'\(\)\*\+,-\./0123456789:;<=>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_| # Mandrake Linux 9.2, xinetd 2.3.11 chargen match chargen m|NOPQRSTUVWXYZ\[\\\]\^_`abcdefghijklm| p/xinetd chargen/ o/Unix/ +match chargen m|^\*\*\* Port V([\d.]+) !\"#\$%&'\(\)\*\+,-\./0123456789:| p/Lantronix chargen/ v/$1/ +match chat m|^WebStart Chat Service Established\.\.\.\r\n\(C\) 2000-\d+ R Gabriel all Rights Reserved\r\n| p/WebStart Chat Service/ +match chat m|^\*\x01..\0\x04\0\0\0\x01$|s p/AIM or ICQ server/ +match chat-ctl m|^InfoChat Server v([\d.]+) Remote Control ready\n\r| p/InfoChat Remote Control/ v/$1/ +match chess m=^\n\r _ __ __ __ \n\r \| \| / /__ / /________ ____ ___ ___ / /_____ \n\r \| \| /\| / / _ \\/ / ___/ __ \\/ __ `__ \\/ _ \\ / __/ __ \\\n\r= p/Lasker Internet Chess server/ # Citrix, Metaframe XP on Windows match citrix-ica m|^\x7f\x7fICA\0\x7f\x7fICA\0| p/Citrix Metaframe XP ICA/ o/Windows/ +match clsbd m|^\0\0\0\x10ClsBoolVersion 1$| p/Cadence IC design daemon/ match concertosendlog m|^Concerto Software\r\n\r\nEnsemblePro SendLog Server - Version (\d[-.\w]+)\r\n\r\nEnter Telnet Password\r\n#> | p/Concerto Software EnsemblePro CRM software SendLog Server/ v/$1/ match concertotimesync m|^Concerto Software\r\n\r\nContactPro TimeSync Server - Version (\d[-.\w]+)\r\n\r\nEnter Telnet Password\r\n#> | p/Concerto Software EnsemblePro CRM software TimeSync Server/ v/$1/ +match conference m|^Conference, V([\d.]+)\r\n$| p/Forum Communcations conferenced/ v/$1/ +match complex-link m|^\x06\x07\xd0\0\x01\0\0\0\x01\0\x02\x07\xd0\0\x01\0\0\x01\x0f\x01\xf4\0\0\0\0HP +LTO ULTRIUM| p/HP LTO Ultrium data port/ d/storage-misc/ # CompTek AquaGateKeeper (Telephony package) http://aqua.comptek.ru match H.323/Q.931 m|^\x03\0\0.*@| p/CompTek AquaGateKeeper/ +# Cisco router running IOS 12.1.5-12.2.13a +match H.323/Q.931 m|^\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\xff\xfd\x1f$| p/Cisco router/ d/router/ o/IOS/ + match cvspserver m|^no repository configured in /| p/CVS pserver/ i/broken/ match cvspserver m|^/usr/sbin/cvs-pserver: line \d+: .*cvs: No such file or directory\n| p/CVS pserver/ i/broken/ match cvsup m|^OK \d+ \d+ ([-.\w]+) CVSup server ready\n| p/CVSup/ v/$1/ -match damewaremr m|^0\x11\0\0\0..\0......\r@\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0.\0\0\0$|s p/DameWare Mini Remote Control/ o/Windows/ +match damewaremr m|^0\x11\0\0...........@........\x01\0\0\0\x01\0\0\0\0\0\0\0.\0\0\0$|s p/DameWare Mini Remote Control/ o/Windows/ # Linux match daytime m|^[0-3]\d [A-Z][A-Z][A-Z] 20\d\d \d\d:\d\d:\d\d \S+\r\n| # OpenBSD 3.2 @@ -107,12 +135,34 @@ match daytime m|^[A-Z][a-z]+day, [A-Z][a-z]+ \d{1,2}, 200\d \d\d:\d\d:\d\d-MET(- match dict m|^530 access denied\r\n$| p/dictd/ i/access denied/ match dict m|^220 ([-.\w]+) dictd ([-.\w/]+) on ([-.+ \w]+) | p/dictd/ h/$1/ v/$2/ o/$3/ match directconnect m/^\$MyNick ([-.\w]+)|\$Lock/ p/Direct Connect P2P/ i/User: $1/ o/Windows/ +match directconnect m|^\r\nDConnect Daemon v([\d.]+)\r\nlogin: | p/Direct Connect P2P/ v/$1/ o/Windows/ +match directconenct m= Your IP is temporarily banned for (\d+) minutes\.\|= p/Shadows DirectConnect hub/ i/Banned for $1 minutes/ +match directconnect m= You are being redirected to ([\d.]+)\|\$ForceMove [\d.]+\|= p/PtokaX directconnect hub/ i/Redirected to $1/ +match directconnect-admin m=^\r\nOpen DC Hub, version ([\d.]+), administrators port\.\r\nAll commands begin with '\$' and end with '\|'\.\r\nPlease supply administrators passord\.\r\n= p/OpenDCHub directconenct hub admin port/ v/$1/ o/Unix/ +match directupdate m|^OK Welcome <[\d.]+> on DirectUpdate server ([\d.]+)\r\n| p/DirectUpdate dynamic IP updater/ v/$1/ +match directupdate m|^OK Welcome <[\d.]+> on DirectUpdate engine VER=\[([\d.]+) \(Build (\d+)\)\]-0x\w+\r\n| p/DirectUpdate dynamic IP updater/ v/$1 build $2/ + +match dnsix m|^DNSIX$| + +match eftserv m|^\?\x008 \xc3p EFTSRV1 ([\d.]+) | p/Ingenico EFTSRVd/ v/$1/ o/Windows/ match eggdrop m=^\r\n\r\n([-`|.\w]+) \(Eggdrop v(\d[-.\w]+) +\([cC]\) *1997.*\r\n\r\n= p/Eggdrop irc bot console/ v/$2/ i/botname: $1/ -# This fallback is because many people customize their eggdrop -# banners. This rule should always be well below the detailed rule +# These 2 fallbacks are because many people customize their eggdrop +# banners. These rules should always be well below the detailed rule # above. +match eggdrop m|\(Eggdrop v([\d.]+) \(C\) 1997 Robey Pointer.*Eggheads|s p/Eggdrop IRC bot console/ v/$1/ +match eggdrop m|\(Eggdrop v([\d.]+)\+ipv6 \(C\) 1997 Robey Pointer.*Eggheads|s p/Eggdrop IRC bot console with ipv6/ v/$1/ +match eggdrop m|\(Eggdrop v([\d.]+)\+SSL \(C\) 1997 Robey Pointer.*Eggheads|s p/Eggdrop IRC bot console with SSL/ v/$1/ +match eggdrop m|\(Eggdrop v([\d.]+)\+rc(\d+) \(C\) 1997 Robey Pointer.*Eggheads|s p/Eggdrop IRC bot console/ v/$1 rc $2/ +match eggdrop m=\(Eggdrop v([\d.]+)\+(STEALER\.net|Gentoo) \(C\) 1997 Robey Pointer.*Eggheads=s p/Eggdrop IRC bot console with Gentoo patches/ v/$1/ o/Linux/ i/Gentoo/ match eggdrop m|Copyright \(C\) 1997 Robey Pointer\r\n.*Eggheads| p/Eggdrop IRC bot console/ + match finger m|\r\n {4}Line {5,8}User {6,8}Host\(s\) {13,18}Idle +Location\r\n| p/Cisco fingerd/ o/IOS/ d/router/ +match finger m|^OpenLDAP Finger Service\.\.\.\r\n| p/OpenLDAP fingerd/ + +match freevcs m|^Welcome to FreeVCS MSSQL NT Service\r\n| p/FreeVCS/ i/MSSQL/ o/Windows/ +match freevcs m|^Welcome to FreeVCS DBISAM NT Service\r\n| p/FreeVCS/ i/DBISAM/ o/Windows/ +match freevcs m|^Welcome to FreeVCS Test NT Service\r\n| p/FreeVCS/ o/Windows/ + match ftp m|^220 ([-/.+\w]+) FTP server \(SecureTransport (\d[-.\w]+)\) ready\.\r\n| p/Tumbleweed SecureTransport ftpd/ h/$1/ v/$2/ match ftp m|^220 3Com 3CDaemon FTP Server Version (\d[-.\w]+)\r\n| p/3Com 3CDaemon ftpd/ v/$1/ # GuildFTP 0.999.9 on Windows @@ -160,7 +210,7 @@ match ftp m|^220 AXIS (\d+) Video Server (\d\S+) (.*?) ready\.| p/AXIS $1 Video match ftp m|^220-Cerberus FTP Server Personal Edition\r\n220-UNREGISTERED\r\n| p/Cerberus FTP Server/ i/Personal Edition; Unregistered/ o/Windows/ match ftp m|^220-Welcome to Cerberus FTP Server\r\n220 Created by Grant Averett\r\n| p/Cerberus ftpd/ o/Windows/ match ftp m|^220 FTP print service:V-(\d[-.\w]+)/Use the network password for the ID if updating\.\r\n| p/Brother printer ftpd/ v/$1/ d/printer/ -match ftp m|^220- APC FTP server ready\.\r\n220 \r\n$| p/APC ftp server/ d/power device/ +match ftp m|^220- APC FTP server ready\.\r\n220 \r\n$| p/APC ftp server/ d/power-device/ match ftp m|^220 ([-\w]+) FTP server \(Version (\d.[.\d]+) ([A-Z][a-z]{2} [A-Z][a-z]{2} [0-9]+ [0-9:]+ .* [21][0-9]+)\) ready\.\r\n| p/HP-UX 10.x ftpd/ h/$1/ v/$2/ o/HP-UX/ i/$3/ match ftp m|^220 ([-\w]+) FTP server \(Version (\d[-.\w]+) [A-Z][a-z]{2} [A-Z][a-z]{2} .*\) ready\.\r\n| p/AIX ftpd/ h/$1/ v/$2/ o/AIX/ match ftp m|^220[- ]Roxen FTP server running on Roxen (\d[-.\w]+)/Pike (\d[-.\w]+)\r\n| p/Roxen ftp server/ v/$1/ i/Pike $2/ @@ -174,6 +224,7 @@ match ftp m/^220.*Microsoft FTP Service \(Version (\d[^)]+)/ p/Microsoft ftpd/ v match ftp m/^220[ -]Microsoft FTP Service\r\n/ p/Microsoft ftpd/ o/Windows/ match ftp m/^220[ -]Serv-U FTP[ -]Server v(\d\S+) ... WinSock ...../ p/Serv-U ftpd/ v/$1/ o/Windows/ match ftp m|^220-Serv-U FTP Server for Winsock\r\n| p/Serv-U ftpd/ o/Windows/ +match ftp m|^220-SECURE FTP SERVER VERSION ([\d.]+) \(([\w-_.]+)\)\r\n| p/Serv-U ftpd/ v/$1/ i/Name $2/ o/Windows/ match ftp m/^220-Sambar FTP Server Version (\d\S+)\x0d\x0a/ p/Sambar ftpd/ v/$1/ # Sambar server V5.3 on Windows NT match ftp m|^220-FTP Server ready\r\n220-Use USER user@host for native FTP proxy\r\n220 Your FTP Session will expire after 300 seconds of inactivity\.\r\n| p/Sambar ftpd/ @@ -257,9 +308,9 @@ match ftp m|^220 ([-\w]+) FTP server \(NetWare (v[\d.]+)\) ready\.\r\n$| p/Novel match ftp m|220 FTP Server for NW 3.1x, 4.xx \((v1.10)\), \(c\) 199[0-9] HellSoft\.\r\n$| p/HellSoft FTP server for Netware 3.1x, 4.x/ v/$1/ match ftp m|^220 ([-.\w]+) MultiNet FTP Server Process V(\S+) at .+\r\n$| p/DEC OpenVMS MultiNet FTPd/ h/$1/ v/$2/ match ftp m|^220-\r\n220 ([-.\w]+) FTP server \(NetBSD-ftpd ([-.\w]+)\) ready.\r\n$| p/NetBSD ftpd/ h/$1/ v/$2/ o/NetBSD/ -match ftp m|^220 ([-.\w]+) Network Management Card AOS v([-.\w]+) FTP server ready.\r\n$| p/APC AOS ftpd/ v/$2/ i/on APC $1 network management card/ d/power device/ o/AOS/ +match ftp m|^220 ([-.\w]+) Network Management Card AOS v([-.\w]+) FTP server ready.\r\n$| p/APC AOS ftpd/ v/$2/ i/on APC $1 network management card/ d/power-device/ o/AOS/ # G-Net BB0060 ADSL Modem - the ftpd might be by "GlobespanVirata" as that -# is what the telnetd on this device said. +# is what the t3lnetd on this device said. match ftp m|^220 FTP Server \(Version 1.0\) ready.\r\n$| p/G-Net DSL Modem ftpd/ v/1.0/ d/broadband router/ # HP-UX B.11.00 match ftp m|^220 ([-.\w ]+) FTP server \(Version (1.1.2[.\d]+) [A-Z][a-z]{2} [A-Z][a-z]{2} .*\) ready.\r\n| p/HP-UX ftpd/ h/$1/ v/$2/ o/HP-UX/ @@ -306,7 +357,6 @@ match ftp m|^220 LP-8900-\w+ FTP server \(OEM FTPD version ([\d.]+)\) ready\.\r\ match ftp m|^220 StylusPhoto750-AF6788 FTP server \(OEM FTPD version ([\d.]+)\) ready\.\r\n| p/Epson StylusPhoto750 ftpd/ i/runs OEM FTPD $1/ d/print server/ match ftp m|^220 AL-C900-BB0200 FTP server \(OEM FTPD version ([\d.]+)\) ready\.\r\n| p/Epson AcuLaser C900 printer ftpd/ i/runs OEM FTPD $1/ d/printer/ match ftp m|^220 FTP Version ([\d.]+) on MSS100\r\n| p/Lantronix MSS100 serial interface ftpd/ v/$1/ d/specialized/ -match ftp m|^503 Service Unavailable\r\n\r\n\0$| p/NFR BackOfficer Friendly ftp honeypot/ match ftp m|^220 Matrix FTP server \(Server \w+#\d\) ready\.\r\n| p/Matrix ftpd/ match ftp m|^220 Titan FTP Server ([\d.]+) Ready\.\r\n| p/Titan ftpd/ v/$1/ o/Windows/ match ftp m|^421-\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+=\+\r\n421-The evaluation period for this Titan FTP Server has expired\.\r\n| p/Titan ftpd/ i/Evaluation period expired/ o/Windows/ @@ -315,9 +365,11 @@ match ftp m|^220 CesarFTP ([\w.]+) Server Welcome !\r\n| p/CesarFTPd/ v/$1/ o/Wi match ftp m|^220 CesarFTP ([\w.]+) \xb7\xfe\xce\xf1\xc6\xf7\xbb\xb6\xd3\xad !\r\n| p/CesarFTPd/ v/$1/ i/Chinese/ o/Windows/ match ftp m|^220-This site is running the BisonWare BisonFTP server product V([\d.]+)\r\n| p/BisonWare BisonFTPd/ v/$1/ o/Windows/ match ftp m=^220-Welcome to XBOX FileZilla( \(XBMC\)|)\r\n220-version: XBFileZilla version ([\d.]+), \(based on FileZilla Server ([\d.]+)\)\r\n220 http://sourceforge\.net/projects/xbfilezilla\r\n= p/XBFileZilla/ v/$2/ i/Based on FileZilla $3/ -match ftp m|^220 Session will be terminated after 600 seconds of inactivity\.\r\n| p/Cisco 3000 VPN ftpd/ o/IOS/ d/security-misc/ +match ftp m|^220 Session will be terminated after 600 seconds of inactivity\.\r\n| p/Cisco 3000 series VPN ftpd/ o/IOS/ d/security-misc/ match ftp m|^220-SlimFTPd ([\d.]+), by WhitSoft Development \(www\.whitsoftdev\.com\)\r\n| p/SlimFTPd/ v/$1/ o/Windows/ -match ftp m|^220 BlackMoon FTP Server Version ([\d.]+ Release \d+) - Build \d+\. Free Edition\. Service Ready\r\n| p/BlackMoon ftpd/ v/$1/ o/Windows/ +match ftp m|^220 BlackMoon FTP Server Version ([\d.]+ Release \d+) - Build \d+\. Free Edition\. Service Ready\r\n| p/BlackMoon ftpd/ i/Free edition/ v/$1/ o/Windows/ +match ftp m|^220 BlackMoon FTP Server Version ([\d.]+ Release \d+) - Build \d+\. Chaos Edition\. Service Ready\r\n| p/BlackMoon ftpd/ i/Chaos edition/ v/$1/ o/Windows/ +match ftp m|^220 BlackMoon FTP Server - Free Edition - Version ([\d.]+)\. Service Ready\r\n| p/BlackMoon ftpd/ i/Free edition/ v/$1/ o/Windows/ match ftp m|^220 netapp ftp server\r\n| p/netapp ftpd/ match ftp m|^220 Oracle Internet File System FTP Server ready\r\n| p/Oracle Internet File System ftpd/ match ftp m|^220 RICOH Aficio (\w+) FTP server \(([\d.]+)\) ready\.\r\n| p/Ricoh Aficio $1 printer ftpd/ v/$2/ d/printer/ @@ -330,7 +382,7 @@ match ftp m|^220-\r\n220-\r\n220 Please enter your user name\.\r\n| p/MoreFTPd/ match ftp m|^220 ([\w-_.]+) FTP server \(OSF/1 Version ([\d.]+)\) ready\.\r\n| p|OSF/1 ftpd| i|OSF/1 $2| h/$1/ o/Unix/ match ftp m|^220 AXIS StorPoint CD E100 CD-ROM Server V([\d.]+) .* ready\.\r\n| p/AXIS StorPoint E100 CD-ROM Server ftpd/ v/$1/ d/storage-misc/ match ftp m|^220 Qtopia ([\d.]+) FTP Server\n| p/Qtopia ftpd/ v/$1/ d/PDA/ -match ftp m|^220 Gene6 FTP Server v([\d.]+) \(Build \d+\).* ready\.\.\.\r\n| p/Gene6 ftpd/ v/$1/ o/Windows/ +match ftp m|^220[ -]Gene6 FTP Server v([\d.]+) \(Build \d+\).* ready\.\.\.\r\n| p/Gene6 ftpd/ v/$1/ o/Windows/ match ftp m|^220 G6 FTP Server v([\d.]+) \(beta (\d+)\) ready \.\.\.\r\n| p/Gene6 ftpd/ v/$1 beta $2/ o/Windows/ match ftp m|^220 sftpd/([\d.]+) Server \[[\w-_.]+\]\r\n| p/sftpd/ v/$1/ match ftp m|^220-TYPSoft FTP Server ([\d.]+) ready\.\.\.\r\n| p/TYPSoft ftpd/ v/$1/ o/Windows/ @@ -349,7 +401,7 @@ match ftp m|^220 HD316\r FTP server\(Version([\d.]+)\) ready\.\r\n| p/Panasonic match ftp m=^220 \w+ IBM Infoprint (Color |)(\d+) FTP Server ([\d.]+) ready\.\r\n= p/IBM Inforprint $1$2 ftpd/ v/$3/ d/printer/ match ftp m|^220 ShareIt FTP Server ([\d.]+) \(WINCE\) Ready\.\r\n| p/ShareIt ftpd/ v/$1/ d/PDA/ match ftp m|^220 StnyFtpd 0wns j0\n$| p/Unknown ftp backdoor/ -match ftp m|^220 ISOS FTP Server for Upgrade Purpose \(([\d.]+)\) ready\r\n| p/Billion 741ge ADSL router/ v/$1/ d/router/ +match ftp m|^220 ISOS FTP Server for Upgrade Purpose \(([\d.]+)\) ready\r\n| p/Billion 741GE ADSL router/ v/$1/ d/router/ match ftp m|^220 PV11 FTP Server ready\r\n| p/Unknown wireless acces point ftpd/ i/Runs Phar Lap RTOS/ d/router/ match ftp m|^220 Alize Session Manager FTP Server\r\n| p/Alcatel OmniPCX ftpd/ d/PBX/ match ftp m|^220-FTP Server ready\r\n220-Welcome to the Sambar FTP Server\r\r\n| p/Sambar ftpd/ @@ -361,7 +413,7 @@ match ftp m|^421 You are not permitted to make this connection\.\r\n| p/Symantec match ftp m|^220 copier2FTP server ready\.\r\n| p/Konica Minolta Di3510 Copier ftpd/ d/printer/ match ftp m|^220 DrayTek FTP version ([\d.]+)\r\n| p/DrayTek Vigor router ftpd/ v/$1/ d/router/ match ftp m|^220 ([\w-_.]+) FTP server ready \(mod_ftpd/([\d.]+)\)\r\n| p/mod_ftpd/ v/$2/ h/$1/ -match ftp m|^220 The Avalaunch FTP system -- enter user name\r\n| p/Avalaunch ftpd/ i/XBox/ +match ftp m|^220 The Avalaunch FTP system -- enter user name\r\n| p/Avalaunch ftpd/ i/XBox/ d/game console/ match ftp m|^220 Server 47 FTP service\. Welcome\.\r\n| p/bftpd/ o/Unix/ match ftp m%^220-loading\.\.\r\n220-\| W e L c O m E @ SFXP\|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\|\r\n% p/SwiftFXP/ match ftp m|^220 Z-FTP\r\n| p/Z-FTPd/ @@ -370,9 +422,16 @@ match ftp m|^220 Plan 9 FTP server ready\r\n| p/Plan 9 ftpd/ o/Plan9/ match ftp m=^220-\+----------------------\[ UNREGISTERED VERSION \]-----------------------\+\r\n220-\| This site is running unregistered copy of RaidenFTPD ftp server \+\r\n= p/RaidenFTPd/ i/Unregistered/ o/Windows/ match ftp m|^220.*\r\n220 ([\w-_.]+) FTP server \(Version: Mac OS X Server ([\d.]+) - \+GSSAPI\) ready\.\r\n|s p/MacOS X Server ftpd/ i/MacOS X Server $2/ h/$1/ match ftp m|^220 Fastream NETFile FTP Server( Ready)?\r\n| p/Fastream NETFile FTPd/ o/Windows/ +match ftp m|^220 FTP 9500 server \(Version ([\d.]+)\) ready\.\r\n| p|Nokia Smartphone 9300/9500 ftpd| v/$1/ d/phone/ o/Symbian/ +match ftp m|^220 [\d.]+ CVX FTP server \(([\d.]+)\) ready\.\r\n| p/CVX ftpd/ v/$1/ +match ftp m|^220-\.:\.\r\n220-\.:+\r\n220-\.::::::::::\. e1137 FTP Server loading \.::::::::::::::\. WinSock ready \.| p/e1137 ftpd/ o/Windows/ +match ftp m|^220 Connect\(active \d+, max active \d+\) session \d+ to RemoteScan Server ([\d.]+) on .*\r\n| p/RemoteScan ftpd/ v/$1/ o/Windows/ +match ftp m|^220-ArGoSoft FTP Server for Windows NT/2000/XP, Version [\d.]+ \(([\d.]+)\)\r\n| p/ArGoSoft ftpd/ v/$1/ o/Windows/ +match ftp m|^220 Welcome to the dvd2xbox ftp server\.\r\n| p/dvd2xbox built-in ftpd/ o/game console/ +match ftp m|^220 Welcome To WinEggDrop Tiny FTP Server\r\n| p/WinEggDrop ftpd/ o/Windows/ -match ftp-proxy m|^220 Ftp service of Jana-Server ready\r\n| p/JanaServer ftp proxy/ -match ftp-proxy m|^220 FTP Gateway at Jana Server ready\r\n| p/JanaServer ftp proxy/ +match ftp-proxy m|^220 Ftp service of Jana-Server ready\r\n| p/JanaServer ftp proxy/ o/Windows/ +match ftp-proxy m|^220 FTP Gateway at Jana Server ready\r\n| p/JanaServer ftp proxy/ o/Windows/ match ftp-proxy m|^220 ([-.\w]+) FTP proxy \(Version (\d[-.\w]+)\) ready\.\r\n| p/Guantlet FTP proxy/ v/$1/ # Frox FTP Proxy (frox-0.6.5) on Linux 2.2.X - http://frox.sourceforge.net/ match ftp-proxy m|^220 Frox transparent ftp proxy\. Login with username\[@host\[:port\]\]\r\n| p/Frox ftp proxy/ @@ -387,9 +446,11 @@ match ftp-proxy m|^220 Proxy602 Gateway ready, enter user@host\[:port\]\r\n| p/P match ftp-proxy m|^220 Java FTP Proxy Server \(usage: USERID=user@site\) ready\.\r\n| p/Java FTP Proxy/ match ftp-proxy m|^220 ([\w-_.]+) FTP proxy \(Version V([\d.]+)\) ready\.\r\n| p/Generic FTP proxy/ v/$2/ h/$1/ match ftp-proxy m|^220 CoolProxy FTP server & firewall\r\n| p/CoolProxy ftp proxy/ o/Windows/ +match ftp-proxy m|^220 Finjan SurfinGate Proxy - Server Ready\.\r\n| p/Finjan SurfinGate ftp proxy/ +match ftp-proxy m|^220 ([\w-_.]+) \(NetCache\) .*\r\n| p/NetApp NetCache ftp proxy/ h/$1/ # TODO kerio? #match ftp m|^421 Service not available \(The FTP server is not responding\.\)\n$| v/unknown FTP server//service not responding/ -match vdr m|220(\S+) SVDRP VideoDiskRecorder (\d[^\;]+);| p/VDR/ h/$1/ v/$2/ d/media device/ +match vdr m|^220 (\S+) SVDRP VideoDiskRecorder (\d[^\;]+);| p/VDR/ h/$1/ v/$2/ d/media device/ softmatch ftp m/^220 [-.\w ]+ftp.*\r\n$/i softmatch ftp m/^220-[-.\w ]+ftp.*\r\n220/i @@ -398,15 +459,34 @@ softmatch ftp m/^220-\r?\n220 - ftp/i match fw1-rlogin m|^\0Check Point FireWall-1 authenticated RLogin server running on ([-.\w]+)\r\n\r| p/Check Point FireWall-1 authenticated RLogin server/ i/$1/ match gnats m|^200 ([-.\w]+) GNATS server (\d[-.\w]+) ready\.\r\n| p/GNATS bugtracking system/ h/$1/ v/$2/ + +# Probably not general enough... +match gnatbox m|^GBPK\xfb\xf7n\x93W\xaf\x86\x93x@\xa9\x0e\xca\*\x9bS\0| p/GNATBox firewall administration/ d/firewall/ + +match gkrellm m|^\nClient limit exceeded\.\n| p/GKrellM System Monitor/ +match gkrellm m|^\nConnection not allowed from .*\n| p/GKrellM System Monitor/ + +match gopher m|^3Connection to 207\.250\.128\.187 is denied -- no authorization\.\r\n$| + # Returns ASCII data in the following format: # |HardDrive1DevName|HardDrive1HardwareID|HardDrive1Temp|TempUnit| # |HardDrive2DevName|HardDrive2HardwareID|HardDrive2Temp|TempUnit| -match hddtemp m+^\|/dev/hd\w\|+ p/hddtemp hard drive info server/ +match hddtemp m+^\|/dev/[hs]d\w\|+ p/hddtemp hard drive info server/ +match hddtemp m+^\|$+ p/hddtemp hard drive info server/ + # And now for some SORRY web servers that just blurt out an http "response" upon connection!!! match http m|^HTTP/1\.1 200 OK\r\nContent-type: text/html\r\nExpires: .*\r\nDate: .*\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\nJAP\n| p/Java Anonymous Proxy/ match http m|^HTTP/1.0 500\r\nContent-type: text/plain\r\n\r\nNo Scan Capable Devices Found\r\n| p/HP Embedded Web Server remote scan service/ i/no scanner found/ d/printer/ # SMC Barricade 7004ABR -match http m|^HTTP/1\.0 301 Moved\r\nLocation: http://\d+\.\d+\.\d+\.\d+:88\r\n| p/SMB Barricade broadband router/ i/simply redirects to real web admin port 88/ d/router/ +match http m|^HTTP/1\.0 301 Moved\r\nLocation: http://\d+\.\d+\.\d+\.\d+:88\r\n| p/SMC Barricade broadband router/ i/simply redirects to real web admin port 88/ d/router/ +match http m|^HTTP/1\.0 400 Bad Request\r\nServer: SonicWALL\r\n| p/SonicWALL firewall http config/ d/firewall/ +match http m|^HTTP/1\.0 500 Internal Server Error\r\nDate: .*\r\nContent-type: text/html\r\nExpires: .*\r\n\r\n

500 Internal Server Error

\r\n\r\n\r\n| p/Cisco Catalyst http config/ d/switch/ o/IOS/ +match http m|^HTTP/1\.1 200 OK\nMax-Age: 0\nExpires: 0\nCache-Control: no-cache\nCache-Control: private\nPragma: no-cache\nContent-type: multipart/x-mixed-replace;boundary=BoundaryString\n\n--BoundaryString\n| p/Motion Webcam gateway httpd/ +match http m|^HTTP/1\.1 \d\d\d .*\r\nContent-Type: text/plain\r\nServer: WPA/([\w-_.]+)\r\n\r\n| p/Glucose WeatherPop Advanced httpd/ v/$1/ o/Mac OS X/ +match http m|^HTTP/1\.0 503 R\r\nContent-Type: text/html\r\n\r\nBusy$| p/D-Link router http config/ d/router/ +match http m|^501 Not Implemented\n

501 Not Implemented

\nThe server has not implemented your request type\.
\n\r\n$| p/Hummingbird Document Manager httpd/ +match http m|^HTTP/1\.0 200 OK\r\nContent-Type: text/html\r\n\r\n\n\n