Загрузка...

Deep Exploit - Fully Automatic Pentest. Часть #2

Тема в разделе Kali Linux создана пользователем mrJollier 22 июн 2018. 724 просмотра

  1. mrJollier
    mrJollier Автор темы 22 июн 2018 Всё ещё живой 540 15 фев 2017
    Структура работы Deep Exploit в Интеллектуальном режиме:

    [IMG]
    Шаг 1. Сканирование портов на тренировочных серверах.

    Deep Exploit собирает информацию, такую как тип ОС, номера открытых портов, версия ядра и так далее.

    После сканирования портов он выполняет две команды Metasploit (hosts и services) через RPC API.

    • Результат выполнения команды – hosts.
    Hosts

    =====

    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.

    • Результат выполнения команды – services.
    Services

    ========

    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. Обучение.

    [IMG]
    Deep Exploit учится эксплуатации уязвимостей с помощью использования современной модели машинного обучения под названием A3C.



    A3C состоит из множества нейронных сетей.



    Нейронные сети берут информацию из тренировочного сервера, собранную на шаге 1, как исходную, и на основе анализа, пытаются подобрать подходящую полезную нагрузку.

    A3C применяет ее на тренировочном сервере с помощью Metasploit. В соответствии с результатом, (успехом / неудачей) применения эксплойта, A3C обновляет размер нейронной сети (параметр, относящийся к точности атаки). Выполняя описанную выше обработку (обучение) с комбинацией ввода различных исходных данных, постепенно определяется оптимальная полезная нагрузка для сервера.

    Чтобы сократить время обучения, мы выполняем эту обработку в несколько потоков.

    В качестве тренировочных серверов рекомендуется, как пример, использовать следующие:

    • metasploitable2
    • metasploitable3


    Шаг 3. Тестирование.

    Deep Exploit выполняет эксплойт на тестовом сервере, используя полученный результат из предыдущего шага.

    На этом этапе используется точечное применение эксплойта (минимум 1 попытка).



    Шаг 4. Пост-эксплуатация.

    Если Deep Exploit, успешно применил эксплойт к тестовому серверу, и оказался внутри системы, он тут же, пробует провести атаки на внутренние сервера, если таковые сможет обнаружить.



    Шаг 5. Создание отчета.

    DeepExploit создает отчет, в котором суммируются уязвимости.

    Тип отчета - html.



    Режим Грубой Силы:

    [IMG]
    Шаг 1. Получение названий продуктов/сервисов

    Deep Exploit получает эти данные от пользователя, названия разделяются знаком «@».

    Пример:

    wordpress@joomla@drupal@tikiwiki





    Указанное имя продукта должно распознано командой поиска Metasploit.



    Шаг 2. Эксплуатация.

    Deep Exploit использует эксплоит-модули, информацию о цели, полезные нагрузки Metasploit, соответствующие указанным продуктам, и тщательно проверяет всевозможные их комбинации.



    Шаг 3. Пост-эксплуатация.

    Если Deep Exploit, успешно применил эксплойт к тестовому серверу, и оказался внутри системы, он тут же, пробует провести атаки на внутренние сервера, если таковые сможет обнаружить.



    Шаг 4. Создание отчета.

    DeepExploit создает отчет, в котором суммируются уязвимости.

    Тип отчета – html.



    Anaconda, Keras, TensorFlow.

    Для работы Deep Exploit нам необходимо будет наличие нескольких дополнительных инструментов, этому можно было бы посвятить отдельную статью, но я постараюсь уложиться в одну. Более того, нам необходимо будет их подружить и заставить работать вместе.



    Итак, как я уже упоминал в начале, я использую систему: Kali Linux 2018.2 Full Update.

    Потому, эта инструкция актуальна, я полагаю и для аналогичных ей ОС.

    Anaconda:

    [IMG]
    Для начала нам необходимо установить Python дистрибутив Anaconda, с первых минут использования, я проникся к нему нежностью, очень крутая штука.



    Anaconda — это дистрибутив Python и R вместе с основными библиотеками для анализа данных и пакетным менеджером conda. С помощью последнего удобно устанавливать и удалять пакеты. Также сильным достоинством является установка без компилирования из исходного кода, что значительно ее ускоряет по сравнению с pip.



    Conda - менеджер пакетов питона, позволяет устанавливать уже скомпилированные пакеты (может работать и в режиме компиляции пакетов перед установкой). Также Conda - менеджер окружений системы, позволяет создавать окружения с разными версиями чего угодно (библиотеки C, низкоуровневые библиотеки и т.д.).



    Conda бывает в двух версиях:

    • Анаконда - более 150 предустановленных пакетов (около 3 Гб) + более 250 пакетов, готовых к установке командой conda install package_name
    • Миниконда - более 400 пакетов, готовых к установке командой conda install package_name
    Скачиваем ее с официального сайта и устанавливаем.

    wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
    chmod +x Anaconda3-5.2.0-Linux-x86_64.sh
    ./ Anaconda3-5.2.0-Linux-x86_64.sh





    [IMG]
    Далее мы соглашаемся с лицензионным соглашением, жмем пару раз Enter и дожидаемся окончания установки.



    Теперь важный момент, нам необходимо установить версию python 3.6 как версию по умолчанию, именно ту, что установила Anaconda, перечитываем конфигурационный файл, и убеждаемся, что все работает.

    source .bashrc





    [IMG]
    Если версия Python осталась неизменной, то в .bashrc добавляем переменную окружения:

    • #added be Anaconda3 installer
    • export PATH=”/root/anaconda3/bin:$PATH”
    [IMG]
    Tensorflow:

    [IMG]
    TensorFlow – это нейронная сеть, которая учится решать задачи путем позитивного усиления и обрабатывает данные на различных уровнях (узлах), что помогает находить верный результат.

    Открыв исходный код библиотеки машинного обучения TensorFlow, в Google упростили процесс построения и развертывания сложных нейронных сетей. TensorFlow не предоставляет каждому разработчику возможность воспользоваться плодами машинного обучения, но предлагает интерфейсы API для языков Python и C/C++, позволяющие подключаться к программе разработчика.



    Установка Tensorflow

    Производя установку на Kali Linux, пользователь, возможно, столкнется с такой проблемой:

    conda install tensorflow





    [IMG]
    Это решается установкой вручную всех пакетов и зависимостей, выполняем следующую команду, чтобы получить информацию о необходимых зависимостях и установить их вручную, используя conda:

    conda info tensorflow





    [IMG]
    Нужную нам версию и зависимости я выделил, теперь ставим их поочередно:

    conda install _tflow_180_select





    [IMG]
    После установки всех зависимостей, можно установить сам TensorFlow:

    conda install tensorflow





    [IMG]
    По окончании, проверяем версию и работоспособность:

    python -c "import tensorflow; print(tensorflow.__version__)"





    [IMG]
    Keras:

    [IMG]
    Keras — открытая нейросетевая библиотека, написанная на языке Python. Она представляет собой надстройку над фреймворками Deeplearning4j, TensorFlow и Theano. Нацелена она на оперативную работу с сетями глубинного обучения, при этом спроектирована так, чтобы быть компактной, модульной и расширяемой.



    Keras - устанавливается из файла с зависимостями Deep Exploit, и к этому мы вернемся чуть позже.



    Установка Deep Exploit:

    git clone https://github.com/13o-bbr-bbq/machine_learning_security
    cd machine_learning_security/DeepExploit





    Установка зависимостей, TensorFlow можно исключить из файла, закомментировав.

    pip install –r requirements.txt





    После успешной установки всех зависимостей убедимся в работоспособности Keras и Tensorflow.

    [IMG]
    И отредактируем файл /etc/proxychains.conf следующим образом:

    [IMG]
    Настраиваем Keras для работы с TensorFlow, в домашней директории находим папку .keras и правим файл keras.json.

    nano keras.json





    [IMG]
    Следующим этапом будет инициализация базы Metasploit на удаленном сервере (В локальной сети была поднята виртуальная машина с Kali Linux) и запуск msfconsole там же:

    msfdb init
    msfconsole





    Поднимаем там RPC-сервер:

    Удалённый вызов процедур, реже Вызов удалённых процедур ( Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC).

    msf> load msgrpc ServerHost=192.168.0.108 ServerPort=55553 User=test Pass=test1234





    [IMG]
    В папке с Deep Exploit редактируем файл config.ini:

    nano config.ini





    [IMG]
    Меняем, так как показано на скриншоте, это данные удаленного сервера с поднятым Metasploit и RPC, это нужно для успешной связки с Deep Exploit.



    На этом подготовка почти закончена, не хватает тренировочного сервера, я взял Metasploitable2 и поднял его в своей локальной сети.



    В общем, структура выглядит так:

    [IMG]
    Запускаем Deep Exploit в тренировочном интеллектуальном режиме против Metasploitable2.

    python DeepExploit.py -t 192.168.0.109 -m train





    [IMG]
    Остается немного подождать, поглядывая на консоль Metasploit на удаленном сервере, где спустя некоторое время начинают появляться результаты:

    [IMG]
    После, того, как Deep Exploit закончил свою работу, нужно ознакомиться с отчетом, который, он заботливо для нас создал:

    [IMG]
    Я все-таки надеялся на просмотр отчета в формате html, но видимо это или недоработка, или я что-то упустил из виду при настройке (да, упустил, об этом в следующей статье), но отчеты мне удалось найти только в формате CSV, разбитые на несколько файлов.



    Исходная информация от автора находится здесь - 13o-bbr-bbq/machine_learning_security

    Там можно найти несколько видео, и инструкцию по работе в режиме Грубой Силы.

    Первая часть https://zelenka.guru/threads/515079/
     
Загрузка...
Top