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

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

@webware

t.me/webware

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


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


Предисловие

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


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


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

GO - Он же Golang, это компилируемый, многопоточный, язык программирования от супер гиганта Google.

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


Для установки GO в систему Linux необходимо скачать архив с языком Downloads - The Go Programming Language на текущий момент актуальная стабильная версия https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz.

Скачиваем архив куда угодно, открываем терминал, переходим в директорию с скаченным архивом и распаковываем в "/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.

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


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

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

Если всё сделано правильно, то должен получится следующий вывод:

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


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

И так:

Англоязычные ресурсы:

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


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

Выпуск второго поколения 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
  • active: Выводит информацию об активных модулях.
  • quit: Закройте сеанс и выход.
  • sleep SECONDS: Сон на указанное количество секунд.
  • get NAME: Получите значение имени переменной, используйте * один для всех или ИМЕНИ* как подстановочный знак.
get net.sniff*
  • 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
  • caplets.show : Покажет список всех установленных caplets.
  • caplets.paths : Покажет список директорий где будет искать caplets.
  • caplets.update : Установит\обновит каплеты.

Теперь в запущенном Bettercap посмотрим в каких директориях bettercap ищет caplets:

caplets.paths

Давайте создадим каплет к примеру "Прозрачного прокси", для этого нужно создать текстовый файл с любым удобным для вас именем и расширением .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

192.168.0.13 - IP адрес для которого будет использоваться прозрачный прокси.

Прокси запущен, всё работает, теперь для его остановки используем второй созданный каплет:

transparent-proxy-stop

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


Заключение

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


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

Источник codeby.net

Report Page