Kali linux bettercap перехват паролей по wifi

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

bettercap

Описание bettercap

Программа bettercap версий 2.x и более поздних является продолжением bettercap предыдущего поколения, которое было остановлено на 1.6.x. Архивная страница, посвящённая ветке 1.6: https://kali.tools/?p=345

Данная страница описывает bettercap 2.x — актуальную в данный момент версию.

bettercap — это универсальная программа для сетевых атак и мониторинга.

Возможности bettercap включают в себя:

  • ARP-спуфинг и сниффинг
  • мониторинг сети
  • мониторинг WiFi и BLE
  • выполнение атак в беспроводных сетях
  • выполнение атак человек-посередине с поддержкой разнообразных приёмов: обход HTTPS, DNS спуфинг, запуск веб-сервера и прочее
  • поддержка caplets — каплетов, файлов, позволяющих описать скриптовым языком сложные и автоматизированные атаки
  • работает на Linux, macOS, Windows, Android, ARM

Автор: Simone ‘evilsocket’ Margaritelli*

Справка по bettercap

bettercap работает в интерактивном режиме — она поддерживает ввод команд, которые включают/отключают модули, выполняют атаки, выводят информацию. Также имеется несколько опций, которые можно указать при запуске программы.

Базовые аргументы командной строки:

аргумент описание
-autostart МОДУЛИ Разделённый запятой список модулей для автоматического старта при запуске программы. (по умолчанию это events.stream, net.recon, update.check )
-caplet ИМЯ_ФАЙЛА Считать команды из этого файла и выполнить их в интерактивной сессии.
-eval КОМАНДЫ В интерактивной сессии запустить одну или более команд, разделённых ; — это используется для установки переменных через командную строку.
-iface ИНТЕРФЕЙС Сетевой интерфейс для привязки, если не указан, то будет автоматически выбран дефолтный интерфейс (принимаются имя интерфейса, ip или mac-адрес).
-no-history Отключить файл истории интерактивной сессии

/.bettercap.history .

-no-colors Отключить цветные эффекты вывода.
-env-file ИМЯ_ФАЙЛА Если найдены, загрузить переменные окружения из этого файла, укажите пустое имя, если хотите отключить дефолтные переменные коружения. (по умолчанию

/bettercap.env )

-cpu-profile ИМЯ_ФАЙЛА Записывать файл профиля cpu (используется для отладки и бенчмаркинга).
-mem-profile ИМЯ_ФАЙЛА Записывать файл профиля памяти (используется для отладки и бенчмаркинга).
-silent Подавить все логи, которые не являются ошибками.
-debug Включить сообщения отладки.

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

Чтобы узнать свои возможности, наберите help и вам будет показано меню общей справки, вы можете получить справку по определённому модулю, используя help имя-модуля (например, попробуйте help net.recon), чтобы увидеть, какие модули запущены и изменять их настройки в любое время, вы можете использовать интерактивные команды.

Чтобы напечатать все переменные и их значения, вы можете использовать get * или get имя-переменной, чтобы получить единичную переменную (попробуйте get gateway.address), чтобы установить новое значение, вы можете выполнить set имя-переменной новое-значение (значение «» очистит содержимое переменное), в типичной сессии переменные выглядят примерно так:

Базовые команды bettercap

Эти базовые команды доступны для выполнения в интерактивном режиме:

