Статьи Производим сканирование nmap'ом

Discussion in 'Статьи' started by Robin_Hood, 12 Nov 2006.

  1. Robin_Hood

    Robin_Hood Elder - Старейшина

    Joined:
    30 Oct 2006
    Messages:
    144
    Likes Received:
    155
    Reputations:
    47
    Очень часто бывает нужно просканировать неких сайт на наличие уязвимых демонов. Лучшей программой лично я по праву считаю 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%RIPCK=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


    На основании анализа поведения системы программа делает предположение о типе операционной системы, запущенной на хосте.
     
    #1 Robin_Hood, 12 Nov 2006
    Last edited: 12 Nov 2006
    2 people like this.
  2. LoFFi

    LoFFi Elder - Старейшина

    Joined:
    21 Feb 2006
    Messages:
    194
    Likes Received:
    90
    Reputations:
    85
    Статья не читабельна. Хоть бы отредактил, с цветами, выделениями и т.д.
     
    1 person likes this.
  3. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    Code:
    Сканирование с 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.
    
    
    
    мдас...
     
    _________________________
    3 people like this.
  4. marshall4war

    marshall4war New Member

    Joined:
    24 Dec 2006
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    PHP:
    Starting Nmap 4.11 http://www.insecure.org/nmap ) at 2007-03-28
    юх тЁхь* (ыхЄю)
    pcap_open_live(ppp0104020FAILEDReported errorError op
    ╤шёЄхьх эх єфрхЄё
    эрщЄш єърчрээюх єёЄЁющёЄтю. (20).  Will wait 5
    etry
    .
    pcap_open_live(ppp0104020FAILEDReported errorError op
    ╤шёЄхьх эх єфрхЄё
    эрщЄш єърчрээюх єёЄЁющёЄтю. (20).  Will wait 2
    retry
    .
    Call to pcap_open_live(ppp0104020failed three timesRepo
    or opening adapter╤шёЄхьх эх єфрхЄёэрщЄш єърчрээюх єёЄЁющёЄтю
    There are several possible reasons 
    for thisdepending 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 configuredyou need to reco
    el with Berkeley Packet Filter support
    .  If you are getting No su
    ctory
    , try creating the device (eg cd /devMAKEDEV <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
     
    #4 marshall4war, 28 Mar 2007
    Last edited: 28 Mar 2007