В даній статті я хотів би розказати
про найпотужніший інструмент мережевого сканування, яким необхідно
володіти кожного хорошому спеціалісту, що проводить аудит інформаційної
безпеки.
Nmap
- безкоштовне відкрите програмне забезпечення для дослідження та аудиту
безпеки мереж та виявлення активних мережевих сервісів. [nmap вікі].
Дана утиліта є надзвичайно потужною, гнучкою, комплексною, простою в
використанні і одночаcно складною в освоєнні через чисельність її
параметрів та методів сканування. Довідка по даній програмі складає
приблизно 150 сторінок А4. Автором даної програми є програміст Гордон
Ліон, більш відомий як Fyodor.
Скачати
дану утиліту, думаю, не виникне проблеми ні у кого. Вона доступна в
операційних системах Windows та Linux. В Windows є її графічне
представлення під назвою Zenmap. В даній же статті всі приклади
будуть демонструватись в Linux Backtrack 5. Nmap поставляється майже зі
всіма Linux-дистрибутивами. Якщо це не так, тоді обов'язково повинна
бути наявна в репозиторіях дистрибутиву. І встановити її можна,
наприклад, в Ubuntu-системах виконавши команду:
apt-get install nmap
Якщо і в репозиторії її не знайшлось, тоді можна скачати вихідні коди програми на офіційному сайті та зібрати її самому:
Після завантаження виконайте наступні команди для компіляції:
bzip2 -cd nmap-6.25.tar.bz2 | tar xvf -
cd nmap-6.25
./configure
make
su root
make install
Отже,
Nmap встановлено. Давайте по-порядку розберемось з його можливостями.
Мережеве сканування - це процес визначення відкритих мережевих сервісів
на цільовій комп'ютерній системі з метою тестування безпеки. Процес
мережевого сканування сканерами безпеки є цілком легітимною дією, якщо не
викликає якогось роду атак. В якості ресурсу, що будемо сканувати,
виберемо відомий український торрент-трекер ex.ua.
Для того, аби провести найпростіше сканування без параметрів, слід виконати наступну команду:
nmap ex.ua
На рисунку 1 зображено вивід даної команди
Рисунок 1 - Результат виконання команди
Як бачимо, найперше, що виконав nmap - це розв'язав доменне ім'я ex.ua до IP адреси, на якій розміщується
ресурс. Далі виводиться інформація про те, що хост доступний. Таке
твердження базується на можливості пінгування даної IP-адреси. А це в
свою чергу означає, що наявні відкриті порти, які відповідають на запити
пінгу. Тоді відповідно відбувається сканування TCP! портів на
стан відкритості. Як видно з рисунка 1, на сервері з IP адресою
77.120.115.185 доступні відкриті порти 22, 80 та 443 (стан: відкритий), а
також вказані сервіси, які працюють на цих портах: ssh, http та https
відповідно.
Давайте
спробуємо дізнатись операційну систему, а також версії програмного
забезпечення мережевих сервісів, що функціонують на сервері. Для цього
добавимо декілька параметрів і виконаємо наступну команду:
nmap -O -sV ex.ua
На рисунку 2 представлено вивід даної команди
Рисунок 2 - Сканування ОС та версій ПЗ
Як
видно з рисунка 2, крім інформації, що ми вже бачили раніше, тепер
відображається інформація про версії ПЗ мережевих сервісів. Так, демоном
ssh сервера є OpenSSH 5.8p2_hpn13v11. А веб-сервером, що обслуговує порти 80 та 443 є nginix 1.3.12. Крім цього сканування операційної системи дало нам інформацію про те, що скоріш за все на сервері встановлено FreeBSD 7.0 STABLE та ще декілька можливих варіантів.
Крім
цього є можливість просканувати лише 100 найбільш відомих TCP портів,
замість 1000, що прискорить процес сканування в 10 разів. Увага!
Сканування лише 100 портів може виключити можливість віднаходження
якогось активного мержевого сервісу. Для найбільш вірогідного і точного
сканування слід вказувати усі 65535 портів командою:
nmap -p1-65535 [ip]
Зараз же, як було сказано вище, виконаємо сканування лише 100 портів, добавивши параметр -F, а також виведемо найбільш детальну інформацію про процес сканування, додавивши параметр -vvv (параметри -v та -vv дають менш детальну інформацію).Виконаємо наступну команду:
nmap -F -vvv -sV -O ex.ua
На рисунку 3 показано швидке детальне сканування
Рисунок 3 - Швидке детальне сканування
Також існує можливість сканування разом із трасуванням (traceroute), слід виконати команду:
nmap -F -O -A -T4 -sV ex.ua
На рисунку 4 представлено агресивне сканування з трасуванням
Рисунок 4 - Агресивне сканування з трасуванням
До цього часу відбувалось мережеве сканування лише ТСР портів. Для того, аби просканувати UDP, слід додати параметр -sU.
nmap -sU ex.ua
На рисунку 5 зображено вивід сканування UDP
Рисунок 5 - Сканування UDP портів
Як
бачимо з рисунка 5, на зовсім нових, недоступних при скануванні раніше
портах, працюють служби dhcp, ntp та VPN L2TP. На даному етапі, цих
параметрів буде достатньо. Продовження знайомства з nmap шукайте у інших
статтях присвячених даній утиліті.
Тепер же, базуючись на отриманих знаннях зі статті, а також знання мови сценаріїв bash
в Linux, спробуймо написати автоскрипт, який сканує підмережу, в якій
Ви знаходитесь на наявність "онлайн-хостів" (ті що в мережі в даний час,
хоча, насправді це не зовсім так, тому що хост може бути в мережі, але
пінгування вимкнуто, але зрештою...). І після цього добавляє IP адреси
"онлайн-хостів" в файл. А потім сканує з отриманої бази хостів кожного,
визначаючи відкриті ТСР, UDP порти, а також операційну систему.
Даний скрипт сканує підмережу ХХХ.ХХХ.ХХХ.ХХХ з префіксом ХХ і додає доступних хостів в файл hostlist:
nmap -sP ХХХ.ХХХ.ХХХ.ХХХ/ХХ | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > hostlist
Нижче
приведений скрипт вибирає кожну ІР з утвореної бази хостів, сканує для
кожного спочатку ТСР порти та ОС, а потім UDP порти і створює загальну
звітність в документ general_scan:
for
i in $(cat hostlist); do echo
"-----------------------------------------------------------------"
>> general_scan; echo "SCAN FOR $i" >> general_scan; nmap -F
-sV -O $i >> general_scan; nmap -sU $i >> general_scan;
echo "-----------------------------------------------------------------"
>> general_scan; done
Написані мною скрипти автоматизують, спрощують та прискорюють роботу сканування цілої підмережі комп'ютерів.
На разі, це все. Практикуйтесь і ставайте професіоналами своєї справи.
Успіхів!
Немає коментарів:
Дописати коментар