NESSUS – сучасний аналіз безпеки, методи і типи сканування (ver.2), Інтернет і інші мережі, Security & Hack, статті

Автор
статті: Бочкарьов Денис aka deathor,
URL: www.sf.akbars.ru/

Введення


Все більше
увагу питанням безпеки приділятися при побудові та експлуатації мереж. В
мережі достатня кількість людей, яким було б приємно нашкодити Вашим
хостам, зіпсувати Вашу роботу і Ваш настрій. Адміністраторам часто не
вистачає часу для тестування своїх вузлів, пошуку нових інструментів і
технологій захисту, не кажучи вже про розкручування кампанії на вибивання коштів для
покупки дорогих, комерційних средст захисту. Моя стаття присвячена щодо
новому сканера безпеки – Nessus, покликаному прийти на допомогу як
адміністратору, так і хакеру.

Що таке Nessus
Project?


Nessus являє
собою безкоштовний сучасний сканер безпеки локальних і віддалених систем.

Початок Nessus Project було покладено в 1998р., перший реліз вийшов у
квітні. На той період найпоширенішим сканером безпеки був
SATAN, Що давно став застарілим. Деякі адміністратори (та й не тільки
=) До цих пір використовують SATAN, І його молодих послідовників –
Sara, Saint і тд. Назва Nessus, за словами авторів, було вибрано
випадково, тому що такі поєднання як security scanner були абсолютно
приїлися. Nessus – це безкоштовний пакет, з відкритим вихідним кодом. Його
підтримкою, крім авторів, займаються багато ентузіастів з усього
світу.

Огляд можливостей і принцип дії


Завданням Nessus
є визначення запущених служб і вразливостей, включаючи самі останні
повідомлення про дірки wu-ftpd, Наявності демонів DDoS, проблеми ipfw
FreeBSD
та багато інших. Nessus складається з двох частин, сервера і
клієнта. Сервер можна встановити тільки на * Nix-подібну
операційну систему. Відмінно підійдуть у цьому випадку Linux, FreeBSD,
Solaris
. Клієнти, крім * nix версій, існують також для Windows
9x
, NT, Є клієнт в java виконанні. Роль клієнта
зводиться до управління і конфігурації основного демона (сервера), збору
результатів.
Можливості Nessus досить великі, і набагато перевершують
можливості SATAN, SARA, SAINT. Основний принцип зводитися до девізу
“Не вір очам своїм” – Вся інформація потребує перевірки, тобто
інформація банерів основних служб (наприклад ftp, www, telnet і тд.) не
вважається основною. А хто сказав, що www завжди запускають на 80
порту? Подібно SATAN він має дуже гнучку систему настроювань як у виборі
мети (target), Так і у використовуваних методах сканування і атак. Nessus
проводить перевірку на наявність більше 300 уразливостей *nix і NT
серверів, а також різного мережевого устаткування, наприклад, маршрутизаторів.
Принцип роботи, заснований на модулях (plugins), Дозволяє без праці
додавати модулі для перевірки нових вразливостей, що і роблять не тільки
розробники, а й фахівці з усього світу. До достоінсвам Nessus можна віднести
інтеграцію з передвстановленою утилітою nmap – The Network Mapper,
дозволяє широко варіювати параметри і тип сканування, наприклад, TCP
SYN, TCP FIN, NULL, Xmas Tree scan, Fragment IP
та ін Підтримується і давно
відома, але багатьма недооцінена можливість анонімного сканування за типом
FTP Bounce Attack. Все вищесказане наочно демонструють такі
скріншоти:



Налаштування плагінів
Вибір
вразливостей
Параметри сканування


Результати перевірки
виводяться в окремому вікні. Залежно від типу вразливості дається деякий
обгрунтування знайденої проблеми, а також повне або часткове її рішення. Фаил
звіту можливість збереження в різних форматах (text, html, LaTeX і
ін.) Однак, для деяких вразливостей необхідний певний досвід роботи в
мережах, і з ОС * nix в часності, для того, щоб зробити правильні висновки і
вжити заходів. В основному, в рапорті точно вказується причина-рішення. Типова
запис може виглядати так:

