BeEF (сокращение от Browser Exploitation Framework) – платформа для эксплуатации клиент-сайд уязвимостей. BeEF — это фреймворк с открытым исходным кодом, который фокусируется на работе с браузером, несет в себе набор всевозможных инструментов для тестирования на проникновение, векторами атаки на стороне клиента.

Принцип работы.

  • Злоумышленник внедряет на уязвимый сайт созданный или сгенерированный скрипт

  • Скрипт сигналит BeEF о том, что новый клиент находится в режиме онлайн;

  • Злоумышленник входит в панель BeEF и удаленно осуществляет управление зараженными браузерами: исполняет пейлоады и получает ответы.

    Что бы стать жертвой достаточно выполнить в своем браузере hook.js, в результате выполнения скрипта браузер жертвы становится «ботом», которому можно будет посылать различные команды, вредоносные исполняемые файлы и так далее. От злоумышленника требуется минимум усилий, достаточно просто запустить beef-xss и открыть в браузере панель управления.

Установка.

    BeEF является кроссплатформенным и может быть установлен на Linux, MacOS или Windows систему, а также входит в состав Kali Linux.

    Полную информацию об установке можно получить в файле INSTALL.txt или в разделе WIKI проекта BeEF на Github. https://github.com/beefproject/beef/wiki/Installation

Настройка:

    Весь процесс настройки BeEF следует осуществлять через конфигурационный файл:config.yaml

Настройка веб-сервера:

Настройка сетевых ограничений:

    В BeEF управление возможно осуществить ограничение через подсети. Например:

Настройка расширений

Metasploit

    Расширение Metasploit должно быть настроено изменением файла config.yaml в extensions/metasploit

    Для работы можно оставить почти все настройки со значением «По-умолчанию». Исключениями являются host и callback_host, которые следует менять ip-адрес хоста.

    !!! Для включения RPC коммуникации, в Metasploit следует запустить следующую команду:

Первые шаги.

    После всех настроек, можем запустить BeEF.

    При запуске BeEF запускается управляющий сервер благдаря которому происходит взаимодействие с управляемыми браузерами и также нам становится доступным веб-интерфейс.

Логин и пароль по умолчанию BeEF. После авторизации у нас очень ограниченные возможности. Присутствует базовый гайд и пара тестовых страниц в которых уже залит наш скрипт и мы можем посмотреть как все работает.

Что бы получить доступ ко все возможностям данного фреймворка, необходимо выполнить захват какого либо браузера. Это можно сделать несколькими способами.

     1 способ- На какой либо странице используя XSS-уязвимость спрятать наш скрипт.

     2 способ- Заманить жертву на какой либо заранее подготовленный сайт.

Рассмотрим захват браузера на примере XSS игры от Google. Введем  данные и посмотрим как отреагирует приложение.

Введенная информация отобразилась на странице. Рассмотрим вариант с тегами, как на них отреагирует приложение. Отправляем запрос и сразу же смотрим в исходный код.

Видим, что тег успешно добавился, теперь, вставим в страницу расположение скрипта. Отправляем запрос и как результат мы должны захватит браузер жертвы, и он должен появиться в перечне онлайн браузера.

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

Кроме того нам стали доступны различные модули, которые собраны во вкладке Commands, c помощью которых можно развивать нашу атаку.

Используя BeEF следует помнить, что если жертва закроет страницу со скриптом то мы потеряем доступ, поэтому неоходимо закрепиться в захваченном браузере. Для этих целей существуют модули Persimence.

Заключение:

BeEF — очень грозное «оружие» в умелых руках, дает атакующему огромное количество информации, которую, в дальнейшем, можно сохранять и использовать в атаках.

Для более подробного ознакомления с BeEF воспользуйтесь ресурсом  https://github.com/beefproject/beef/wiki.