Курсовая работа (т): Встановлення вірутального тестового сервера

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

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

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

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

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

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

Ви можете використовувати утиліту ssh-agent і він буде надавати аутентифікаційні дані за Вас.

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

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

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

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

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

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

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

Переадресація 22 порту, стандарт для ssh.

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

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

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

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

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

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

Приклад використання:shellshock1953.ddns.net:/var/www /media/server

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

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

Оскільки 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 (користувач може знаходитись у кількох групах одночасно), що дає повний контроль над тим що і як відбувається в системі.

TightVNC та KRDC

Такі програми, як правило використовують протокол vnc, і саме через це всі вони об’єднані в єдиний блок, і часто містять в своїй назві приставку «vnc». Наприклад RealVNC, TightVNC, UltraVNC, тощо. Існують й інші програми віддаленого керування TeamViewer, Radmin і т.д. Всі вони створені для полегшення роботи системного адміністратора при адмініструванні великої кількості комп’ютерів, проте можуть використовуватись як для домашнього користування (TeamViewer), так і для злочинних дій.

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

Програма не має настільки красивого інтерфейсу, як TeamViewer, або таких потужностей як Radmin, проте вона вигідно вирізняється на їх фоні своїм малим розміром та прихованістю роботи.- кросс-платформенна, проте повністю свій функціонал відкриває на Linux. По суті, програма є лише графічним представлення оперування vnc-пакетів. Через це програма важить біля сотні кілобайт. До її функціоналу належить зміна якості відео потоку, використання аудіо.стандартна програма, що міститься в KDE4. Це такий самий Tight, проте одразу встановлений.

Працює все на порті 5900 або 5901.

Рис. 25. Інтерфейс KRDC

Рис. 26. Інтерфейс TightVNC

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

Рис. 27. Опції підключення

Рис. 28. Віддалене керування за допомогою KRDC


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

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

Nessus

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

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

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

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

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

Плагіни

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

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

dpkg - i Nessus-5.2.5-debian6_i386.deb

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

/etc/init.d/nessusd start

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

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

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

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

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

Для збереження результатів сканування в базі даних Метасплойта, необхідно до неї підключитися_connect <user:pass>@<host:port>/<database>

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

Рис. 29. Nessus і Metasploit

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

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

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

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



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

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

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

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


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

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

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

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

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




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

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

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

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

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

Завершальним етапом є імпорт збережених результатів сканування в базу даних Metasploit_import ‘/root/Desktop/nessus_report_PentestIT_Web.nessus’

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

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

Перш за все, доцільно протестувати головний метод віддаленого управління, а саме ssh. Ssh шифрується за допомогою алгоритму шифрування rsa, тому про злам самого алгоритму мова не йде. Проте, як і будь-який інший, даний алгоритм вразливий до brute-force-атаки. Наявність слабкого ключа - гарант успішгої атаки на 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).

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

_login

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

Щоб викликати цей допоміжний модуль просто введіть наступну команду: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 спискок паролів, або свій власний список.

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

Рис. 38. Опції

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

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

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

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

Metasploit

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

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

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

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

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

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

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

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

Источник: https://www.bibliofond.ru/detail.aspx?id=872570