Vulnerability found on port domain (53/tcp)

The remote BIND server, according
to its
version number, is vulnerable to several
attacks that can allow an
attacker to gain
root on this system.

Solution : upgrade to bind
8.2.2-P3
Risk factor : High


Information found on port
domain (53/tcp)
The remote bind version is : 8.1.2

Або
так:

Vulnerability found on port smtp (25/tcp)




The
remote SMTP server did not complain when issued the
command :
MAIL FROM:
root@this_host
RCPT TO: /tmp/nessus_test


This
probably means that it is possible to send mail directly
to files, which is a
serious threat, since this allows
anyone to overwrite any file on the remote
server.


NOTE : **
This security hole might be a false positive, since
some MTAs will not
complain to this test and will
just drop the message silently. Check for the
presence
of file ‘nessus_test’ in /tmp ! **


Solution :
upgrade your MTA or change it.


Risk
factor : High



Скріншот
вікна звіту

Методи і типи сканування


Розглянемо
різну техніку сканування представлену в Nessus, де для цих цілей
використовується Nmap. Не вдаючись у тонкощі протоколів TCP/IP
зазначимо, що заголовок TCP слід за заголовком IP і доповнює
його інформацію. Нагадаю, що заголовок TCP включає в себе поле
Control Bits розміром 6 біт, що приймає такі значення:


URG:
активно поле термінового покажчика
ACK: активно поле
підтверджувати з’єднання

PSH: так зване
“Проштовхування”

RST: cброс або перезавантаження даного
з’єднання

SYN: синхронізація з’єднання для його
продовження

FYN: відсутність даних


connect ()
це найпростіша форма сканування. У цьому випадку з цікавлять портом
встановлюється з’єднання в разі якщо він відкритий (listening).
Недоліком даного методу є те, що він повністю протоколюючи, тобто
ваші спроби сканування буде з усмішкою читати в логах або на консолі
тамтешній адміністратор (якщо він взагалі їх читає;). Перевагою є те,
що для проведення даного сканування не потрібні привілеї
root.


SYN scan
найпоширеніший метод, в якому не відбувається повного з’єднання, інакше,
його називають half-open. Метод полягає в посилці запиту SYN, І
очікуванні відповіді, ACK|SYN – Порт відкритий, RST – Закритий. Незалежно
від відповіді, з’єднання миттєво! переривається (замість того, щоб послати
відповідь ACK, т.зв. “Триразове рукостискання”). Використовуючи даний метод
шансів залишитися непоміченим значно більше. SYN scan залишається
непоміченим для TCP-врапперов, Але остерігайтеся firewall-Ів і
FreeBSD c піднятим ipfw (ipfwadm). Справа в тому, що багато
firewall-и і різні synloger-и, Відслідковують та протоколіркют
подібні SYN запити.


Наступний методи
схожі, у відповідь на запити закриті порти відповідають прапором RST, Відкриті –
взагалі нічим.


FIN scan
(Stealth FIN) – Використовує чистий FIN запит.


Xmas Tree –
включає в запит прапори FIN, URG, PUSH.


Null scan –
скидає
всі прапори.


Зазначу, що
Micro$oft не дотримується подібних проведення урочистих подій TCP, Але це може
зіграти і на руку (у визначенні подібної ОС). Я бачив здивування одного колеги,
вибрав FIN scan, І здивованого “звідки на його рідній NT
стільки відкритих портів? “(висновки зробіть самі). Також ці методи” не працюють ”
стосовно ОС HP-Unix, IRIX, IOS cisco і MVS, Хоча в останніх
версіях можливо ситуація змінилася. Деякий час тому подібне
сканування могло залишитися непоміченим.


Fragment IP
packets
– Використовується як розширений варіант SYN, FIN, Xmas, Null
сканування. Суть полягає в розбитті заголовка на фрагменти, що може
збити з пантелику деякі IDS (Intrusion Detection Systems) І
різні пакетні фільтри, деякі firewall-и. Але знову ж, свої
машини в період роботи я б не ризикнув сканувати подібним методом на увазі
непередбаченої реакції. Зазначу, що даний метод доступний для реалізації не на
всіх системах.


