Как пользоваться beef kali linux

Обновлено: 01.07.2024

В этом посте я объясню BeEF, как его установить и протестировать установку, выполнив небольшую атаку на мою систему.

BeEf или Browser Exploitation Framework - один из самых мощных арсеналов Kali Linux, который позволяет осуществлять атаку на стороне клиента против веб-браузеров. JavaScript может быть очень мощным и опасным. Эта инфраструктура может использовать преимущества XSS или межсайтовых сценариев, которые являются критической уязвимостью (как упоминается OWASP), обнаруженной на веб-страницах, для внедрения Java-скрипта и получения контроля над браузером, а иногда и всей системой.

Как установить BeEF?
Установка BeEF довольно проста. Все, что вам нужно, это компьютер Kali Linux с активным подключением к Интернету. Сначала убедитесь, что у вас есть нужные репозитории, добавленные в файл /etc/apt/sources file. После добавления мы можем установить этот фреймворк, выполнив две команды.

Запустите терминал и выполните

1.jpg

Запуск BeEF
Как только он установлен, вы можете запустить говядину, просто набрав beef-xss в терминале

2.jpg

Здесь мы увидим кое-что, что мы будем использовать в будущем. При запуске фреймворка вы увидите слово hook.js несколько раз. Прежде чем идти дальше, вы должны знать, что такое «крючок BeEF», который является источником атаки.

Что такое BeEF?
BeEF hook - это тщательно разработанный java-скрипт, который хранится на компьютере (сервере) злоумышленников, который должен выполняться в целевом веб-браузере, чтобы успешно скомпрометировать его. Когда этот код будет выполнен на целевой машине, он отправит обратно столько ценной информации о машине и браузере жертвы. Это также позволяет другим модулям в BeEF работать с машиной жертвы.

Вот так выглядит hook.js.

3.jpg

4.jpg


Имя пользователя по умолчанию: beef и Пароль по умолчанию: beef

После успешной отправки учетных данных вы будете перенаправлены на панель инструментов.

5.jpg


Это основная панель управления. Здесь вы можете увидеть все подробности обо всех подключенных браузерах, его IP-адресе, версии, доступности, возможных атаках и т. Д. Отсюда вы можете запускать атаки на различные цели, которые находятся в режиме онлайн.

Тестирование - наша первая атака
Все отлично сработало, теперь пришло время проверить, как это работает. Для этого я открою демонстрационную веб-страницу, в которую уже встроен hook.js, и посмотрю, не перехватывает ли он мой браузер и не запускает ли небольшую фишинговую атаку.

beefrun-5.jpg

Я открыл демонстрационную страницу, и, как вы видите на этом изображении, она уже подключила мой браузер.

beefrun-6-1024x576.jpg

На вкладке команд я собираюсь выбрать модуль Google Phishing из категории «Социальная инженерия». Как только это выбрано, нажмите выполнить.

Как вы можете видеть, демонстрационная страница изменилась на поддельную страницу входа в Google.

beefrun-7-1024x576.jpg

Когда пользователь пытается войти в систему из браузера, учетные данные будут отправлены обратно на сервер, и пользователь будет перенаправлен на страницу реального входа в Gmail.

Это всего лишь представление о том, что вы можете сделать с помощью этой платформы. Как упоминалось ранее, это структура с бесконечными возможностями. Все ограничено вашей фантазией.

XSS-атаки (сross-site scripting) уже давно вышли за рамки угона сессии через document.cookie на сниффер злоумышленника. Думаю, многие хорошо помнят даже различные онлайн-сервисы, которые позволяли с легкостью вставлять нужный пейлоад и ждать, пока на e-mail придет уведомление с данными жертвы. Сейчас на дворе 2016 год, так что предлагаю оставить все вышеописанное где-то в 2007 и вернуться в реальность. Сегодня речь в статье пойдет о популярном инструменте, который помогает выжать максимум из простого внедрения JS-кода. Итак, знакомься — BeEF.


