--// ИНТРО
Иногда ,перед хакером встаёт такая трабла: Он получил задание сломать
какой-то сервак за вполне реальные деньги,он долго искал багу на вебе,
пробовал 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!
----
|