FTP bounce
scan
– Метод з’єднання з деяким ftp сервісом, і використанням його в
Як proxy для проведення сканування інших хостів. Метод добре описаний в
книзі Атака на інтернет, і я не буду зупинятися на ньому
докладно. Зазначу, що не всі ftp сервера підтримують даний метод, зараз тим
більше. У налаштуваннях Nessus необхідно налаштувати обліковий запис через який ви
збираєтеся проводити FTP bounce scan, Сам же Nessus відмінно визначає
можливість подібного використання ftpd.


Ident
scan
– Використання легального сервісу identd
113 порту * nix, так само добре описано в книзі Атака на інтернет, ідея
полягає в отриманні інформації про з’єднання користувачів із сервісами на
даній машині. У нормальній ситуації навряд чи у вас буде можливість
скористатися цим методом.


UDP scan
визначає відкриті порти User Datagram Protocol (RFC 768). Cмисл
полягає в посилці нульового пакету на кожен порт, і в разі якщо порт
закритий, ми отримаємо ICMP повідомлення про його недосяжності. Багато
недооцінюють даний метод, забуваючи, що існує маса проблем з
безпекою служб, які використовують UDP (Наприклад tftp, DNS,
bo
;). Стосовно до деяких * nix машинам сканування може затягнутися
(Внаслідок фільтрації UDP пакетів), а от для windoze все буде
OK!


Хотілося б
відзначити ще два цікаві методу – ICMP ping & TCP ACK ping. Вони
гарні в тому випадку, якщо необхідно лише дізнатися чи жива машина чи ні. Nessus
і так не буде атакувати хост який в дауні. Правильне використання TCP
ACK ping
дозволить вам обійти firewall. TCP ACK ping -Дуже красива і
характерна риса Nmap, Але при правильному адмініструванні сканируемой
машини ви не залишитеся непоміченою.

Коментарі до установки


Системи на які
Nessus ставитися точно: Linux Red Hat 5.1-6.2, Linux Mandrake 6.0-7.0, Black
Cat 6.0-6.2, FreeBSD 3.x, 4.x
. За твердженням авторів і користувачів,
Nessus ставитися майже на все * nix системи, але перераховані вище я перевіряв.
Необхідною умовою є наявність Cледующим компонентів, скачайте і
встановіть їх перед складанням Nessus, якщо вони у вас не встановлені, а також
налаштуйте роботу X-Windows.


GTK – The Gimp
Toolkit, version 1.2, інакше ви не зможете працювати з клієнтом на * nix
машині, всіх останніх дистрибутивах Linux, FreeBSD є, але не
забудте встановити gtk-devel.


Nmap – The Network Mapper
бажано версії не нижче 2.52, Без nmap Nessus працювати
буде, але ви втратите дуже багато.


Завантажити Nessus
ви можете со следующих серверів:


Місце розташування –
сервер



United States
(East Coast) ftp://ftp.nessus.org/pub/nessus/nessus-1.0.4/
United States
(West Coast) ftp://mirror.arc.nasa.gov/pub/tools/nessus/nessus-1.0.4/
Germany
ftp://ftp.gwdg.de/pub/linux/misc/nessus/nessus-1.0.4/

Germany ftp.gwdg.de/pub/linux/misc/nessus/nessus-1.0.4/
France
ftp://nessus.via.ecp.fr/nessus/nessus-1.0.4/
France (slow)
ftp://cvs.nessus.org/pub/nessus/nessus-1.0.4/
Switzerland
ftp://sunsite.cnlab-switch.ch/mirror/nessus/nessus-1.0.4/

Russia ftp://ftp.chg.ru/pub/security/nessus/nessus-1.0.4/
Sweden
ftp://ftp.sekure.net/pub/nessus/nessus-1.0.4/
Thailand ftp://ftp.nectec.or.th/pub/mirrors/nessus/nessus-1.0.4/
Portugal
ftp://ftp.pt.nessus.org/pub/nessus/nessus-1.0.4/
Australia
ftp://ftp.au.nessus.org/pub/nessus/nessus-1.0.4/
Canada ftp://ftp.stuff.ca/pub/nessus/nessus-1.0.4/