BeEF — это фреймворк, позволяющий централизованно управлять пулом зараженных через XSS клиентов, отдавать команды и получать результат. Он работает следующим образом:

  • злоумышленник внедряет на уязвимый сайт скрипт hook.js ;
  • hook.js сигналит C&C (BeEF) о том, что новый клиент онлайн;
  • злоумышленник входит в панель управления BeEF и удаленно «рулит» зараженными брaузерами: исполняет пейлоад и получает ответ.

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

BeEF «из коробки» содержит уйму встроенных техник, эксплойтов, плагинов и значительно облегчает одновременную работу со множеством клиентов. Конечно же, зараженный пользователь может покинуть страницу с внедренным скриптом, но специально для этих целей существует атака Man-in-The-Browser, которая позволяет следить за всеми действиями клиента в контексте одного домена, пока он остается на сайте или собственноручно не поменяет адрес в строке URL.

Установка BeEF

Начать надо, конечно, с установки. Я рассматриваю ситуацию, в которой у нас есть своя впс/вдс где-то в облаках с белым айпишникoм и четырнадцатой Бубунтой:

Действуем по официальной инструкции, которую можно найти в репозитории на гитхабе. BeEF написан на Ruby, поэтому установка стандартная для большинства небольших руби-приложений: rvm, ruby, bundler и bundle install . В общем, проблем возникнуть не должно.

Кстати, BeEF также включается в дефолтную поставку Kali Linux 2, поэтому если ты используешь творение Offsec’а, то BeEF у тебя уже установлен.

Использование

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

Социальная инженерия

Для начала выберем что-нибудь простое и понятное — открываем раздел Social Engineering и попробуем провернуть фишинг логина в гугл-аккаунт. Для этого нам достаточно указать страницу, на которую будет перенаправлен пользователь, и задержку (delay) до редиректа. Заполняем (или, в нашем случае, оставляем как есть), нажимаем кнопку Execute — волшебным образом содержимое страницы меняется на знакомый и привычный глазу интерфейс авторизации в гугл-почте!

Фишинговая страница логина в GMail, показанная жертве с помощью BeEF

Фишинговая страница логина в GMail, показанная жертве с помощью BeEF

Притворимся, что мы жертва, и введем какие-нибудь данные. После нажатия кнопки Sign in нас перенаправляет на настоящую авторизацию Гугла и заодно перекидывает на указанную ранее в настройках страницу. Как можно увидеть, нажав в BeEF’е на отправленную команду, мы успешно перехватили введенные пользователем данные.

Перехваченные через BeEF данные от Гмейла

Перехваченные через BeEF данные от Гмейла

Самые основные команды

Где же старый добрый document.cookie, который всем так нужен? Да тут же, под рукой — в разделе Hooked Domain найдется достаточно команд для почти мгновенного доступа к различной информации из браузера жертвы, в том чиcле и вожделенным «печенькам».

Этим несложным образом можно получить список подключенных на странице скриптов и ссылок или весь исходный код страницы. Отдельное внимание я советую уделить такой фиче, как замена ссылок — изменить всё так, чтобы каждая ссылка на странице вела на нужный нам адрес. Среди всех доступных команд есть даже перенаправление пользователя на ролик с песней «Never gonna give you up» — классика как-никак!

You

You’ve been rickroll’d!

Фингерпринт

Помимо всего вышеописанного есть раздел Browser, в котором собрано множество полезных фич для максимального фингерпринта браузера жертвы. Можно узнать список установленных расширений в браузере, наличие LastPass, FireBug и т.д. С помощью команды «Webcam» можно попробовать подсунуть пользователю Flash-плагин для работы с вебкой, жаль только, что данная техника уже устарела, как и Flash в целом. Не буду перечислять и описывать все фичи, а посоветую тебе изучить их самостоятельно, заодно проверив актуальность в современных браузерах.

Эксплойты

