• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Установка Golang и Bettercap в Linux

Приветствие

Приветствую всех читателей Codeby!

Сегодня мы поговорим об установке замечательного инструмента Bettercap в среду linux, хотя на борту Kali уже и присутствует bettercap, но так уж повелось что после нескольких лагов того или иного инструмента, возникает мысль об переустановке (в основном с gitlab) "лагающего" инструмента. Просто на мой взгляд проще установить, чем ковырять и исправлять какие либо погрешности в уже установленном(Хотя парой всё происходит как раз наоборот, но не в этом случае!).

Предисловие

Честно говоря уже написал и хотел было опубликовать небольшую статью об установке G0lang в Kali linux, как в поиске сразу же отобразился подобный пост, но так как я уже потратил немного своего времени, а выкладывать на других ресурсах не хочется, решил немного изменить статью об установке bettercap просто дополнив её ещё и установкой языка программирования Go. Тем более расписывал установку go в kali как раз специально для последующего топика об установке Bettercap.

Итак начнём пожалуй.

Установка GO в Kali linux

GO - Он же Golang, это компилируемый, многопоточный, язык программирования от супер гиганта Google.
Помню когда только пошёл слух о скором выходе этого языка в свет, собирался его изучить и дальше использовать его как основной язык программирования в своих проектах(почему то мне так его расписали, практически убедили что это просто супер быстрый и очень простой язык программирования, при этом практически ни чем не уступающий таким языкам как C++/C#.), но жизнь так повернулась, что это направление ушло в стадию хобби и об серьёзном изучение каких либо языков программирования, пришлось просто забыть.

Для установки GO в систему Linux необходимо скачать архив с языком на текущий момент актуальная стабильная версия .
Скачиваем архив куда угодно, открываем терминал, переходим в директорию с скаченным архивом и распаковываем в "/usr/local", так что бы в конечном результате GO оказался в "/usr/local/go".
К примеру скачиваем браузером этот архив в папку "Загрузки" (/root/Загрузки), открываем терминал и переходим в нужную директорию и распаковываем:
Код:
cd /root/Загрузки
tar -C /usr/local -xzf go*.tar.gz
Конечно название архива может изменится и поэтому название архива меняем на "go*.tar.gz", если у вас в этой же директории не будет схожих по имени архивов, то проблем не возникнет.
Теперь необходимо определить среды в .bashrc (находится он /root/.bashrc), проще всего его открыть любым блокнотом и в конец файла добавить необходимые переменные, для скорости в уже открытом окне терминала набираем:
Код:
leafpad /root/.bashrc
В самый конец файла добавляем:
Код:
export GOROOT=/usr/local/go
export PATH=${GOROOT}/bin:${PATH}
export GOPATH=${HOME}/gopath
export PATH=${GOPATH}/bin:${PATH}
Теперь необходимо указать новые определения в env var, всё в том же открытом окне терминала набираем:
Код:
source ~/.bashrc
Проверим установку:
Код:
go version
Если всё сделано верно, то должна отобразится версия установленного GO.

img_go1.png


Установка завершена!

Можно не много потестить сам язык, на официальном сайте предлагают попробовать скомпилировать небольшой сценарий:
Код:
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}
Создайте где нибудь директорию с любым именем, что бы было ещё проще, создайте в корне директории root директорию с именем go-workspace,эта директория в дальнейшем вам пригодится для тестов с языком go, конечно если же он вас заинтересует.
В этой директории создайте текстовый файл с именем "hello.go" и добавьте код который вы видите выше, сохраните и откройте терминал в директории где располагается созданный файл (/root/go-workspace).
Далее пробуем скомпилировать и запустить:
Код:
go run hello.go # Просто запустит сценарий без компиляции.
go build hello.go
./hello
Если всё сделано правильно, то должен получится следующий вывод:

img_go2.png


Немного полезных источников по Go

Хочу не много долнить информацией полезных ресурсов для языка GO, вдруг кого нибудь заинтересует, или же возможно уже заинтересовал этот язык программирования.
И так:
  • Русский форум -
  • Введение в программирование на Go -
  • Первый русскоязычный сайт по Go -
  • Ветка на форуме Cyberforum -
  • Go в примерах на русском -
  • Очень подробно и доступно расписано -
Англоязычные ресурсы:
  • Официальный сайт -
  • Примеры на Go -
  • Мануалы на Dot Net Perls -
  • Бесплатные видеоуроки GopherCasts -
  • Маны по database/sql
  • Серверное программирование на Go - golang/go
  • Сетевое программирование на Go -
  • Большая коллекция готовых библиотек -
На самом деле ресурсов не мало, но и не так много, хотя язык уже довольно таки развит и имеет некоторую популярность среди программистов, хотя многие и недооценивают этот язык программирования.

Обновлённая Bettercap 2.x

img2.png


