Sankt-Peterburg, St. Petersburg, Russian Federation
Sankt-Peterburg, St. Petersburg, Russian Federation
Sankt-Peterburg, St. Petersburg, Russian Federation
GRNTI 20.15 Организация информационной деятельности
In view of the growth of scale and significance of information structure the problem in ensuring information safety and skilled technician training in this field becomes more and more urgent. A virtual laboratory within the use of which one could carry out own investigations will render in this work a considerable assistance. In this paper there is described a method for virtual laboratory creation with the aid of which it would be possible to carry out testing for penetration and to analyze methods ensuring safety for information systems. In the course of this laboratory creation there was used license software taking into account system requirements of the computer in which this laboratory was accommodated. Further in this paper there was considered a method for penetration testing on Metasploitable 2 vulnerable machine pre-configured. Next stage of the work consists in the realization and thorough consideration of potentialities in the application of the created laboratory for the simulation of own scripts by the example of Drupal vulnerable version. In the course of the operation there was shown a code for Python allowing the fulfillment of remote code carrying out. The purpose of this work was the formation of environment allowing the mastery for hacker’s action estimate and the analysis the origin of system certain vulnerable places. The actual skills obtained will render assistance in the information safety increase of actual information systems.
testing for penetration, virtual laboratory, Kali Linux, Metasploitable 2, NAT, Drupal
Введение
Поскольку кибернетическая среда продолжает активно развиваться, и нарушения безопасности становятся все более распространенным явлением, больше внимания уделяется защите информационных активов. Одним из методов защиты является тестирование на проникновение (пентест), благодаря которому организация может выявить уязвимые места системы безопасности и принять соответствующие меры [1].
Для повышения эффективности обучения тестированию на проникновение необходима такая среда, в которой можно будет практиковаться, ничего не нарушая в реальной сети. Это и является целью создания лаборатории для тестирования. Пентест- лаборатория – это небольшая локальная сеть, специально созданная для реализации всех возможных атак, которые возможны в реальном мире. Кроме того, если говорить о виртуальной среде, то можно более тщательно отслеживать поведение каждой системы во время атаки. Это дает дополнительные сведения о том, что и как ставит под угрозу безопасность системы.
Целью данной работы является создание виртуальной пентест-лаборатории с использованием VirtualBox Kali Linux, Ubuntu и Metasploitable 2 и демонстрация ее работоспособности на конкретных примерах.
Одним из важнейших методов поддержания информационной безопасности распределённых информационных систем (РИС), наряду с разработкой политики безопасности и применения средств защиты, являются средства анализа и сканирования сети. Часть программных продуктов, входящих в пакет приложений Kali Linux, позволяет осуществлять оценку системы безопасности сети, имитируя все известные способы, применяемые нарушителями для проникновения в РИС, и тем самым, обнаруживая в системе защиты слабые места. Данные программные продукты также помогают определить меры, которые необходимо принять для ликвидации пробелов в сетевой системе безопасности [11]. Но иногда применение подобных средств для действующей системы является небезопасным, так как они имитируют действия потенциального нарушителя. Особенно это актуально на этапе внедрения новых методов в функционирующую систему безопасности. Решить эту проблему поможет использование описанной в данной статье лаборатории, благодаря которой можно будет смоделировать определённый сегмент сети или базу данных в изолированной среде для проведения тестирования безопасности системы.
Уникальность данной лаборатории заключается в тех преимуществах, которые она обеспечивает. Основными достоинствами лаборатории являются быстрота, доступность и легкость развертывания по сравнению с более сложными лабораториями, для функционирования которых необходимо более одного ПК [11,12]. Немаловажным фактором является и то, что она позволяет наглядно демонтировать причины возникновения уязвимости информационных систем, что позволяет в дальнейшем обеспечить комплексную защиту от них. Кроме того, созданная лаборатория является экономичной для системы и поддерживает стабильную работу на среднем по мощности ПК. Это объясняется тем, что основными компонентами являются операционные системы, подобные Unix на базе ядра Linux, обладающие сравнительно небольшими системными требованиями. Благодаря этому качеству данная лаборатория может быть развернута на ноутбуках и в компьютерных классах для обучения. Также на базе ядра Linux находится подавляющее число серверной части систем, что делает данную лабораторию актуальной.
Создание и настройка виртуальной лаборатории
Область тестирования на проникновение является достаточно обширной, т.к. каждая система, находящаяся в информационной среде, подвержена риску. В пентесте нуждаются сетевые устройства и запущенные ими системы, отдельные веб-приложения, операционные системы и т.д. [2]. В этой связи, основной характеристикой созданной лаборатории должна быть ее универсальность, позволяющая исследовать различные типы атак. При создании домашней виртуальной лаборатории, необходимым условием является ограниченная мощность персонального компьютера (ПК), которая должна позволять производить пентест.
Исходя из вышеизложенного, основной задачей на этапе проектирования лаборатории является выбор компонентов, обладающих обширным функционалом и возможностью для реализации различных сценариев. Проектируемая лаборатория должна стабильно функционировать в домашних условиях на среднем по мощности компьютере, например, с 8 ГБ ОЗУ и процессором Intel 5-го поколения.
Вся виртуальная пентест-лаборатория будет размещена в VirtualBox (рис.1). В настоящее время большинство ПК могут легко поддерживать 2 или даже 3 гостевых виртуальных машины Linux [3].
Атакующей машиной была выбрана Kali Linux. Kali Linux – Linux-система, основанная на дистрибутиве Debian, используется для проведения пентеста, т.к. содержит все необходимые инструменты для его проведения [4].
В качестве цели для проведения тестирования на проникновение была установлена Metasploitable версии 2. Metasploitable – это предварительно сконфигурированная виртуальная машина с множеством уязвимых мест в системе и приложениях, предназначенных для тестирования методов взлома.
Рис. 1. Интерфейс VirtualBox
Рис. 2. Лабораторная сеть для
тестирования на проникновение
Кроме того, был инсталлирован и настроен базовый образ Ubuntu, благодаря которому возможна реализация собственных сценариев взлома. На него были установлены дополнения гостевой операционной системы (ОС), позволяющие оптимизировать производительность и использовать общую папку для обмена файлами между системами. Помимо этого, после запуска были установлены некоторые пакеты, которые будут часто использоваться для проведения пентеста:
sudo apt-get install python
sudo apt-get install net-tools
sudo apt-get install default-jre
sudo apt-get install default-jdk
Далее, после настройки виртуальной машины Ubuntu, производится экспорт конфигураций и создается ISO-образ, который в будущем можно использовать для новых задач, заново не настраивая.
40 |
Теперь виртуальная лаборатория готова к проведению тестирования на проник-новение. В ней присутствует хост для проведения атак, уязвимая виртуальная машина, на которой можно совершенствовать свои навыки, и многократно используемое базовое устройство для создания целей тестирования.
Итоговый алгоритм создания виртуальной пентест-лаборатории представлен на рис.3:
Рис. 3. Алгоритм создания виртуальной
пентест-лаборатории
Методология тестирования на проникновение Metasploitable 2
Далее рассмотрим возможности использования данной лаборатории на практике. Прежде всего, проведем тестирование на проникновение с помощью Metasploitable 2.
Учитывая, что злоумышленнику зачастую неизвестны основные особенности сети и устройств в ней, в первую очередь, необходимо исследовать объект атаки, и только потом, основываясь на результатах исследования, производить взлом. В качестве методики тестирования был выбран следующий алгоритм, представленный на рис. 4 [6].
В алгоритме содержится перечень программного обеспечения для проведения тестирования, который уже предустановлен в Kali Linux.
В качестве инструмента для сканирования целевой машины используется утилита Nmap, с ее помощью будут идентифицированы открытые сетевые сервисы. Одна команда “nmap –p0-65535 10.0.2.4” позволит получить информацию обо всех портах TCP на Metasploitable 2.
Вторым инструментом, включающим в себя как сканирование информационных систем и сетей, так и их взлом, является Metasploit framework. Metasploit был создан для предоставления информации об уязвимостях и включает в себя базу бэкдоров и архив эксплойтов, с помощью которых может производиться взлом [7].
Рис. 4. Алгоритм тестирования
41 |
После завершения сканирования утилита Nmap выдает информацию о состоянии портов (рис. 5), позволяющую сделать вывод о том, что в Metasploitable 2 существует большое количество уязвимостей и возможны различные векторы атак. Почти каждый из открытых портов позволяет выполнить удаленный вход в систему.
Рис. 5. Результаты сканирования портов с помощью Nmap
Теперь переходим к детальному сканированию одного из портов для получения более подробной информации.
После сканирования порта 6667, на котором находится сервис IRC, можно сделать вывод, что установленной версией является UnreaIRCD IRC (рис 6.).
Рис. 6. Сканирование порта 6667
Эта версия содержит бэкдор, который долгое время оставался незамеченным для специалистов по ИБ. Он запускается отправкой букв «AB», которые следуют за системной командой на сервер [8].
Данный бэкдор можно реализовать при помощи Metasploit framework. Алгоритм действий содержит следующие шаги:
- Поиск в базе Metasploit framework нужного эксплойта;
- Выбор и настройка эксплойта (рис 7.);
- Проведение атаки.
Рис. 7. Настройка эксплойта
для реализации бэкдора
После запуска эксплойта можно наблюдать процесс заражения и получения доступа к атакуемому компьютеру (рис. 8).
Рис. 8. Проведение атаки
на компьютер-жертву
Таким образом, была найдена и реализована одна из уязвимостей Metasploitable 2.
Помимо нее, на данной машине присутствует большой спектр уязвимостей, начиная от основ UNIX и заканчивая веб-сервисами.
Экспериментальная эксплуатация уязвимой версии Drupal
Далее рассмотрим возможность применения базового образа Ubuntu для реализации собственных сценариев взлома.
В качестве примера возьмем одну из уязвимостей DrupalGeddon 2 (CVE 2018-7600), которая была обнаружена в начале 2018 года [9]. Уязвимость CVE 2018-7600 является уязвимостью удаленного выполнения кода. Она представляет собой ошибку в способе, которым Drupal обрабатывает запросы форм AJAX с использованием визуализированных массивов. Таким образом, вредоносный визуализированный массив внедряется в форму, к которой может получить доступ пользователь, не прошедший аутентификацию.
Прежде всего, необходимо настроить базовый веб-сервер на Ubuntu [10], на котором будет установлена уязвимая версия Drupal.
Так как данная уязвимость появилась достаточно давно, необходимо установить несколько репозиториев:
# Install php5.6 repository
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
# Install php5.6 packages
apt-get install php5.6 php5.6-gd php5.6-xml php5.6-mysql php5.6-mbstring
# Install apache
apt-get install apache2
# Install mysql
42 |
mysql_secure_installation
# Create the database and user
mysql
CREATE DATABASE drupal CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'drupal'@'%' IDENTIFIED BY 'test12345';
GRANT ALL PRIVILEGES ON drupal.* TO 'drupal'@'%';
quit;
# Restsrt mysql
service mysql restart
# Restart apache
service apache2 restart
После установки необходимых пакетов, можно начать установку Drupal.
cd /var/www/html/
wget https://ftp.drupal.org/files/projects/drupal-7.57.tar.gz
tar -xzvf drupal-7.57.tar.gz
cd /var/www/html/drupal-7.57/
cp sites/default/default.settings.php sites/default/settings.php
cd /var/www/html/
chown -R www-data:www-data drupal-7.57/
После этого переходим по IP-адресу виртуальной машины в браузере и завершаем настройку. После завершения установки можно будет увидеть домашнюю страницу Drupal (рис. 9).
Рис. 9. Домашняя страница Drupal
Если посмотреть отчет (рис. 10), то можно увидеть, что действительно установлена уязвимая версия.
Рис. 10. Отчет Drupal
Теперь, когда установлена уязвимая версия, можно приступить к ее эксплуатации. Для этого используем простой скрипт на Python (рис 11.), который демонстрирует удаленное выполнение кода [9]. В данном случае будет производиться модификация файла index.php на атакуемом сервере (рис 12). Переменная 'shell_code' содержит код, который мы внедряем в index.php. Это всего лишь простое предупреждение Javascript, которое будет отображаться при каждой загрузке страницы (рис. 13).
Рис. 11. Скрипт на Python
Рис. 12. Файл «index.php» на атакуемом сервере
43 |
Рис. 13. Предупреждение Javascript
Данная уязвимость позволяет выполнять произвольный код на целевом сервере и может быть использована для реализации серьезных эксплойтов, которые могут повлечь за собой большие убытки для сайта.
Заключение
В данной статье была представлена методика создания виртуальной лаборатории для тестирования на проникновение, которая позволит улучшать свои навыки в домашних условиях. В качестве примера эксплуатации созданной лаборатории был продемонстрирован алгоритм тестирования на проникновение при помощи уязвимой машины Metasploitable 2 и произведён взлом уязвимой версии Drupal.
Приведенный пример позволяет сделать вывод о том, что создать собственную виртуальную лабораторию для тестирования на проникновение довольно легко. Базовую лабораторию можно создать, используя несколько виртуальных машин и далее по мере необходимости расширять функционал путем установки новых компонентов в имеющуюся среду. Созданная лаборатория является универсальной и может быть использована для моделирования собственных сценариев взлома и, в частности, для тестирования конкретных систем или приложений в условиях автономной цифровой среды.
1. Kostarev, S.V. Model' processa peredachi rezul'tatov audita i kontrolya v avtomatizirovannoy sisteme menedzhmenta predpriyatiya integrirovannoy struktury / S.V. Kostarev, V.A. Lipatnikov, D.V. Saharov // Problemy informacionnoy bezopasnosti. Komp'yuternye sistemy. - 2015. - № 2. - S. 120-125.
2. Nikitin, V.N. Obespechenie informacionnoy bezopasnosti ITS / V.N. Nikitin, O.I. Lagutenko, M.M. Kovcur // Elektrosvyaz'. - 2014. - № 1. - S. 29-31.
3. Saharov, D.V. Issledovanie mehanizmov obespecheniya zaschischennogo dostupa k dannym, razmeschennym v oblachnoy infrastrukture / D.V. Saharov, M.V. Levin, E.S. Fostach, L.A. Vitkova // Naukoemkie tehnologii v kosmicheskih issledovaniyah Zemli. - 2017. - T. 9. - № 2. - S. 40-46.
4. Kali-linux, dokumentaciya po produktu // Kali Docs Official documentation [Elektronnyy resurs]. - Rezhim dostupa: https://docs.kali.org/category/introduction (data obrascheniya 26.10.2019).
5. Yurkin, D.V. Formalizovannyy analiz protokolov autentifikacii / D.V. Yurkin, A.A. Utkina, A.O. Pervushin // Informacionno-upravlyayuschie sistemy. - 2018. - № 2 (93). - S. 76-83.
6. Andrianov, V.I. Razrabotka pentest-laboratorii / V.I. Andrianov, D.V. Yurkin, V.V. Stasyuk // Naukoemkie tehnologii v kosmicheskih issledovaniyah Zemli. - 2019. -T. 11. - № 4. - S. 56-64.
7. Kosov, N.A. Analiz temnyh dannyh dlya obespecheniya ustoychivosti informacion-nyh sistem ot narusheniya konfidencial'-nosti ili nesankcionirovannyh deystviy / N.A. Kosov, A.M. Gel'fand, A.A. Laptev // Colloquium-journal. - 2019. - № 13-2 (37). - S. 100-103.
8. Nikitin, V.N. Povyshenie zaschity protokolov raspredeleniya klyuchey ot atak vtorzheniya v seredinu kanala svyazi / V.N. Nikitin, M.M. Kovcur, D.V. Yurkin // Informacionno-upravlyayuschie sistemy. - 2014. - №1 (68). - S. 70-75.
9. Unit 42 // Exploit in the Wild: #drupalgeddon2 -Analysis of CVE-2018-7600. [Elektronnyy resurs]. - Rezhim dostupa: https://unit42.paloaltonetworks.com/unit42-exploit-wild-drupalgeddon2-analysis-cve-2018-7600/ (data obrascheniya 29.10.2019).
10. Kotenko, I.V. Gibridnaya model' bazy dannyh NOSQL dlya analiza setevogo trafi-ka / I.V. Kotenko, I.A. Ushakov, D.V. Pelevin, A.Yu. Ovramenko // Zaschita informa-cii. Insayd. - 2019. - № 1 (85). - S. 46-54.
11. Saharov, D.V. Model' zaschity ot eksploytov i rutkitov s posleduyuschim analizom i ocenkoy incidentov / D.V. Saharov, M.M. Kovcur, D.V. Bahtin // Naukoemkie tehnologii v kosmicheskih issledovaniyah Zemli. - 2019. - T. 11. - № 5. - S. 22-31.
12. Krasov, A.V. Problema bezopasnosti peredachi gruppovyh rassylok v ip-setyah / A.V. Krasov, E.P. Losin, I.A. Ushakov // Aktual'nye problemy infotelekommunikaciy v nauke i obrazovanii: sbornik nauchnyh statey: v 4-h t. / Pod red. S.V. Bachevskogo. - SPb., 2017. - S. 295-301.