Следующий интересный нам раздел — Exploits, как ни странно. В нем найдется множество готовых векторов для эксплуатирования различных уязвимостей. Прежде всего я советую обратить внимание на сплойты для различных роутеров. Мы уже не раз писали, какие фатальные баги иногда содержат роутеры: часто от безобидных XSS’ок получается раскрутить их до полноценного RCE через CSRF. К слову, тот же сценарий повторяется и с многими другими устройствами, которые находятся в сети потенциальной жертвы, будь то NAS, камеры, локальные сервисы и так далее. Список эксплойтов, конечно, не может похвастаться зиродеями или огромным выбором, но ведь никто не запрещает писать кастомные плагины для бифа под свои уязвимости

Атака на браузер, сниффинг отправляемых данных

Одной из самых интересных атак при использовании XSS можно назвать Man-in-The-Browser. Она позволяет отслеживать различные действия инфицированного пользователя на всем ресурсе, а не только на странице с пейлоадом. Эффект достигается за счет фоновой подгрузки запрошенной страницы по клику и подмены DOM, без изменения реального location’a браузера (примерно как в рельсовом turbolinks ). Естественно, эта фишка сработает только при соблюдении SOP: запрошенная страничка должна иметь тот же протокол, порт и домен, а иначе загрузки просто не произойдет.

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

BeEF отлавливает попытки перехода по другую страницу и подгружает данные динамически

BeEF отлавливает попытки перехода по другую страницу и подгружает данные динамически

Работа с сетью

Еще советую посмотреть на такую замечательную функцию, как сканирование сети с использованием словаря DNS-имен. Кто знает, вдруг вы для удобства назвали свой роутер «router»?

Детект и фингерпринт внутренней сети это, конечно, замечательно, как и попытки использовать различные сплойты под роутеры со всякими CSRF/XSS/etc. Но что, если мы хотим стать крутыми хакерами и попробовать сразу пробить браузер жертвы? Нет ничего проще, ведь BeEF поддерживает использование Metasploit’а. Это, конечно, не приватные связки с 0day, но никто и не гарантирует, что у пользователя будет последняя версия браузера/плагинов

Чтобы подружить metasploit и beef, достаточно выполнить несколько простых действий:

  1. Открыть главный config.yaml (у меня в Kali он был расположен по адресу /usr/share/beef-xss/ ), найти раздел Extension и у Метасплойта изменить значение параметра enable на true .
  2. Открыть файл настроек плагина метасплойта (например, /usr/share/beef-xss/extensions/metasploit/config.yaml ) и изменить параметры host , callback_host (остальное на твое усмотрение).
  3. Запустить метасплойт и выполнить команду:msf > load msgrpc ServerHost=192.168.186.149 User=msf Pass=abc123

Перезапуск BeEF’а — и нашему взору открываются несколько сотен модулей метасплойта, которые можно применять по своему усмотрению. Давай рассмотрим простой пример использования связки BeEF + Metasploit. Возьмем модуль browser_autopwn2 , настроим и запустим его.

Атаки на расширения браузера

Еще один интересный и часто использующийся вектор атаки — атака на расширения пользователя. В случае успеха она гарантирует нам гораздо большие возможности, нежели простое внедрение скрипта на страничку сайта, ведь у расширений куда больше прав. Специально для этих целей был создан аналог BeEF’а, который в итоге перерос в самостоятельный полноценный фреймворк — Chrome Extension Exploitation Framework, или просто ChEF. Среди его возможностей выделяются такие фичи, как:

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

Выводы

Конечно, можно было бы описать еще часть функциональности BeEF’a, рассказать про phonegap, инфицирование мобильных приложений, применение при MiTM’е и т.д., но все это, к сожалению, не умещается в формат одной статьи. Кратко говоря, BeEF — это действительно самый удобный и самый крутой (во всех смыслах) фреймворк для работы с XSS, который выжимает из простого внедрения JS-кода абсолютный максимум, оставляя место для творчества (BeEF — проект опенсорсный), и к тому же поддерживает кастомные плагины. Такой инструмент прекрасно подходит как и для проведения пентестов, так и для решения различных CTF-тасков и всего, на что еще способна твоя фантазия.