команда описание
help / help МОДУЛЬ Вывести список доступных команд, если имя модуля не указано, или показать справку для определённого модуля.
active Показать информацию об активных модулях.
quit / q Закрыть сессию и выйти.
sleep СЕКУНДЫ Сон на заданное количество секунд.
get ПЕРЕМЕННАЯ Получить значение ПЕРЕМЕННОЙ , используйте * для всех.
set ПЕРЕМЕННАЯ ЗНАЧЕНИЕ Установить значение ПЕРЕМЕННОЙ на ЗНАЧЕНИЕ .
read ПЕРЕМЕННАЯ ЗАПРОС Показать ЗАПРОС чтобы спросить пользователя ввести то, что будет сохранено внутри ПЕРЕМЕННОЙ .
clear Очистить экран .
include CAPLET Загрузить и запустить этот caplet (каплет) в текущую сессию.
!COMMAND Выполнить команду оболочки и напечатать её вывод.
alias MAC ИМЯ Назначить псевдоним заданной конечной точки указанной по её MAC адресу (будет сохранено в файле и использовано для команды net.show .

Руководство по bettercap

Страница man отсутствует.

Каплеты (Caplets)

Каплеты (Caplets) или .cap файлы — это мощный способ записать в скрипт интерактивные сессии bettercap, это как файлы .rc для Metasploit. Актуальные каплеты и модули находятся в этом репозитории, настоятельно рекомендуется ознакомится с концепцией каплетов, чтобы до конца понимать, какие возможности даёт bettercap.

Чтобы скачать все каплеты за раз:

Каплеты можно использовать двумя способами.

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

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

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

Давайте попробуем создать файл reload.cap в нашей текущей папке, в нёго запишем следующие строки:

Если мы попробуем вновь выполнить reload arp.spoof, мы увидем, что сеанс больше не печатает снова это же самое сообщение об ошибки, но вместо этого выполняет строки:

Как вы уже поняли, этим способом вы можете задавать пользовательские команды, $0 будет заменён на первый аргумент, $1 на второй и так далее.

Порядок загрузки следующий:

  1. ./reload.cap
  2. ./caplets/reload.cap
  3. Любая папка в переменной окружения $CAPSPATH, если она указана (значения разделяются двоеточием (:) как в $PATH).

Из командной строки

Используя аргумент командной строки -caplet, например:

Этот пример загрузит файл example.cap для текущей папки. Для настройки каплета можно использовать дополнительные параметры, например, следующая строка команды будет спуфить и печатать HTTP запросы для целой сети:

Эта будет нацелена на определённый IP, поскольку будет переназначена переменная arp.spoof.targets:

Модули bettercap

Имеются следующие модули:

  • Основные
  • events.stream
  • ticker
  • api.rest
  • update.check
  • Bluetooth с низким энергопотреблением
  • ble.recon / enum / write
  • 802.11
  • wifi.recon / deauth / ap
  • Ethernet и IP
  • net.recon
  • net.probe
  • net.sniff
  • syn.scan
  • wake on lan
  • Спуферы
  • arp.spoof
  • dhcp6.spoof
  • dns.spoof
  • Прокси
  • packet.proxy
  • tcp.proxy
  • модули
  • http.proxy
  • https.proxy
  • модули
  • Сервера
  • http.server
  • Утилиты
  • mac.changer
  • gps

events.stream

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

Команды

команда описание
events.stream on Запустить поток событий.
events.stream off Остановить поток событий.
events.show ЛИМИТ? Показать поток событий ( ЛИМИТ — это опциональный параметр ).
events.waitfor TAG TIMEOUT? Ожидание события с заданным тегом, либо всегда, либо в течение определённого таймаута в секундах.
events.ignore ФИЛЬТР События с идентификатором, соответствующим этому фильтру, не будут показаны (используйте несколько раз, чтобы добавить больше фильтров).
events.include ФИЛЬТР Используется для удаления фильтров, переданных командой events.ignore.
events.clear Очистить буфер потока событий.

Параметры

параметр значение по умолчанию описание
events.stream.output Если не пустой, события будут записаны в этот файл вместо стандартного вывода.

Примеры

Запустить bettercap без цвета и эффектов в терминали и записывать события в файл

Показывать каждое событие:

Показать последние 5 событий, заснуть на одну секунду и очистить буфер:

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

То же самое, но с таймаутом в 10 секунд:

Игнорировать события от WiFi клиентов во время использования одного из модулей wifi:

Запустить bettercap при этом отключив события net.recon модуля (найдены новые конечные точки, потеряны конечные точки и т. п.) заснуть на одну секунду и затем включить их обратно (используется для подавления начальных сообщений обнаружения):

ticker

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

Команды

команда описание
ticker on Запустить ticker.
ticker off Остановить ticker.

Параметры

параметр значение по умолчанию описание
ticker.commands clear; net.show Список команд, разделённых ; .
ticker.period 1 Цикл тикера в секундах.

Примеры

Запустить зондирование хостов, очистить экран и вывести обнаруженные конечные точки каждую секунду (будет использовать дефолтные параметры):

Продолжать деаутентификацию клиентов от точки доступа с BSSID DE:AD:BE:EF:DE:AD каждые пять секунд:

api.rest

REST API для скрипта и/или взаимодействия с сеансом.

Команды

команда описание
api.rest on Запустить REST API сервер.
api.rest off Запустить REST API сервер.

Параметры

/.bcap-api.rest.certificate.pem

/.bcap-api.rest.key.pem

параметр значение по умолчанию описание
api.rest.certificate API TLS сертификат (будет сгенерирован автоматически).
api.rest.key API TLS ключ.
api.rest.address Адрес на который привязать API REST сервер.
api.rest.port 8083 Порт для привязки API REST сервера.
api.rest.username Обязательное имя пользователя для API HTTP basic аутентификации.
api.rest.password Обязательный пароль для API HTTP basic аутентификации.
api.rest.websocket false Если true маршрут /api/events будет доступен как веб-сокет конечной точки вместо HTTPS.

Маршруты

Клиенты могут аутентифицироваться с использованием HTTP basic аутентификацией, это доступные API маршруты.

GET /api/session

Получить JSON состояния текущей сессии, пример ответа:

GET /api/session/ble

Получить JSON устройства BLE в текущей сессии, пример ответа:

  • Mac адрес, например GET /api/session/ble/00:AA:BB:CC:DD:33 — вернёт информацию о единичной конечной точке с mac-адресом 00:AA:BB:CC:DD:33 (клиент Adafruit Bluefruit LE из предыдущего вывода).

GET /api/session/env

Получить JSON значений переменных окружения в текущей сессии, пример ответа:

GET /api/session/gateway

Получить JSON шлюза интерфейса текущей сессии, пример ответа:

GET /api/session/interface

Получить JSON главного интерфейса (wifi/lan) текущей сессии, пример ответа:

GET /api/session/lan

Получить JSON lan устройств текущей сессии, пример ответа:

  • Mac-адрес, например GET /api/session/lan/00:AA:BB:CC:DD:11 — вернёт информацию о единичной конечной точке lan с mac-адресом 00:AA:BB:CC:DD:11 (из приведённого выше вывода это pihole).

GET /api/session/options

Получить JSON набора опций текущей сессии, пример ответа:

GET /api/session/packets

Получить JSON трафика пакетов текущей сессии, пример ответа:

GET /api/session/started-at

Получить JSON времени запуска текущей сессии, пример ответа:

GET /api/session/wifi

Получить JSON wifi устройств (клиентов и точек доступа) в текущей сессии, пример ответа:

  • Mac-адрес, например GET /api/session/wifi/00:AA:BB:CC:DD:22 — вернёт информацию о единичной конечной точке wifi с mac-адресом 00:AA:BB:CC:DD:22 (из вывода выше это подключённый клиент).

POST /api/session

Отправляет в интерактивную сессию команду методом POST, ожидается, что будет отправлен объект JSON следующего вида:

При этом ответом будет:

GET /api/events

Возвращает список событий ( опциональный параметр n GET ограничит количество ):

DELETE /api/events

Очистит буфер событий.

update.check

Модуль для проверки обновлений bettercap

Команды

команда описание
update.check on Проверяет последнюю доступню стабильную версию и сравнивает её с используемой.

Этот модуль ответственен за обнаружение устройств Bluetooth Low Energy.

Команды

команда описание
ble.recon on Запустить обнаружение устройств Bluetooth Low Energy.
ble.recon off Запустить обнаружение устройств Bluetooth Low Energy.
ble.show Показать обнаруженные устройства Bluetooth Low Energy.
ble.enum MAC Перечислить службы и характеристики заданного BLE устройства.
ble.write MAC UUID HEX_DATA Записать HEX_DATA буфер в BLE устройство с указанным MAC -адресом, в характеристики с заданным UUID .

Примеры

Подключиться, перечислить и считать характеристики с BLE устройства 04:52:de:ad:be:ef:

Записать байты ff ff ff ff ff ff ff ff to в BLE устройство 04:52:de:ad:be:ef на его характеристики с UUID 234bfbd5e3b34536a3fe723620d4b78d:

  • ble.enum только работает один раз на выполнение
  • неполная поддержка для macOS
  • совсем не поддерживается на Windows.

Модули wifi.* работают с WiFi интерфейсом, поддерживающим режим монитора и инъекцию пакетов, они используются для монитора и выполнения беспроводных атак на 802.11.

Команды

команда описание
wifi.recon on Запустить обнаружение беспроводных 802.11 базовых станций.
wifi.recon off Остановить обнаружение беспроводных 802.11 базовых станций.
wifi.recon BSSID Установить фильтр базовых станций 802.11 на.
wifi.recon clear Удалить фильтр базовых станций 802.11.
wifi.deauth BSSID Запустить атаку деаутентификации 802.11, если указан BSSID, то будет деаутентифицирован каждый клиент, в противном случае только выбранный клиент.
wifi.show Показать текущий список беспроводных станций (по умолчанию сортировка по RSSI).
wifi.recon.channel КАНАЛ Разделённый запятой список каналов, по которым прыгать.
wifi.recon.channel clear Включить прыгание по всем поддерживаемым каналам.
wifi.ap Внедрить маяки управления фальшивкой, чтобы создать мошенническую точку доступа ( требует запуска wifi.recon ).

Параметры

параметр значение по умолчанию описание
wifi.hop.period 250 Если включено прыганье по каналам (пустое значение wifi.recon.channel ), это время в миллисекундах через которое алгоритм будет менять каналы (оно будет удвоено, если оба диапазона частот 2.4 и 5.0 доступны).
wifi.source.file Если установлена wifi модуль будет считывать из файла pcap, а не с аппаратного интерфейса.
wifi.skip-broken true Если true, dot11 пакеты с некорректной контрольной суммой будут пропущены.
wifi.ap.ssid FreeWifi SSID фальшивой точки доступа.
wifi.ap.bssid BSSID фальшивой точки доступа.
wifi.ap.channel 1 Канал фальшивой точки доступа.
wifi.ap.encryption true Если true, фальшивая точка доступа будет использовать WPA2, в противном случае результатом будет открытая ТД.

Примеры

Используя модули ticker и wifi.recon создать WiFi сканер (выполнять переход по каналам на каждой поддерживающейся частоте):

Вести разведку только на каналх 1, 2 и 3:

Деаутентифицировать клиентов от точки доступа с BSSID DE:AD:BE:EF:DE:AD каждые пять секунд:

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

net.recon

Этот модуль включён по умолчанию, он ответственен за периодическое считывание ARP кэша чтобы мониторить новые хосты в сети.

Команды

команда описание
net.recon on Запустить обнаружение сетевых хостов.
net.recon off Остановить обнаружение сетевых хостов.
net.show Показать список кэша хостов (по умолчанию сортировка по ip).
net.show by seen Показать список кэша хостов (сортировка по когда виден последний раз).
net.show by sent Показать список кэша хостов (сортировка по отправленным пакетам).
net.show by rcvd Показать список кэша хостов (сортировка по полученным пакетам).

net.probe

Этот модуль продолжает зондирование новых хостов в сети, отправляя фиктивные UDP пакеты каждому возможному IP в подсети.

Команды

команда описание
net.probe on Запустить зонд.
net.probe off Остановить зонд.

Параметры

параметр значение по умолчанию описание
net.probe.throttle 10 Если больше, чем 0, пакеты зондирования будут ограничены этим значением в миллисекундах.

net.sniff

Сниффер сетевых пакетов.

Команды

команда описание
net.sniff on Запустить сниффер пакетов.
net.sniff off Остановить сниффер пакетов.
net.sniff stats Напечатать конфигурацию и статистику сессии снифера пакетов.

Параметры

параметр значение по умолчанию описание
net.sniff.output Если установлено, сниффер запишет захваченные пакеты в файл pcap.
net.sniff.source Если установлено, сниффер считает этот pcap файл вместо текущего интерфейса.
net.sniff.verbose true Если true, каждый захваченных и пропарсенный пакет будет отправлен в поток событий для отображения, в противном случае, там будут только пропарсенные на уровне приложений (sni, http, и т.д.).
net.sniff.local false Если true, то будут учитываться только пакеты с/на этот компьютер, другие будут пропущены.
net.sniff.filter not arp BPF фильтр для сниффера. https://biot.com/capstats/bpf.html
net.sniff.regexp Если установлено, будут рассматриваться только пакеты с полезной нагрузкой, соответствующей регулярному выражению.

Примеры

Каплет local-sniffer.cap будет сниффить, парсить и печатать все пакеты на локальной машине:

В каплете wpa_handshake.cap сниффер используется для захвата WPA2 рукопожатия в то время как пользователя деаутентифицирует клиентов:

syn.scan

Модуль для выполнения SYN сканирования портов, обнаруженные октрытые порты записываются как tcp-ports в поле meta рядом с информацией о конечных точках (показывается при выполнении net.show).

Команды

команда описание
syn.scan IP-ДИАПАЗОН НАЧАЛЬНЫЙ-ПОРТ КОНЕЧНЫЙ-ПОРТ? Выполняет syn сканирование портов в отношении IP адреса внутри указанного диапазона портов.

Примеры

Сканировать порты с 1 по 1000 единичного IP:

Сканировать порт 22 нескольких адресов:

Сканировать порты с 1 по 10000 всей подсети:

Модуль отправляет широковещательные Wake On LAN пакеты или на определённый MAC.

Команды

команда описание
wol.eth MAC Отправить WOL как сырой ethernet пакет типа 0x0847 (если MAC не указан, то будет использоваться ff:ff:ff:ff:ff:ff ).
wol.udp MAC Отправить WOL как широковещательный IPv4 пакет на UDP порт 9 (если MAC не указан, то будет использоваться ff:ff:ff:ff:ff:ff ).

arp.spoof

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

Команды

команда описание
arp.spoof on Запустить ARP спуфер.
arp.ban on Запустить ARP спуфер в режиме бана, означает, что подключение для цели(ей) не будет работать.
arp.spoof/ban off Остановить ARP спуфер.

Параметры

параметр значение по умолчанию описание
arp.spoof.targets Разделённый запятой список MAC адресов, IP адресов, диапазонов IP или псевдонимов для спуфинга (список поддерживаемых форматов диапазонов).
arp.spoof.whitelist Разделённый запятой список MAC адресов, IP адресов, диапазонов IP или псевдонимов для пропуска во время спуфинга.

Примеры

Бан 192.168.1.6 адреса от сети:

Спуфить 192.168.1.2, 192.168.1.3 и 192.168.1.4:

dhcp6.spoof

Отвечает на DHCPv6 сообщения, обеспечивая жертвы link-local IPv6 адресмами и настраивая атакующий хост в качестве дефолтного DNS сервера (как описано здесь), должен использоваться совместно с модулем dns.spoof.

Команды

команда описание
dhcp6.spoof on Запустить в фоне DHCPv6 спуфер.
dhcp6.spoof off Остановить в фоне DHCPv6 спуфер.

Параметры

параметр значение по умолчанию описание
dhcp6.spoof.domains microsoft.com, goole.com, facebook.com, apple.com, twitter.com Разделённые запятой значения доменных имён для спуфинга.

Примеры

Следующий каплет mitm6.cap выполняет полную DHCPv6 атаку против загружаемой машины Windows 10:

dns.spoof

Отвечает на DNS сообщения спуфленными (подменёнными) ответами.

Команды

команда описание
dns.spoof on Запустить в фоне DNS спуфер.
dns.spoof off Остановить в фоне DNS спуфер.

Параметры

параметр значение по умолчанию описание
dns.spoof.domains * Разделённые запятой значения доменных имён для спуфинга или * для всех.
dns.spoof.address IP адрес, куда указывать в ответах.
dns.spoof.all false Если true этот модуль будет отвечать на каждый DNS запрос, в противном случае, он будет отвечать только на те, которые нацелены на локальный ПК.

Примеры

Каждый DNS запрос, пришедший с этого компьютера для домена example.com будет преобразован на адрес 1.2.3.4:

packet.proxy

Модуль только для Linux, который полагается на NFQUEUEs чтобы активно фильтровать пакеты, используя нативные плагины Go (плагины для этого модуля могут быть найдены в этом репозитории).

ВАЖНО

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

Команды

команда описание
packet.proxy on Запустить пакетный прокси на основе NFQUEUE.
packet.proxy off Остановить пакетный прокси на основе NFQUEUE.

Параметры

параметр значение по умолчанию описание
packet.proxy.queue.num 0 NFQUEUE номер для создания и привязки.
packet.proxy.chain OUTPUT Название цепи правил iptables.
packet.proxy.rule Дополнительное правило iptables чтобы сделать очередь более селективной (напр. —destination 8.8.8.8 ).
packet.proxy.plugin Файл плагина Go для загрузки и вызова для каждого пакета.

Плагины

Параметр packet.proxy.plugin является обязательным и в него должен быть записан путь разделяемого объекта, собранного как плагин Go и экспортируещий вызов OnPacket примерно так:

Более сложный пример использования библиотеки gopacket для парсинга и дампа всех слоёв пакета:

Этот файл test.go может быть скомпилирован примерно так:

После того, как сгенерирован файл test.so, он может использоваться для параметра packet.proxy.plugin.

tcp.proxy

Транспарентный (прозрачный) TCP прокси, с которым можно использовать модули на скриптах javascript. Если использовать вместе со спуфером, то весь TCP трафик на заданный адрес и порт будет перенаправляться на него и, если нужно, он будет автоматически обрабатывать переадресацию портов.

Команды

команда описание
tcp.proxy on Запуск TCP.
tcp.proxy off Остановка TCP.

Параметры

параметр значение по умолчанию описание
tcp.port 443 TCP порт для перенаправления когда прокси активирован.
tcp.address Обязательный удалённый адрес TCP прокси.
tcp.proxy.port 8443 Порт для привязки на TCP прокси.
tcp.proxy.address Адрес для привязки на TCP прокси.
tcp.proxy.script Путь до скрипта модуля прокси.

tcp.modules

Работа модуля tcp.modules управляется скриптами — javascript файлами, в которых должна быть объявлена по крайней мере одна из следующих функций:

Модули могут изменять буфер данных и возвращать его, сигнализируя модулю о переопределении исходного буфера. Например, каплет tcp-req-dump.cap использует функцию onData для переопределения запросов example.com на порт 80:

Встроенные функции

Модули могут использовать следующие встроенные функции.

функция описание
readFile(«/путь/до/файла») Возвращает содержимое файла как строку.
log(«message») Пишет сообщение в интерактивную сессию (его уровень будет INFO ).
env(«iface.ipv4») Прочитать переменную.
env(«foo», «bar») Установить переменную.

http.proxy

Полнофункциональный транспарентный (прозрачный) HTTP прокси, работой которого можно управлять с помощью скриптов, используя модули javascript. Если использовать совместно со спуфером, весь HTTP трафик будет перенаправляться на него и при необходимости он будет автоматически обрабатывать перенаправление портов.

Команды

команда описание
http.proxy on Запуск HTTP прокси.
http.proxy off Остановка HTTP прокси.

Параметры

параметр значение по умолчанию описание
http.port 80 HTTP порт для редиректа когда прокси активирован.
http.proxy.address Адрес для привязки HTTP прокси.
http.proxy.port 8080 Порт для привязки HTTP прокси.
http.proxy.sslstrip false Включить или отключить снятие SSL.
http.proxy.script Путь до скрипта модуля прокси.

https.proxy

Полнофункциональный транспарентный (прозрачный) HTTPS прокси, работой которого можно управлять модулями на javascript, он на лету автоматически генерирует сертификаты. Если используется вместе со спуфером, весь HTTPS будет перенаправляться на него и при необходимости он будет автоматически управлять редиректами портов.

Команды

команда описание
https.proxy on Запустить HTTPS прокси.
https.proxy off Остановить HTTPS прокси.

Параметры

/.bettercap-ca.cert.pem

/.bettercap-ca.key.pem

параметр значение по умолчанию описание
https.port 443 HTTP порт для редиректа когда прокси активирован.
https.proxy.address Адрес для привязки HTTP прокси.
https.proxy.port 8083 Порт для привязки HTTP прокси.
https.proxy.certificate HTTPS proxy certification authority TLS certificate file.
https.proxy.key HTTPS proxy certification authority TLS key file.
https.proxy.sslstrip false Включить или отключить снятие SSL.
https.proxy.script Путь до скрипта модуля прокси.

http.modules

Модули http.proxy и https.proxy могут управляться скриптами с использованием javascript файлов, который должны объявлять по крайней мере одну из следующих функций:

Модули могут изменять объекты req запроса и res ответа, например, каплет web-override.cap использует функцию onRequest чтобы переписать каждый запрос перед его выполнением с фальшивым ответом:

Каплет login-man-abuse.cap использует обработчик onResponse для внедрения вредоносного файла javascript в каждый html ответ:

Встроенные функции

Модули могут использовать следующие встроенные функции.

функция описание
readFile(«/путь/до/файла») Возвращает содержимое файла как строку.
writeFile(«/путь/до/файла», «hello world») Записывает строку hello world в файл, возвращает null или сообщение об ошибке.
log_debug(«сообщение») Записать сообщение в интерактивную сессию (его уровень будет DEBUG ).
log_info(«сообщение») Записать сообщение в интерактивную сессию (его уровень будет INFO ).
log_warn(«сообщение») Записать сообщение в интерактивную сессию (его уровень будет WARNING ).
log_error(«сообщение») Записать сообщение в интерактивную сессию (его уровень будет ERROR ).
log_fatal(«сообщение») Записать сообщение в интерактивную сессию (его уровень будет FATAL ).
log(«сообщение») Сокращение для log_info(«сообщение») .
btoa(«сообщение») Кодировать сообщение в base64.
atob(«bWVzc2FnZQ==») Декодировать сообщение из base64.
env(«iface.ipv4») Считать переменную.
env(«foo», «bar») Установить переменную.

http.server

Простой HTTP сервер, работает как другие веб-сервера: по запросу пользователя отдаёт файлы и скрипты.

Команды

команда описание
http.server on Запуск в фоне HTTP сервера.
http.server off Остановка в фоне HTTP сервера.

Параметры

параметр значение по умолчанию описание
http.server.path . Папка сервера.
http.server.address Адрес для привязки http сервера.
http.server.port 80 Порт для привязки http сервера.
http.server.certificate Файл сертификата TLS, если не является пустым, сконфигурирует этот веб-сервер как HTTPS сервер (автоматически сгенеририрует, если значение заполнено, но этот файл не существует.
http.server.key Файл ключа TLS, если не является пустым, сконфигурирует этот веб-сервер как HTTPS сервер (автоматически сгенеририрует, если значение заполнено, но этот файл не существует.

Примеры

Команда для запуска веб-сервера, корневой папкой веб-сайтов является /var/www/html:

mac.changer

Меняет mac адрес выбранного интерфейса.

Команды

команда описание
mac.changer on Запустить модуль изменения mac.
mac.changer off Остановить модуль изменения mac и восстановить оригинальный mac адрес.

Параметры

параметр значение по умолчанию описание
mac.changer.iface Имя интерфейса для использования.
mac.changer.address Аппаратный адрес, который будет применён к интерфейсу.

Модуль, общающийся с апаратурой GPS на последовательном интерфейсе.

Команды

команда описание
gps on Запустить получение данных с аппаратуры GPS.
gps off Остановить получение данных с аппаратуры GPS.
gps.show Показать последние координаты, возвращённые GPS аппаратурой.

Параметры

параметр значение по умолчанию описание
gps.device /dev/ttyUSB0 Последовательное устройство GPS.
gps.baudrate 19200 Скорость передачи данных последовательного устройства GPS.

Примеры

Включить GPS, подождать 5 секунд и затем показать текущие координаты:

Примеры запуска bettercap

Программа должна запускаться с правами суперпользователя:

Далее команды вводятся в интерактивном режиме.

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

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

Установка bettercap

Установка в Kali Linux

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Источник

Читайте также:  Что такое pid процесса linux
Оцените статью