Загрузка...

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

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

Загрузка...
  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