Kali Linux серия руководств по установке BeFF и интеграции Metasploit

kali Linux Серия учебных пособий BeFF Установка и интеграция Metasploit

1.1 apt-get Способ установки

1.3 Базовый тест

1.4 Информация об исключении

1.5 Установить из исходников BeEF

1.5.1 установка curl git

1.5.2 установка rvm

1.5.3 Установить зависимости

1.5.4 установка ruby

1.5.5 установка bundler

1.5.6 скачать beef

1.5.7 Установка и запуск

1.6 интегрированный metasploit

1.1 apt-get Способ установки

Откройте терминал и введите следующую команду:

apt-get install beef-xss


1.2 запускать

Переключиться на BeEF инструкция по установке.


[18:46:50][*] Bind socket [imapeudora1] listening on [0.0.0.0:2000].

[18:46:50][*] Browser Exploitation Framework (BeEF) 0.4.4.9-alpha

[18:46:50] | Twit: @beefproject

[18:46:50][*] Project Creator: Wade Alcorn (@WadeAlcorn)

[18:46:51][*] BeEF is loading. Wait a few seconds.

[18:46:55][*] 10 extensions enabled.

[18:46:55][*] 196 modules enabled.

[18:46:55][*] 2 network interfaces were detected.

[18:46:55][+] running on network interface: 127.0.0.1

[18:46:55][+] running on network interface: 192.168.14.132

[18:46:55][*] RESTful API key: e46ed3a91a9c94921f6840dfec12cf4b83d43ecb

[18:46:55][*] BeEF server started (press control+c to stop)



Имя пользователя и пароль оба beef . Нажмите после ввода Login ,авторизоваться.


1.3 Базовый тест

Откройте в браузере тестовую страницу по умолчанию.


После того, как целевая система получит доступ к тестовой странице, в beef Собранную информацию можно увидеть на странице управления, и в это время также могут быть отправлены некоторые команды атаки. За подробностями обращайтесь к моему онлайн-видеоуроку: Kali Linux Web Видеоурок по тестированию на проникновение - часть 16 учебный класс BeEF Основное использование



На консоли отобразится соответствующая информация:


1.4 Информация об исключении

/usr/share/beef-xss/core/main/handlers/hookedbrowsers.rb:80:in `block (2 levels) in <class:HookedBrowsers>'

/usr/lib/ruby/vendor_ruby/dm-core/collection.rb:508:in `block in each'

/usr/lib/ruby/vendor_ruby/dm-core/support/lazy_array.rb:411:in `block in each'

/usr/share/beef-xss/core/main/handlers/hookedbrowsers.rb:80:in `block in <class:HookedBrowsers>'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1603:in `block in compile!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:966:in `block (3 levels) in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:966:in `block (2 levels) in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1006:in `block in process_route'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:964:in `block in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1076:in `block in dispatch!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1058:in `block in invoke'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:898:in `block in call!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1058:in `block in invoke'

/usr/lib/ruby/vendor_ruby/rack/urlmap.rb:64:in `block in call'

/usr/lib/ruby/vendor_ruby/thin/connection.rb:80:in `block in pre_process'

/usr/share/beef-xss/core/main/handlers/hookedbrowsers.rb:80:in `block (2 levels) in <class:HookedBrowsers>'

/usr/lib/ruby/vendor_ruby/dm-core/collection.rb:508:in `block in each'

/usr/lib/ruby/vendor_ruby/dm-core/support/lazy_array.rb:411:in `block in each'

/usr/share/beef-xss/core/main/handlers/hookedbrowsers.rb:80:in `block in <class:HookedBrowsers>'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1603:in `block in compile!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:966:in `block (3 levels) in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:966:in `block (2 levels) in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1006:in `block in process_route'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:964:in `block in route!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1076:in `block in dispatch!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1058:in `block in invoke'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:898:in `block in call!'