Выпуск второго поколения Bettercap, полностью изменил отношение к этому мощному инструменту, который в свою очередь ранее использовался в основном для атак MITM.Теперь это совершенно иной инструмент с уже более расширенным функционалом и совершенно другим управлением.Раньше Bettercap запускался с определёнными опциями, теперь bettercap имеет интерактивный режим управление, что полностью изменило управление этим инструментом.Bettercap был полностью переписан с Ruby на Go, что должно по идеи отразилось на скорости и производительности программы.
Так же в связи с изменениеми управление более гибким.Теперь это не просто снифер с опциями arp спуфинга, bettercap в состояние управлять HTTP,HTTPS, и TCP трафиком, в реальном времени, есть возможность мониторинга WIFI сетей, так же прикручена возможность атаки на BLE, ну и т.д.
В общем инструмент новый, управление совершенно иное и просто необходима свежая информация по укрощению полезного инструмента.

Список возможностей:
  • Полнодуплексный и полудуплексный спуфинг ARP
  • Спуфинг ICMP/DNS/арифметического процессора
  • Модульный HTTP и HTTPS прозрачный прокси с поддержкой пользовательских плагинов
  • Снифинг учетных данных в реальном времени для протоколов, таких как HTTP (S) POSTed данные, Стандартная аутентификация и Дайджест-аутентификация, FTP, IRC, POP, IMAP, SMTP, NTLM (HTTP, SMB, LDAP, и т.д.)
  • Полностью настраиваемый сниффер
  • Модульный HTTP/HTTPS проксирует для обеспечения инъекции пользовательского HTML, JS, кода CSS или URL
  • мониторинг WiFi и BLE
  • мониторинг сети
  • SSLStripping с обходом HSTS.
  • Поддержка caplets — каплетов, скрипты позволяющие автоматизировать сложные атаки.
  • MITM атаки с расширенными возможностями, такими как DNS спуфинг и обход HTTPS. и т.д.
Установка Bettercap 2.x в Linux системы на основе Debian

У нас уже установлен Golang, так что установка bettercap не должна быть проблемной, но до начала всех действий нужно удалить уже установленный bettercap:
Код:
apt-get remove bettercap
Далее как обычно в первую очередь необходимо установить зависимости:
Код:
apt-get install libpcap-dev libnetfilter-queue-dev
Далее официальный источник предлагает скачать bettercap с gitlab используя golang, далее перейти в рабочую директорию, там скомпилировать и установить bettercap из исходников:
Код:
go get github.com/bettercap/bettercap
cd $GOPATH/src/github.com/bettercap/bettercap
make build && sudo make install
Для удобства рекомендую добавить жесткую ссылку в /usr/local:
Код:
cd /usr/local/
ln -s /gopath/src/github.com/bettercap/bettercap/./bettercap
Bettercap установлен, для просмотра доступных опций и модулей необходимо набрать help:
Код:
help MODULE : List available commands or show module specific help if no module name is provided.
  active : Show information about active modules.
  quit : Close the session and exit.
  sleep SECONDS : Sleep for the given amount of seconds.
get NAME : Get the value of variable NAME, use * alone for all, or NAME* as a wildcard.
  set NAME VALUE : Set the VALUE of variable NAME.
  read VARIABLE PROMPT : Show a PROMPT to ask the user for input that will be saved inside VARIABLE.
  clear : Clear the screen.
  include CAPLET : Load and run this caplet in the current session.
  ! COMMAND : Execute a shell command and print its output.
alias MAC NAME : Assign an alias to a given endpoint given its MAC address.
  • help MODULE : Модуль справки, перечислит доступные команды или покажет справку определенному модулю.

    Код:
    help net.sniff
    img3.png

  • active: Выводит информацию об активных модулях.
  • quit: Закройте сеанс и выход.
  • sleep SECONDS: Сон на указанное количество секунд.
  • get NAME: Получите значение имени переменной, используйте * один для всех или ИМЕНИ* как подстановочный знак.
    Код:
    get net.sniff*
    img4.png

  • set NAME VALUE : Установить значение переменной.
    Код:
    set net.sniff.local true
  • read VARIABLE PROMPT: Показать запрос для того что бы ввести данные которые будут сохранены внутри переменной.
    Код:
    read set net.sniff.local
  • clear: Очистит экран.
  • include CAPLET: Загрузит и выполнит этот caplet на текущей сессии.
    Код:
    include /example.cap
  • ! COMMAND: Выполнит команду оболочки и распечатайте ее вывод.
    Код:
    !iwconfig
  • alias MAC NAME : Присвоит псевдоним данной конечной точке, учитывая ее MAC-адрес.
    Код:
    alias 00:11:bc:22:fd:00 AccessName

    Установка Caplets Bettercap

    Caplets - Каплеты это что то вроде rc файлов для Metasploita,то есть это сценарий команд которые будут выполнятся при обращение к этому каплету.Каплеты просто необходимы для использования bettercap, конечно можно обойтись и без них, но с ними управление bettercap куда быстрее и удобней.
    Устанавливаются они так же с gitlab:
    Код:
    git clone https://github.com/bettercap/caplets.git
    cd caplets
    sudo make install
    Немного о caplets

    Каплеты очень удобны и при умном походе увеличат скорость работы в разы, согласитесь в некоторых случаях важны доли секунд, а тут есть возможность вместо пяти команд ввести всего одну.
    Давайте посмотрим какие каплеты у нас появили и в каких директориях они находятся, давайте получим справку какие операнды у нас есть над каплетами в bettercap, для этого в уже запущеном bettercap вводим:
    Код:
    help caplets
    img5.png
    • caplets.show : Покажет список всех установленных caplets.
    • caplets.paths : Покажет список директорий где будет искать caplets.
    • caplets.update : Установит\обновит каплеты.
  • Теперь в запущенном Bettercap посмотрим в каких директориях bettercap ищет caplets:
    Код:
    caplets.paths

    img6.png


    Давайте создадим каплет к примеру "Прозрачного прокси", для этого нужно создать текстовый файл с любым удобным для вас именем и расширением .cap, далее в него впишем следующий сценарий:
    Код:
    set http.proxy.sslstrip true
    set net.sniff.verbose false
    set arp.spoof.targets $0
    arp.spoof on
    http.proxy on
    net.sniff on
    • set http.proxy.sslstrip true - Включает снятие SSL.
    • set net.sniff.verbose false - Отображать пакеты только пропарсиные на уровне приложений (http/email/ftp...).
    • set arp.spoof.targets $0 - "$0" Будет изменено на указанный нами ip\mac адрес, можно указать список разделяя запятой или подсетку ip адресов.
    • arp.spoof on - Запускает спуфинг.
    • http.proxy on - Запускает прокси сервер.
    • net.sniff on - Запускает снифинг.
  • К примеру назовём его "transparent-proxy.cap", его необходимо поместить в одну из тех директорий которые показал нам bettercap, наверное будет удобней создать директорию caplets в корне директории root, то есть новые каплеты можно будет класть в "/root/caplets".
    $0 - Будет изменятся на то значение которые мы укажем в команде запуска, в следующих темах мы более подробно остановимся на уже предлагаемых каплетах и более подробно рассмотрим их создание.
    Теперь давайте создадим ещё один каплеты который будет выключать этот прокси, создаём ещё один текстовый файл, называем его "transparent-proxy-stop.cap", открываем и добавляем в него следующий сценарий:
    Код:
    set http.proxy.sslstrip false
    set net.sniff.verbose true
    arp.spoof off
    http.proxy off
    net.sniff off
    • set http.proxy.sslstrip false - Выключает снятие SSL, просто меняем на исходное значение.
    • set net.sniff.verbose true - Отображать каждый пакет который только будет захвачен, просто меняем на исходное значение.
    • arp.spoof off - Останавливает спуфинг.
    • http.proxy off - Останавливает прокси сервер.
    • net.sniff off - Останавливает снифинг.
  • Первый каплет запускается с указанием MAC/ip адреса, или подсети.Можно указывать множество целей разделяя их запятой.
    В bettercap вводим:
    Код:
    transparent-proxy 192.168.0.13
    img7.png


    192.168.0.13 - IP адрес для которого будет использоваться прозрачный прокси.
    Прокси запущен, всё работает, теперь для его остановки используем второй созданный каплет:
    Код:
    transparent-proxy-stop
    img8.png


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

    Заключение

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

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

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
красніе глаза - собираю компиляю, дебушка моя, о тебе одной мечтаю...))
 

Badmonstr

New member
12.04.2018
1
0
BIT
0
супер, жду продолжения с нетерпением!!! автору респект
 

duolinfurga

New member
18.10.2019
3
0
BIT
0
Почему ты говоришь качать Go, если проще аптом инстал произвести...
P.S. Спасибо
 

vsdh00

New member
20.01.2020
3
0
BIT
0
Добрый,при использовании bettercap получаю ошибки следующего содержания
Код:
[sys.log] [war] wifi could not set interface wlan1 txpower to 30, 'Set Tx Power' requests not supported
[sys.log] [err] error while activating handle: unknown activated error: -1
Что я делал,какие команды выполнял,переустанавливал bettercap,пофиксил TxPower,команда
Код:
iw dev
показывает что мощность увеличилась,но эти ошибки не уходят.Последовательность моих действий такова
Код:
sudo airmon-ng check kill
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo iw wlan0 set txpower fixed 3000
sudo ip link set wlan0 up
sudo bettercap -iface wlan1
wifi.recon on
после чего сразу упираюсь в ошибки.
Как решить данную проблему?Спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!