середа, 13 лютого 2013 р.

Порівняння функціональності батьківського контролю маршрутизаторів D-Link

Метою даної статті є порівняння 3 безпровідних маршрутизаторів компанії D-Link із різних цінових категорій. А саме D-Link DIR-615, D-Link DIR-635 та D-Link DIR-855. Особливу увагу буде звернено на функціональність налаштувань батьківського контролю у цих 3 моделей. Усі 3 маршрутизатори перестали випускатися компанією D-Link і були замінені на більш нові версії, але дуже на них схожі. Оскільки компанія D-Link пропонує емулятори налаштувань через веб-інтерфейс лише для обмеженої кількості своєї продукції, то для порівняння було вибрано саме їх. В таблиці 1 представлено коротке порівняння даних моделей маршрутизаторів.

Таблиця 1 - Порівняння безпровідних маршрутизаторів D-Link

Модель
DIR-615
DIR-635
DIR-855
Фото



Приблизна ціна
220 грн
550 грн
1000 грн
Стандарти Wi-Fi
802.11 b/g/n
802.11 b/g/n
802.11 b/g/n
Інтерфейси
4 x LAN, 1 x WAN
4 x LAN, 1 x WAN
4 x LAN, 1 x WAN, USB
Підключення WAN
Static IP, Dynamic IP, PPPoE, L2TP, PPTP, DHCP
Static IP, Dynamic IP, PPPoE, L2TP, PPTP, DHCP
Static IP, Dynamic IP, PPPoE, L2TP, PPTP, DHCP
Модуляція Wi-Fi
OFDM, CCK
DSSS, OFDM
DSSS, OFDM
Шифрування Wi-Fi
WPA2
WPA2
WPA2
Функції мережевого екрана
NAT, фільтрація MAC/IP, запобігання DoS, SPI, VPN, підтримка однієї DMZ
NAT, SPI, VPN, PPP,
фільтрація MAC/IP,
підтримка однієї DMZ 
NAT, SPI, VPN, QOS, фільтрація MAC/IP, DMZ, запобігання DoS
Керування
web, uPnP
web
web, telnet, uPnP
Сертифікати
FCC Class B, FC, CE
FCC Class B, CE, C-Tick, IC
FCC Class B, CE, C-Tick, IC, WPS

Проаналізувавши дану таблицю, бачимо, що для домашнього або SOHO (small office/ home office) використання великої різниці у даних маршрутизаторів немає. Проте модель DIR-855 все ж володіє більшої функціональністю та гнучкістю налаштувань. 

Звернімо увагу тепер на функції батьківського контролю, які пропонує кожна з даних моделей, використовуючи для цього емулятори D-Link, що можна знайти тут:


Батьківський контроль - функціональність маршрутизатора, що дозволяє контролювати інтернет-активність дітей (можливо і дорослих ^_-), обмежуючи доступ до певних сайтів, та накладаючи обмеження на час, доступний для проведення в Інтернет. 

На рисунку 1 зображено панель налаштувань контролю доступу моделі D-Link DIR-615


Рисунок 1 - Налаштування контролю доступу в D-Link DIR-615

Як видно з рисунка 1, можемо задавати політику доступу, фізичну адресу (МАС) машини, веб-сайти, які піддаватимуться фільтруванню, та планування часу, коли сайти будуть доступні (або ж недоступні).

На рисунку 2 бачимо, що модель D-Link DIR 635 надає нам абсолютно ідентичні можливості батьківського контролю:
Рисунок 2 - Контроль доступу в D-Link DIR-635

Таке ж саме вікно з такими з налаштуваннями можна знайти і в D-Link DIR-855.

Звідси висновок, що 3 моделі з абсолютно різної цінової категорії не відрізняються між собою можливостями домашнього використання. Зокрема функціональність батьківського контролю у даних 3 моделей ідентична.

Мережевий сканер Nmap. Частина 1

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

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

Написані мною скрипти автоматизують, спрощують та прискорюють роботу сканування цілої підмережі комп'ютерів.

На разі, це все. Практикуйтесь і ставайте професіоналами своєї справи.
Успіхів!

вівторок, 12 лютого 2013 р.

Декілька порад щодо безпеки Wi-Fi роутерів

Wi-Fi роутер, також знаний як безпровідна точка доступу - це активний мережевий пристрій, що поєднує у собі функціональність маршрутизатора, комутатора (інколи просто моста), точки доступу та апаратного брандмауера (опціонально). На рисунку 1 зображено типовий і дуже популярний на сьогоднішній день Wi-Fi роутер TP-Link WR340G
Рисунок 1 - Wi-Fi роутер TP-Link WR340G

Ви плануєте розгорнути безпровідну мережу у себе вдома чи в офісі.. Багато операторів телекомунікаційних послуг, таких як Київстар та інші надають Вам таку можливість, продаючи разом з телекомунікаційними послугами апарат, що зветься безпровідною точкою доступу. Отже, неважливо як, але у Вас з'явився такий пристрій. Якщо працівники оператора не налаштують його, а Ви, не задумуючись та не прикладаючи великих зусиль, зробите це самі - в більшості випадків призводить до плачевних ситуацій: втрати (викрадення) конфіденційних даних, пошкодження системних файлів тощо. Щоб цього не трапилось, потрібно правильно та надійно налаштувати Wi-Fi роутер. В цій статті я не буду вдаватись в тонкощі налаштування конкретних моделей та технологій, а також детально пояснювати чому саме одні налаштування кращі за інші. Ви можете дізнатись цю інформацію у інших моїх статтях блогу, присвячених безпровідним мережам. 

Нижче я дам кілька порад для підвищення захищеності безпровідної інфраструктури.

1. Задавайте унікальне ім'я (SSID) для Вашої точки доступу. 
Назви типу: dlink, tp-link, mynetwork, home лише спростять зловмиснику процес взлому, так як для таких типових назв у них наперед заготовлені бази даних для перебору для конкретних SSID, що підвищує швидкодію перебору у сотні разів, ніж для перебору для наперед невизначеної SSID.

2. В якості протоколу шифрування даних, що є трафіком для Вашої ТД (точки доступу) завжди вказуйте лише WPA2 PSK з алгоритмом шифрування AES. Або WPA2 Enterprise з процедурою аутентифікації до віддаленого RADIUS-сервера. 
Типовою помилкою багатьох власників ТД є те, що вони використовують інші протоколи шифрування. Зокрема WEP - є найбільш небезпечним. Цей протокол використовує потоковий алгоритм із зсувом регістра RC4, що дуже легко піддається алгебраїчному криптоаналізу і може бути зламаним за декілька секунд.
Протокол же, WPA2 поки що є останнім офіційним стандартом шифрування безпровідних мереж. І алгоритм AES - не є зламаним. Для шифрування даним протоколом єдиним методом зламу є повний та частковий перебір (bruteforce).

3. Пароль (також знаний як ключ/ PSK-фраза) для підключення до вашої точки доступу повинен бути настільки складним, наскільки Ви можете собі це дозволити. Використовуйте великі та малі літери та цифри. Не вказуйте персональних даних (рік народження, своє ім'я, телефон) в якості пароля. Довжина пароля також має значення (мінімальна довжина 8 символів, максимальна - 64). Хорошим паролем вважається на 13-14 символів приблизно.
Якщо Ваш пароль буде простим, типовим, та не специфічним, зловмиснику вдасться дізнатись його за допомогою перебору по словнику типових паролів.

4. Обов'язково змініть пароль на керування Вашою ТД через веб-інтерфейс віддаленого доступу.
Не залишайте пароль та логін (ім'я) за замовчуванням. Першим кроком, який зловмисник здійснить у процесі зламу Вашої мережі - дізнається модель Вашої ТД та логін/пароль, які по замовчуванню в ній використовуються. І попробує їх ввести

5. Встановіть потужність роботи антени ТД рівно такою, щоб сигнал затухав у межах стін Вашого офісу чи дому.
Таким чином Ви успішно зможете використовувати можливості безпровідної передачі даних на своїй території. А за її межі радіочастотні сигнали розповсюджуватись не будуть, а отже не зможуть бути перехоплені.

6. Відключіть широкомовне розповсюдження SSID вашої ТД (SSID Broadcast)
Таким чином користувачі пристроїв із Wi-Fi антенами при скануванні доступних мереж, не бачитимуть Вашу, що унеможливить навіть прості спроби підключення до неї тих, для кого це не передбачено. Для легітимних же користувачів, достатньо ввести один раз налаштування для підключення вручну і потім у них буде змога підключення навіть до Вашої прихованої ТД.
Увага! Відключення широкомовного розповсюдження SSID не приховає Вашої точки доступу остаточно. Є безліч утиліт, які допомагають виявити Вашу ТД навіть з відключенням цієї функції. Проте, про них знають мало людей, тому... :)

7. Застосовуйте фільтрацію по MAC-адресах
MAC-адреса - фізична адреса мережевого адаптера. Існує 2 способи МАС-фільтрації:
а) дозволити лише вказані МАС, а інші заборонити
б) заборонити лише вказані, а інші дозволити.
Більш дієвим способом є спосіб а). Визначте МАС - адреси мережевих адаптерів усіх комп'ютерних пристроїв та дозвольте їм підключення в налаштуваннях  ТД. Всім іншим - забороніть. Це унеможливить підключення "інших" пристроїв без зміни на легітимну МАС.