/usr/lib/ruby/vendor_ruby/sinatra/base.rb:1058:in `block in invoke'

/usr/lib/ruby/vendor_ruby/rack/urlmap.rb:64:in `block in call'

/usr/lib/ruby/vendor_ruby/thin/connection.rb:80:in `block in pre_process'

Решение - установить и обновить из исходников ruby версия.

1.5 Установить из исходников BeEF

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

1.5.1 установка curl git

Сначала установить curl git 。

apt-get install curl git


Информация о выходе:

Чтение списка пакетов . исполняйте

Анализ дерева зависимостей пакета

Чтение информации о статусе . исполняйте

git Это уже последняя версия.

Следующие пакеты были установлены автоматически и больше не нужны:

ruby-daemons ruby-dataobjects ruby-dataobjects-mysql

ruby-dataobjects-postgres ruby-dataobjects-sqlite3 ruby-dm-core

ruby-dm-do-adapter ruby-dm-migrations ruby-dm-sqlite-adapter

ruby-em-websocket ruby-equalizer ruby-erubis ruby-eventmachine ruby-execjs

ruby-memoizable ruby-msfrpc-client ruby-msgpack ruby-multi-json

ruby-multipart-post ruby-naught ruby-parseconfig ruby-rack

ruby-rack-protection ruby-ref ruby-rubyzip ruby-simple-oauth ruby-sinatra

ruby-term-ansicolor ruby-therubyracer ruby-thread-safe ruby-tilt

ruby-twitter ruby-uglifier thin

Use 'apt-get autoremove' to remove them.

Следующие пакеты будут обновлены:

Обновлено 2 Пакеты, недавно установленные 0 Пакеты для удаления 0 Пакеты с 147 Пакеты не обновлялись.

Нужно скачать 601 kB Упаковка.

Потребляется после декомпрессии 0 B Дополнительное пространство.

скачать 601 kB ,кропотливый 23 второй (25.8 kB/s)

Читать журнал изменений (changelogs). исполняйте

( Чтение базы данных . В настоящее время в системе есть 325894 Файлы и каталоги. )

Готов заменить curl 7.26.0-1+wheezy10 ( использовать . /curl_7.26.0-1+wheezy11_amd64.deb) .

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

Готов заменить libcurl3:amd64 7.26.0-1+wheezy10 ( использовать . /libcurl3_7.26.0-1+wheezy11_amd64.deb) .

Разархивируйте файл пакета, который будет использоваться для замены libcurl3:amd64 .

image

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

Эксплуатации XSS уязвимостей зачастую уделяется мало внимания, т.к. вектора атаки нацелены на пользователей веб-приложения, а не на веб-приложение или веб-сервер. BeEF позволяет реализовывать атакующие векторы, использующие в качестве точки входа веб-браузер. Такие атаки могут использоваться в контексте watering hole и spear phishing атак, а также в контексте APT.

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

После выявления XSS-уязвимости злоумышленник внедряет на уязвимый сайт созданный или сгенерированный скрипт для управления браузером жертвы. Если XSS хранимая, и применима ко всем посетителям сайта это может позволить злоумышленникам атаковать множественные цели одновременно.

От администратора BeEF требуется минимум усилий, достаточно просто запустить beef-xss и открыть в браузере панель управления.


После выполнения хука (js-пейлоада) BeEF браузер жертвы отобразится во вкладке «онлайн».

image

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

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

Пост эксплуатация

На изображении ниже представлен перехват нажатий клавиш в браузере жертвы. Это может позволить перехватить пароль пользователя (при XSS-векторе обычно перехватывается только сессия, а не сами учетные данные).

image

После того, как в браузере «жертвы» выполнился javascript код, администратору BeEF доступны множественные модули пост-эксплуатации:

Читайте также: