![]() |
Приветствую! В этой статье речь пойдет об инструменте, который, по словам автора, способен значительно упростить пентестеру жизнь, полностью автоматизировав, сканирование хоста и подбор необходимых эксплоитов.
К тому же в нем используется Машинное Обучение. https://forum.antichat.xyz/attachmen...9609303959.png Машинное обучение — класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач. Для построения таких методов используются средства математической статистики, численных методов, методов оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме. Установку всех компонентов я буду производить на Kali Linux 2018.2 Full Update. Deep Exploit - Полностью автоматический инструмент для проведения тестов на проникновение с использованием машинного обучения. https://forum.antichat.xyz/attachmen...9609336232.png Он имеет два режима эксплуатации.
Основные функции Deep Exploit:
Обучение с подкреплением (reinforcement learning) — один из способов машинного обучения, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Не нуждается в том, чтобы человек подготавливал учебные данные.
К тому же используется усовершенствованная модель машинного обучения под названием A3C. Способности «Deep Exploit».
Структура системы: https://forum.antichat.xyz/attachmen...9609382839.png Deep Exploit - состоит из модели машинного обучения (A3C) и Metasploit. A3C применяет эксплойты на целевые серверы через RPC API. A3C – разработан Keras и Tensorflow, который является известной платформой ML на основе Python. Он используется для самостоятельного изучения возможностей эксплойта, используя reinforcement learning. Результат самообучения хранится в так называемых, выученных данных, которые можно повторно использовать. Metasploit - самый известный инструмент тестирования на проникновения в мире. Он используется для применения эксплоитов на целевых серверах на основе полученных инструкций от A3C. Структура работы Deep Exploit в Интеллектуальном режиме: https://forum.antichat.xyz/attachmen...9609417318.png Шаг 1. Сканирование портов на тренировочных серверах. Deep Exploit собирает информацию, такую как тип ОС, номера открытых портов, версия ядра и так далее. После сканирования портов он выполняет две команды Metasploit (hosts и services) через RPC API.
===== address mac name os_name os_flavor os_sp purpose info ------- --- ---- ------- --------- ----- ------- ---- -------- 192.168.0.108 00:0c:29:16:3a:ce Linux 2.6.X server Deep Exploit определяет тип ОС, используя регулярное выражение из результата команды hosts. В приведенном выше примере Deep Exploit определяет тип ОС как Linux.
======== host port proto info ---- ---- ----- ---- 192.168.0.108 21 tcp vsftpd 2.3.4 192.168.0.108 22 tcp OpenSSH 4.7p1 Debian 8ubuntu1 protocol 2.0 192.168.0.108 23 tcp Linux telnetd. Так, же используя регулярные выражения, он добывает информацию об открытых портах и сервисах на них расположенных. Шаг 2. Обучение. https://forum.antichat.xyz/attachmen...9609671772.png Deep Exploit учится эксплуатации уязвимостей с помощью использования современной модели машинного обучения под названием A3C. A3C состоит из множества нейронных сетей. Нейронные сети берут информацию из тренировочного сервера, собранную на шаге 1, как исходную, и на основе анализа, пытаются подобрать подходящую полезную нагрузку. A3C применяет ее на тренировочном сервере с помощью Metasploit. В соответствии с результатом, (успехом / неудачей) применения эксплойта, A3C обновляет размер нейронной сети (параметр, относящийся к точности атаки). Выполняя описанную выше обработку (обучение) с комбинацией ввода различных исходных данных, постепенно определяется оптимальная полезная нагрузка для сервера. Чтобы сократить время обучения, мы выполняем эту обработку в несколько потоков. В качестве тренировочных серверов рекомендуется, как пример, использовать следующие:
Deep Exploit выполняет эксплойт на тестовом сервере, используя полученный результат из предыдущего шага. На этом этапе используется точечное применение эксплойта (минимум 1 попытка). Шаг 4. Пост-эксплуатация. Если Deep Exploit, успешно применил эксплойт к тестовому серверу, и оказался внутри системы, он тут же, пробует провести атаки на внутренние сервера, если таковые сможет обнаружить. Шаг 5. Создание отчета. DeepExploit создает отчет, в котором суммируются уязвимости. Тип отчета - html. Режим Грубой Силы: https://forum.antichat.xyz/attachmen...9609761538.png Шаг 1. Получение названий продуктов/сервисов Deep Exploit получает эти данные от пользователя, названия разделяются знаком «@». Пример: Код: Код:
wordpress@joomla@drupal@tikiwikiШаг 2. Эксплуатация. Deep Exploit использует эксплоит-модули, информацию о цели, полезные нагрузки Metasploit, соответствующие указанным продуктам, и тщательно проверяет всевозможные их комбинации. Шаг 3. Пост-эксплуатация. Если Deep Exploit, успешно применил эксплойт к тестовому серверу, и оказался внутри системы, он тут же, пробует провести атаки на внутренние сервера, если таковые сможет обнаружить. Шаг 4. Создание отчета. DeepExploit создает отчет, в котором суммируются уязвимости. Тип отчета – html. Anaconda, Keras,TensorFlow. Для работы Deep Exploit нам необходимо будет наличие нескольких дополнительных инструментов, этому можно было бы посвятить отдельную статью, но я постараюсь уложиться в одну. Более того, нам необходимо будет их подружить и заставить работать вместе. Итак, как я уже упоминал в начале, я использую систему: Kali Linux 2018.2 Full Update. Потому, эта инструкция актуальна, я полагаю и для аналогичных ей ОС. Anaconda: https://forum.antichat.xyz/attachmen...9609896449.png Для начала нам необходимо установить Python дистрибутив Anaconda, с первых минут использования, я проникся к нему нежностью, очень крутая штука. Anaconda — это дистрибутив Python и R вместе с основными библиотеками для анализа данных и пакетным менеджером conda. С помощью последнего удобно устанавливать и удалять пакеты. Также сильным достоинством является установка без компилирования из исходного кода, что значительно ее ускоряет по сравнению с pip. Conda - менеджер пакетов питона, позволяет устанавливать уже скомпилированные пакеты (может работать и в режиме компиляции пакетов перед установкой). Также Conda - менеджер окружений системы, позволяет создавать окружения с разными версиями чего угодно (библиотеки C, низкоуровневые библиотеки и т.д.). Conda бывает в двух версиях:
Код: Код:
wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.shДалее мы соглашаемся с лицензионным соглашением, жмем пару раз Enter и дожидаемся окончания установки. Теперь важный момент, нам необходимо установить версию python 3.6 как версию по умолчанию, именно ту, что установила Anaconda, перечитываем конфигурационный файл, и убеждаемся, что все работает. Код: Код:
source .bashrcЕсли версия Python осталась неизменной, то в .bashrc добавляем переменную окружения:
Tensorflow: https://forum.antichat.xyz/attachmen...9610083878.png TensorFlow– это нейронная сеть, которая учится решать задачи путем позитивного усиления и обрабатывает данные на различных уровнях (узлах), что помогает находить верный результат. Открыв исходный код библиотеки машинного обучения TensorFlow, в Google упростили процесс построения и развертывания сложных нейронных сетей. TensorFlow не предоставляет каждому разработчику возможность воспользоваться плодами машинного обучения, но предлагает интерфейсы API для языков Python и C/C++, позволяющие подключаться к программе разработчика. Установка Tensorflow: Производя установку на Kali Linux, пользователь, возможно, столкнется с такой проблемой: Код: Код:
conda install tensorflowЭто решается установкой вручную всех пакетов и зависимостей, выполняем следующую команду, чтобы получить информацию о необходимых зависимостях и установить их вручную, используя conda: Код: Код:
conda info tensorflowНужную нам версию и зависимости я выделил, теперь ставим их поочередно: Код: Код:
conda install _tflow_180_selectПосле установки всех зависимостей, можно установить сам TensorFlow: Код: Код:
conda install tensorflowПо окончании, проверяем версию и работоспособность: Код: Код:
python -c "import tensorflow; print(tensorflow.__version__)"Keras: https://forum.antichat.xyz/attachmen...9610301949.png Keras — открытая нейросетевая библиотека, написанная на языке Python. Она представляет собой надстройку над фреймворками Deeplearning4j, TensorFlow и Theano. Нацелена она на оперативную работу с сетями глубинного обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой. Keras - устанавливается из файла с зависимостями Deep Exploit, и к этому мы вернемся чуть позже. Установка Deep Exploit: Код: Код:
git clone https://github.com/13o-bbr-bbq/machine_learning_securityКод: Код:
pip install –r requirements.txthttps://forum.antichat.xyz/attachmen...9610375556.png И отредактируем файл /etc/proxychains.conf следующим образом: https://forum.antichat.xyz/attachmen...9610392214.png Настраиваем Keras для работы с TensorFlow, в домашней директории находим папку .keras и правим файл keras.json. Код: Код:
nano keras.jsonСледующим этапом будет инициализация базы Metasploit на удаленном сервере (В локальной сети была поднята виртуальная машина с Kali Linux) и запуск msfconsole там же: Код: Код:
msfdb initУдалённый вызов процедур, реже Вызов удалённых процедур ( Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC). Код: Код:
msf> load msgrpc ServerHost=192.168.0.108 ServerPort=55553 User=test Pass=test1234В папке с Deep Exploit редактируем файл config.ini: Код: Код:
nano config.iniМеняем, так как показано на скриншоте, это данные удаленного сервера с поднятым Metasploit и RPC, это нужно для успешной связки с Deep Exploit. На этом подготовка почти закончена, не хватает тренировочного сервера, я взял Metasploitable2 и поднял его в своей локальной сети. В общем, структура выглядит так: https://forum.antichat.xyz/attachmen...9610550665.png Запускаем Deep Exploit в тренировочном интеллектуальном режиме против Metasploitable2. Код: Код:
python DeepExploit.py -t 192.168.0.109 -m trainОстается немного подождать, поглядывая на консоль Metasploit на удаленном сервере, где спустя некоторое время начинают появляться результаты: https://forum.antichat.xyz/attachmen...9610592552.png После, того, как Deep Exploit закончил свою работу, нужно ознакомиться с отчетом, который, он заботливо для нас создал: https://forum.antichat.xyz/attachmen...9610604635.png Я все-таки надеялся на просмотр отчета в формате html, но видимо это или недоработка, или я что-то упустил из виду при настройке (да, упустил, об этом в следующей статье), но отчеты мне удалось найти только в формате CSV, разбитые на несколько файлов. Исходная информация от автора находится здесь - 13o-bbr-bbq/machine_learning_security Там можно найти несколько видео, и инструкцию по работе в режиме Грубой Силы. Спасибо за внимание. Специально для античат |
|
Хочу добавить еще один очень похожий инструмент: gyoisamurai/GyoiThon
|
Цитата:
|
Цитата:
|
Цитата:
|
а кто то уже тренировал ии?)))
|
Спасибо ТС! Как всегда оригинально. И полезно.
|
После проверки на работоспособность: python -c "import tensorflow; print(tensorflow.__version__)"
Получаем следующее: /root/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_converters 1.8.0 все зависимости проверил несколько раз, подскажите в чем ошибся |
Цитата:
|
| Время: 04:28 |