8. Обов'язково залишіть ввімкненим брандмауер на ТД. Таким чином з'єднання по портах буде фільтруватись найпершим чином на Вашій ТД за вказаними Вами правилами (по замовчуванню у типових ТД всі порти фільтровані).

9. Відключіть можливість пінгування Вашої ТД взагалі і пінгування по портах зокрема. Таким чином Ви уникнете можливості DOS (Denial of Service) та DDOS (Distributed Denial of Service) - атак на Вашу ТД.

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

Успіхів Вам!

Відновлення первинного розділу Flash-накопичувача

Інколи трапляються ситуації, коли первинний розділ та файлову систему флешки (Flash-накопичувача) пошкоджено, змінено.

Так, наприклад, програма UltraISO при створенні завантажувального носія на флешці, створює додатковий невидимий розділ, "з'їдаючи" при цьому певний заданий користувачем об'єм пам'яті, який відводиться на цей же завантажувальний розділ. В майбутньому, запис на флешку простими засобами Windows в цей розділ буде неможливим. Також місце на флешці може займати USB SecureDrive. Схожих ситуацій є безліч.

Просте форматування флеш-носія в даному випадку не допомагає, форматуючи лише той розділ диску, який є видимим. Повний об'єм флеш-драйву все одно не є доступним після процесу форматування. Постає проблема, як же відновити первинний стан Вашої флешки. В цьому Вам допоможуть вбудовані інструменти Microsoft Windows

1. Вставляємо флешку в комп'ютер

2. Запускаємо командну стрічку Пуск > cmd

3. У вікні консолі, що відкрилось, набираємо: diskpart

4. У новому вікні, зі стрічкою DISKPART> набираємо: list disk

5. Дивимося, з яким номером у нас відображається флешка. Для цього слід звернути увагу на об'єми носіїв, і вибрати той, якого об'єму флеш-носій. Також зазвичай останні підключені носії мають найвищі номери. На рисунку 1, в даному випадку, моя флешка має номер 1

Рисунок 1 - Вивід команди list disk

Вибираємо носій: select disk 1

6. Набираємо clean і отримуємо відповідь про те, що очищення диску було здійснено успішно. 
Увага! Якщо перед цією командою Ви неправильно вибрали номер диску флешки, то можете відформатувати один із своїх інших дисків.Тому усі інструкції Ви виконуєте на свій страх і ризик, і я, як автор, відповідальності за Ваші дії не несу. 

7. Тепер створюємо новий розділ командою: create partition primary. І отримуємо відповідь про те, що вказаний розділ був успішно створений. 

8. Вибираємо наш новий розділ командою: select partition 1.

9. Форматуємо розділ в систему FAT32: format fs=fat32 quick

Все, тепер на флеш-носії лише один первинний розділ і всю початкову пам'ять відновлено.

Знайомство з Pyrit

Дана стаття призначена для тих, хто займається аудитом інформаційної безпеки безпровідних мереж. Увага, нижче представлена інформація приведена автором лише з науково-навчальних цілей.

Pyrit - утиліта невеликих розмірів, що використовується для тестування безпеки Вашої безпровідної мережевої інфраструктури за допомогою методу перебору. Аналогами утиліти Pyrit  є більш відомі програми Aircrack-ng та Cowpatty. Проте, саме Pyrit так сильно привертає мою увагу і використовується особисто мною в аудиті безпеки завдяки тому, що дозволяє підключати практично усі обчислювальні ресурси, доступні в цільовій комп'ютерній системі, а не лише процесор. В даній статі я розпочну знайомство з утилітою Pyrit.

