PDA

Просмотр полной версии : Производим сканирование nmap'ом


Robin_Hood
12.11.2006, 20:16
Очень часто бывает нужно просканировать неких сайт на наличие уязвимых демонов. Лучшей программой лично я по праву считаю Nmap. И в этой статье я расскажу про принципы с работы с ней.
В этой статье я не расскажу про все способности нмапа, а только про сканирование портов.
Обычное сканирование можно производить указав IP адрес(ип сайта можно узнать на domaintools.com) в аргументы для Nmap, например nmap 115.898.0.125. Результат будет примерно таким:
user@desktop ~ $ nmap 115.898.0.125
Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2006-12-11 23:21 MSK
Interesting ports on gate.localnet (115.898.0.125):
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap run completed -- 1 IP address (1 host up) scanned in 0.555 seconds
При этом программа просто пытается соединится с портами, что может быть легко обнаружено.

Менее заметным является SYN-сканирование, когда вместо настоящего соединения посылается только SYN-пакет.
nmap -sS 115.898.0.125

desktop ~ # nmap -sS 115.898.0.125
Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) 2006-12-11 23:21 MSK
Interesting ports on gate.localnet (115.898.0.125
):
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
443/tcp open https
MAC Address: 00:11:2F:F4:4B:55 (Asustek Computer)

Nmap run completed -- 1 IP address (1 host up) scanned in 0.405 seconds

Однако, самую полную информацию о сканируемом хосте можно узнать, использую запрос nmap -sS -v -v -O 115.898.0.125
desktop ~ # nmap -sS -v -v -O 115.898.0.125
Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2006-12-11 23:31 MSK
Initiating SYN Stealth Scan against gate.localnet (115.898.0.125
) [1663 ports] at 23:31
Discovered open port 80/tcp on 115.898.0.125
Discovered open port 21/tcp on 115.898.0.125
Discovered open port 443/tcp on 115.898.0.125
Discovered open port 22/tcp on 115.898.0.125
Discovered open port 873/tcp on 115.898.0.125
The SYN Stealth Scan took 0.08s to scan 1663 total ports.
For OSScan assuming port 21 is open, 1 is closed, and neither are firewalled
Host gate.localnet (115.898.0.125) appears to be up ... good.
Interesting ports on gate.localnet (115.898.0.125):
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
443/tcp open https
MAC Address: 00:11:2F:F4:4B:55 (Asustek Computer)
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.18 - 2.6.7
OS Fingerprint:
TSeq(Class=RI%gcd=1%SI=2E7845%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RI PCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 24.662 days (since Fri Jan 13 07:38:30 2006)
TCP Sequence Prediction: Class=random positive increments
Difficulty=3045445 (Good luck!)
TCP ISN Seq. Numbers: FC47E005 FC966A63 FC61563D FBC11ADD FC5E53A5 FBBE2AA2
IPID Sequence Generation: All zeros

Nmap run completed -- 1 IP address (1 host up) scanned in 2.340 seconds

На основании анализа поведения системы программа делает предположение о типе операционной системы, запущенной на хосте.

LoFFi
12.11.2006, 20:23
Статья не читабельна. Хоть бы отредактил, с цветами, выделениями и т.д.

+toxa+
12.11.2006, 21:47
Сканирование с Nmap.
===================

Введение
--------

Иногда, перед хакером встает такая проблема: Он получил задание сломать какой-то сервак за вполне реальные деньги, он долго
искал уязвимость на web,пробовал php и sql-иньекции, изучал скрипты которые стоят на сайте, но все безрезультатно :( казалось
бы ВСЕ ,надежды не осталось, хакер не сломает заказанный сайт и не получит бабки ,но тут на помощь взломщику приходит сетевой
сканнер NMAP ....

Многие говорят "Nmap это офигенная тулза, я юзаю только ее", а на самом деле никто из этих выскочек не умеет пользоваться,
этим по истине офигенным сканнером. Что бы ты смог понять, как это сделать, в этой статье я подробно расскажу весь процесс
установки и последующего сканирования сканером.Итак, поехали!


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

Для начала нашей задумки тебе придется обзавестись хорошим и быстро-канальным шеллом, это будет нашей с тобой площадкой,
где мы выгрузим наш сканнер, настроим и запустим.Ниже я привел несколько ресурсов, где ты сможешь найти себе шелл:

grex.cyberspace.org
m-net.arbornet.org
www.freeshell.org
www.nyx.net

После того как ты получил shell-аккаунт, приступаем к работе. Заходим на шелл,идем в папку tmp (туда обычно разрешена запись),
командой: cd /tmp. Следующий шаг заливка самого nmap'a к себе на шелл. Сам сканнер лежит здесь –

http://freshmeat.net/redir/nmap/7202/url_tgz/nmap-4.11.tgz.

Проверь, какая качалка стоит у тебя на шелле(wget,curl,lynx/links,fetch) и после этого заливай.Например

#wget http://freshmeat.net/redir/nmap/7202/url_tgz/nmap-4.11.tgz

Как видишь, сканнер находится в архиве(.tgz), поэтому после заливки тебе нужно его разархивировать, командой:

#tar xvzf nmap-4.11.tgz.

Выполнил? Красавец, дальше нужно его собрать командой :

#./configure,


Если сборка сканнера прошла без проблем(а я думаю что это так),будем запускать его командой make, ждем .. и последняя команда
make install.ВСЕ!Сканнер готов к работе...Теперь перейди в папку куда ты залил свой сканнер, если ты следовал моим указаниям,
то сканнер находится в папке tmp ( cd /tmp/nmap-4.11 ) .Можешь выполнить вот эту команду

#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. Для более подробной информации
смотрите архив nmap-hackers.

================================================== ================================================== ====================
-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 www.target.de

Мы узнали 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 ,которая означает что мы
сканим скрыто от фаервола, с определением операционки и версий служб.

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

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

================================================== ================================================== =========================
l1s, Ru24 Security team.



мдас...

marshall4war
28.03.2007, 02:57
Starting Nmap 4.11 ( http://www.insecure.org/nmap ) at 2007-03-28
юх тЁхь* (ыхЄю)
pcap_open_live(ppp0, 104, 0, 20) FAILED. Reported error: Error op
╤шёЄхьх эх єфрхЄё* эрщЄш єърчрээюх єёЄЁющёЄтю. (20). Will wait 5
etry.
pcap_open_live(ppp0, 104, 0, 20) FAILED. Reported error: Error op
╤шёЄхьх эх єфрхЄё* эрщЄш єърчрээюх єёЄЁющёЄтю. (20). Will wait 2
retry.
Call to pcap_open_live(ppp0, 104, 0, 20) failed three times. Repo
or opening adapter: ╤шёЄхьх эх єфрхЄё* эрщЄш єърчрээюх єёЄЁющёЄтю
There are several possible reasons for this, depending on your op

LINUX: If you are getting Socket type not supported, try modprobe
ecompile your kernel with SOCK_PACKET enabled.
*BSD: If you are getting device not configured, you need to reco
el with Berkeley Packet Filter support. If you are getting No su
ctory, try creating the device (eg cd /dev; MAKEDEV <device>; or
SOLARIS: If you are trying to scan localhost and getting '/dev/l
e or directory', complain to Sun. I don't think Solaris can supp
calhost scans. You can probably use "-P0 -sT localhost" though.

бесит эта фишка
nmap 4.11