--// ИНТРО

Иногда ,перед хакером встаёт такая трабла: Он получил задание сломать какой-то сервак за вполне реальные деньги,он долго искал багу на вебе, пробовал php и sql иньекции, изучал скрипты которые стоят на сайте, но всё безрезультатно :( казалось бы ВСЁ ,надежд неосталось,хакер несломает заказанный сайт и неполучит бабки, но тут на помощь взломщику приходит сетевой сканнер NMAP .... Многие говорят "Nmap это офигенная тулза, я юзаю только её ", а на самом деле никто и неумеет пользоваться, этим действительно офигенным сканнером. Что бы ты смог понять как это сделать - я и написал эту статью. Из этой статьи ты узнаешь, как правильно и грамотоно сканить nmap'ом. Итак, поехали!

--// Установка

Для начала нашей задумки тебе придётся обзавестись хорошим и быстроканальным шеллом, это будет нашей с тобой площадкой, где мы выгрузим наш сканнер, настроим, и запустим. Ниже я привёл несколько ресурсов, где ты сможешь найти себе шелл:
www.freeshell.org
m-net.arbornet.org
grex.cyberspace.org
www.nyx.net

После того как ты получил шелл-аккаунт, приступаем к работе. Заходим на шелл, идём в папку tmp (туда обычно разрешена запись), командой : cd /tmp. Следующий шаг заливка самого nmap'a к себе на шелл.Сам сканнер лежит здесь http://download.insecure.org/nmap/dist/nmap-3.75.tgz. Проверь какая качалка стоит у тебя на шелле, вот 3 скамых распространенных:

--- wget -h ---
--- curl -h ---
--- fetch -h ---

и после этого заливай.(пример wget http://download.insecure.org/nmap/dist/nmap-3.75.tgz) Как видишь сканнер находится в архиве( .tgz) , после заливки тебе нужно его разархивировать, командой tar xvzf nmap-3.75.tgz. Выполнил? Красавец, дальше нужно его собрать командой: ./configure, теперь немнго ждём...... Если сборка сканнера прошла без траблов (а я думаю что это так), будем запускать его командой make, ждём... и последняя команда make install. ВСЁ! Сканнер готов к работе... Тепрь перейди в папку куда ты залил свой сканнер, если ты следовал моим указаниям, то сканнер находится в папке tmp ( cd /tmp/nmap-3.75 ) . Можешь выполнить вот эту команду nmap --help и узнать синтаксис. Вообщем с установкой всё. Теперь разберёмся в опциях nmap.


--// Опции

У nmap большое количество различных опций, большинство которых могут комбинироваться друг с другом, что и делает этот сканнер многофункциональным и одним из лучших сканнеров. Приведу наиболее нужные и полезные для сканирования:

  • -sT (scan TCP) - использовать метод TCP connect(). Наиболее общий метод сканирования TCP-портов. Функция connect(),
    присутствующая в любой ОС, позволяет создать соединение с любым портом удаленной машины. Для того, чтобы использовать
    данный метод, пользователь может не иметь никаких привилегий на сканирующем хосте.
  • -sS (scan SYN) - Сканирование скрытно от фаера. Этот метод часто называют "полуоткрытым" сканированием, поскольку при
    этом полное TCP-соединение с портом сканируемой машины не устанавливается.
  • -sP (scan Ping) - ping-"сканирование". (Думаю тут обьяснения ненужны.)
  • -sV (scan Version) - включение режима определения версий служб, за которыми закреплены сканируемые порты.
    После окончания сканирования будет получен список открытых TCP и/или UDP-портов. Без этой опции в списке напротив каждого порта будет указана служба, которая обычно использует данный порт. При включенной опции будет запущена подсистема определения версий служб, которая проведет последовательное тестирование этих портов с целью определения типов и версий служб, за которыми закреплены обнаруженные порты.
  • -sI <zombie_хост[:порт]> (scan Idle) - позволяет произвести абсолютно невидимое сканирование портов.
    Атакующий может просканировать цель, не посылая при этом пакетов от своего IP-адреса. Вместо этого используется метод IdleScan, позволяющий просканировать жертву через так называемый хост-"зомби". Кроме абсолютной невидимости, этот тип сканирования позволяет определить политику доверия между машинами на уровне протокола IP.
    Листинг результатов показывает открытые порты со стороны хоста-"зомби". Таким образом, можно просканировать цель с использованием нескольких "зомби", которым цель может "доверять", в обход файрволлов и пакетных фильтров. Такого рода информация может быть самой важной при выборе целей "первого удара".
    Вы можете указать конкретный порт для проверки изменения IPID на хосте-"зомби". В противном случае Nmap будет использовать номер порта по умолчанию для "tcp ping".
  • -sR (scan RPC) - использовать RPC-сканирование. Этот метод используется совместно с другими методами сканирования и позволяет определить программу, которая обслуживает RPC-порт, и номер ее версии. Для этого все открытые TCP/UDP-порты хоста затопляются NULL-командами оболочки SunRPC, после чего определяются RPC-порты и закрепленные за ними программы.
    Таким образом, вы легко получаете информацию, которую могли бы получить с помощью команды 'rpcinfo -p', даже если portmapper сканируемого хоста закрыт файрволлом или TCP-wrapper'ом.
  • -sW (scan Window) - использовать метод 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.
  • -p <диапазон(ы)_портов> (ports) - эта опция указывает Nmap, какие порты необходимо просканировать. Например, '-p23' означает сканирование 23 порта на целевой машине. Если указано выражение типа '-p 20-30,139,', Nmap будет сканить порты с номерами с 20 по 30 включительно, 139.
  • -o(Operating system detection) - эта опция позволяет определить операционку сканируемого хоста с помощью метода отпечатков стека TCP/IP.
  • -PP - использует пакет ICMP "timestamp request (code 13)" для определения активных хостов.
  • -b <ftp_relay хост> (bounche scan) - использовать атаку "Прорыв через FTP".
    Интересной "возможностью" протокола FTP (RFC 959) является поддержка "доверенных" (proxy) ftp-соединений. Другими словами, с доверенного хоста source.com можно соединиться с ftp-сервером target.com и отправить файл, находящийся на нем, на любой адрес Internet!
    Заметим, что данная возможность известна с 1985 года (когда был написан этот RFC). Nmap использует эту "дыру" для сканирования портов с "доверенного" ftp-сервера. Итак, вы можете подключиться к ftp-серверу "над" файрволлом и затем просканировать заблокированные им порты (например 139-й).
    Если ftp-сервер позволяет читать и записывать данные в какой-либо каталог (например /incoming), вы также можете отправить любые данные на эти порты. Аргумент, указываемый после '-b', представляет собой URL сервера ftp, используемого в качестве "доверенного". Формат URL следующий: имя_пользователя:пароль@сервер:порт. Адрес сервера нужно указать обязательно, остальное можно не указывать.
  • -I (Ident scan) - использовать reverse-ident сканирование. Протокол Ident (RFC 1413) позволяет вскрыть имя пользователя
    (username) процесса, использующего TCP, даже если этот процесс не инициализировал соединение. Так, например, вы можете подключиться к порту http и затем использовать identd для поиска на сервере пользователя root. Это может быть сделано
    только при установлении "полного" TCP-соединения с портом сканируемой машины (т.е. необходимо использовать опцию '-sT').
    Nmap опрашивает identd сканируемого хоста параллельно с каждым открытым портом. Естественно, этот метод не будет работать, если на целевом хосте не запущен identd.
  • -oN <имя_файла> (output Normal) - записывает результаты сканирования в указанный файл в удобной для пользователя форме. --resume <имя_файла> - если вы прервали сканирование сети нажатием комбинации <Ctrl C>, то вы можете продолжить его,
    используя эту опцию, если результаты сканирования записывались в лог-файл с помощью опций '-oG' или '-oN'. В этом случае запустите Nmap с указанием этой опции и имени файла, в который производилась запись предыдущего сеанса. При этом никаких других опций указывать не нужно, поскольку при возобновлении сканирования будут использоваться опции, указанные в
    предыдущем сеансе. Nmap продолжит сканирование с адреса, следующего за последним "завершенным".
  • -v (verbose output) - использовать режим "подробного отчета". Эту опцию рекомендуется использовать в любых случаях, поскольку при этом Nmap подробно сообщает о ходе выполнения текущей операции. Для получения лучшего эффекта можно указать ее дважды. Ну а если вы укажете еще опцию '-d', то от скроллинга экрана у вас может закружиться голова. Как я уже сказал, опций у этого сканнера много, но я расписал самые распрстронённые на мой взгляд.

--// Сканинг

Допустим у нас есть сайт котрый мы хотим просканировать (если у тебя нет такого, то беги в google и вводи в поисковике следующее: .pl -покажет огромный список польских сайтов, .jp -то же самое только японские, .de -немцы и тд. ), пусть это будут немцы ;) Итак теперь у меня есть сайт - www.target.de. Можно выполнить команду: nmap www.target.de и запустить сканнер, но особо нужных нам результатов мы неполучим т.к сканнер выдаст нам только список открытых и закрытых портов, это конечно нужная инфа о сервере, но я предлагаю пойти немного другим путём. Для начала пропингуем сервер и узнаем его ip. Выполняем [ping target.de.](незабудь перед тем как давть команды nmap'у перейти в папку со сканнером) Мы узнали ip сервера , пусть будет xx.xx.xx.76, значит диапазон по которум сканим будет xx.xx.xx.1 - xx.xx.xx.254. Итак, сканнер мы установили, опции узнали, ip пропинговали, что теперь нам мешает начать сканить? НИЧЕГО!..Начнём! Даём такую команду: nmap -p 110 -sV xx.xx.xx. Отсюда следует то ,что мы говорим сканнеру, что сканируем все диапазоны ip, по 110 порту(-p 110) с определением версий служб(-sV) за которыми закреплён сканируемый порт. Попробуем ещё кое-что : nmap -o -p 22,23,110,80 xx.xx.xx.1/35. Тут мы даём сканнеру команду что бы он сканил диапазон айпишников с xx.xx.xx.1 по xx.xx.xx.35, с определением операционки( -o ),по 22,23,110,80 портам. Можно выполнить слудующею команду, на мой взгляд полезную : nmap -sV -o -SS xx.xx.xx. Как видишь мы добавили новую опцию (если ты читал раздел опции, то она для тебя не новая) -sS , котрая означает что мы сканим скрыто от фаервола ,с определением операционки и версий служб.

--// Заключение

Вобщем, комбинировать можно как угодно, главное грамотно суметь оценить результат, так что пробуй добовлять новые опции, эксперементируй, и в дальнейшем ты сможешь юзать это сканнер без всяких статей и будешь знать все опции наизусть...
GooDBye!
----

Автор: c1_ki[ll]er /28.01.05/ ©

Mazafaka.Ru - E-Zine - 2005 ©