Розпочати, напевне, слід з того, з чим же все таки працює дана програмка? А працює вона із перехопленими WPA2 хендшейками (handshake), що складається з 4 мережевих пакетів. І містить в собі PSK-фразу, тобто пароль до Wi-Fi точки доступу, над якою здійснюється перехоплення. Детальніше про те, що таке handshake, PSK, PMK, WPA2 і процес перехоплення описано в іншій моїй статті. Припускається, що читач уже ознайомлений із даною тематикою, тому на даному етапі детальніше зупинятись не буду. Отже, отримавши WPA2-хендшейк, та підготувавши базу паролів для перебору, ми теоретично готові для того, аби здійснювати перебір (bruteforce).

Скачати утиліту pyrit можна тут:


На сторінці за посиланням вище розміщено архіви tar.gz з відкритими кодами програми. Так, авжеж, з відкритими, тому що Pyrit - це вільне програмне забезпечення, яке розповсюджується за ліцензією GNU GPL.Тестування утиліти та приклади в даній статті здійснюватимуться в операційній системі Linux Backtrack 5. Як встановити Linux взагалі та Linux Backtrack 5 зокрема, описано в іншій моїй статті блогу. Також отримати вихідні коди програми можна, здійснивши в командній стрічці термінала Linux команду:

svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn

Я рекомендую використовувати svn. Будьте певні тоді в отриманні останньої версії програмного забезпечення та всіх його релізів. Скачана директорія розміщується по замовчуванню за тим шляхом, з якого виконувалась вищезгадана команда. Перейдемо в директорію pyrit_svn:

cd pyrit_svn

Набравши команду ls бачимо директорії з реалізаціями pyrit для підтримки в переборі різних типів відеокарт. Про використання відеокарти для перебору описано в іншій статті. На даному етапі потрібна загальна версія Pyrit, оскільки ми лише знайомимось з даною утилітою. Для компіляції вихідних кодів буде необхідна бібліотека та компілятор Python, а також інші додаткові бібліотеки для розробників. Встановити їх можна виконавши в терміналі дані команди:

apt-get install g++
apt-get install python-dev
apt-get install zlib1g-dev
apt-get install libssl-dev

Тепер перейдемо безпосередньо до встановлення Pyrit. Потрібно здійснити наступні команди:

cd pyrit
python setup build
python setup install
Все, Pyrit встановлено. Для перевірки коректності роботи, та того, чи правильно Pyrit бачить ядра вашого процесора, слід здійснити в терміналі команду:

pyrit list_cores

На рисунку 1 зображено вивід даної команди
Рисунок 1 - Вивід команди pyrit list_cores

Як бачимо з рисунка, Pyrit знайшов 4 потоки мого двох ядерного процесора Intel Core i5. Для того, аби здійснити тестування обчислювальних можливостей Вашого процесора для перебору ключів WPA2 слід виконати наступну команду:

pyrit benchmark

Процес здійснення тесту може зайняти від 1 до 3 хвилин. На рисунку 2 зображено вивід даної команди:
Рисунок 2 - Вивід команди pyrit benchmark

З рисунка 2 видно, що кожне ядро мого процесора може здійснювати перебір з пропускною здатністю приблизно 400 PMK / сек. Про PMK, збільшення даного числа, та оптимізацію перебору детальніше буде описано в наступних статтях, присвячених Pyrit. Тепер, спробуємо здійснити реальний перебір ключів за допомогою нашої утиліти та словника паролів. Виконаємо команду:

pyrit -r WPA2-01.cap -i wordlist.txt attack_passthrough

де 
-r WPA2-01.cap вказує на те, що в якості вхідного хендшейка використовується хендшейк WPA2-01.cap
-i wordlist.txt - задання словника з ключами. В даному випадку в мене це словник на 10001 ключ.
attack_passthrough - параметр, що вказує Pyrit здійснювати зовнішній перебір по текстовому файлі.

На рисунку 3 представлено виконання даної команди
 
Рисунок 3 - Робота програми Pyrit

Як бачимо з рисунка 3, пароль (ключ) було знайдено: igorigor
Детальнішу інформацію про параметри програми Pyrit можна отримати з довідки, набравши в терміналі команду:

pyrit ?

На даному етапі все. Детальніше знайомство з Pyrit - в наступних статтях. Побажання та ідеї щодо написання навчальних статтей присилайте на пошту: ukraineitblog@gmail.com

Успіхів!