Файли Nessus
які вам необхідно завантажити
(На момент написання статті доступна
стабільна версія 1.0.4):

– nessus-libraries

– libnasl
– nessus-core
– nessus-plugins


Розпакування
здійснюватися командами Gzip-d ім’я_файлу та tar -xvf
ім’я_файлу
. Компіляція повинна відбуватися саме в вищепереліченому
порядку. Зазначу (це не відноситься до користувачів DIGITAL/OS), Що
компілювати Nessus необхідно користувачу root (інакше вам
доведеться правити файл конфігурації include/config.h в директорії
~/nessuse-core). Магічні слова для * nix компілюють кожен пакет,
наприклад для компіляції nessus-libraries:


#cd
nessus-libraries-1.0.4


#./configure


#make


#make
install


або ж однією
командою, якщо ви не хочете читати повідомлення на консолі / терміналі:


#./configure &
make & make install


Теж саме
необхідно проробити з іншими пакетами. Проблеми можуть виникнути при
компіляції libnasl. У деяких системах необхідно експортувати шлях
#export PATH=$PATH:/usr/local/lib, Або відредагувати свій
profile
. При інсталяції на FreeBSD4.x необхідно після установки
nessus-libraries відредагувати /usr/local/bin/nessus-config,
замінивши рядок CIPHER=”-lpeks” на CIPHER=”-lpeks -lgmp” (Дана
проблема зустрічалася у версіях молодших 1.0.4, і повинна бути виправлена). В
деяких версіях Linux необхідно переконатися, що у файлі
/etc/ld.so.conf є рядок /usr/local/lib, якщо її немає, додайте,
і дайте команду ldconfig. Користувачам *BSD необхідно
перекомпілювати ядро ​​раскомментарів рядок pseudo-device bpfilter NUM
(У мене коштує 16), і створивши відповідно ноди для пристроїв ./MAKEDEV
bpf0-16
(Для кожного окремо). Якщо при інсталяції виникли проблеми,
обов’язково загляньте в mail-list, Особисто я знайшов там всі мислимі і немислимі
питання-відповіді. Можете подивитися FAQ.


Після інсталяції
необхідно створити nessusd account, Тому що nessusd має власну
базу користувачів. Для цього необхідно скористатися утилітою
nessus-adduser (У попередній версії я не зміг запустити nessus, т.к.
nessus-adduser заборонив мені з’єднуватися з nessusd, хоча я явно вказав
зворотне; вирішується правкою nessus-users). Далі, вам можливо захочеться
побачити і поправити (необов’язково) конфігурацію nessusd
/usr/local/etc/nessus/nessusd.conf
.


Готово! Тепер
можна запускати nessusd з під root: # Nessusd-D. Подальший
запуск nessus видасть інтерфейс користувача, де ви зможете після
аутентифікації внести всі налаштування і почати сканування.

Побажання та поради




  • Ніколи не скануйте чужі машини не отримавши дозвіл у
    адміністратора (ів) цих машин.
  • Ніколи не
    користуйтеся клієнтом Nessus для Windows і Java, Якщо є
    можливість працювати в * nix.
  • Прибирайте галочку
    c plugin_ов DoS атак в настройках (залежить від ситуації), іноді це
    буває летально;)
  • Знайшовши пролом в
    захисті, не полінуйтеся подивитися исходники того plugin_а, Який це
    виявив. Ламати або захищатися, а знати потрібно.
  • Не пишіть дурні
    питання в mail-list, Особливо від чужого імені.

Подяки


Авторам проекту
Nessus:


Renaud Deraison, Jordan Hrycaj


tnks to
Kasara.

Посилання


www.nessus.org/
– Сторінка Nessus
project


www.sf.akbars.ru/ – Мій
останній проект



icq#38495036

(c) HackZone

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*