BadKarma это набор инструментов на python3 с графическим интерфейсом GTK+ для ассистирования тестерам на проникновения во время всех фаз активности при тестировании на проникновение сетевой инфраструктуры. Он позволяет тестерам сберечь время, собрав их инструменты в одном месте и сделав их доступными по одному щелчку мыши. Запускайте их по одной цели или сразу по нескольким, и взаимодействуйте с инструментами через упрощённый графический интерфейс или терминалы.
Ведётся журнал вывода каждой задачи в файле сессии, чтобы помочь во время стадии составления отчёта или в сценарии возможного реагирования на инциденты. Также имеется переключатель на proxychains, который позволит все действия делать через прокси. И, наконец, каждая команда может быть подправлена перед выполнением, для этого снимите галочку с "auto-execute".
Домашняя страница: https://github.com/r3vn/badKarma
Справка по badKarma
Использование:
badkarma.py [-h] [--session SESSION]
Опциональные аргументы:
-h, --help показать справку и выйти
--session SESSION открыть файл сессии
Руководство по badKarma
Страница man отсутствует.
Файл сессии
Файл сессии это просто sqlite база данных, он содержит всю информацию, собранную во время активности. Он обновляется в режиме реального времени. Может быть экспортирован или/и импортирован в графическом интерфейсе badKarma. По умолчанию эта база данных размещена внутри директории "/tmp", это означает, что вы должны пересохранить его в другое место перед перезагрузкой компьютера.
Внутри базы данных четы таблицы: hosts, ports, activity_log и notes (хосты, порты, журнал активности и примечания).
Цели
Можно добавить цели и сканировать их с помощью nmap и/или masscan из графического интерфейса. В нём по умолчанию уже доступно несколько профилей сканирования. Из главного меню можно импортировать результаты сканирований в формате XML.
Имеется также скрипт, который использует API shodan (smap.py), он позволяет тестеру импортировать данные о цели напрямую из shodan. Этот скрипт размещён внутри директории scripts и для его работы требуется api ключ shodan, который нужно записать в файл conf/shodan.conf.
По умолчанию все выводы сканирований сохраняются в директории "/tmp", затем вывод импортируется в файл сессии и удаляется.
Расширения
badKarma является модульной программой, расширения полностью интерактивны и они позволяют тестеру на проникновения тонко настроить опции задач, поскольку вывод журналируется в файле сессии, их вывод может экспортироваться в сыром текстовом формате во вкладке "Logs".
Расширения находятся в директории "extension", они отсортированы по двум категориям: importers and workspace. Расширения importers работают с файлами вывода, получаемыми от инструментов, парсят их и импортируют результаты в файл сессии.
Доступные в настоящее время расширения workspac следующие:
Shell: это главный модуль набора инструментов, поскольку он помогает тестеру выполнять предварительно настроенные шелл задачи. Команды оболочки расположены в директории "conf".
Bruter: как можно понять из имени, это расширение для брут-форса. Он позволяет тестеру отправлять цель напрямую в Hydra и настраивает параметры через графический интерфейс. Стандартные параметры Hydra могут быть изменены в conf/bruter.conf.
Screenshot: это расширение позволяет тестеру делать скриншоты возможных http,rdp,rtsp,vnc и x11 серверов, скриншоты будут сохранены в файле сессии в виде строки в кодировке base64 и могут быть показаны из badKarma.
WebSession: быстрый и готовый к использованию веб-просмоторщик, который следует за mitmproxy, он позволяет исследовать целевой веб-сайт и читать, редактировать и повторно отправлять HTTP запросы. Также доступны некоторые популярные полезные нагрузки, просто кликните на полезную нагрузку для копирования её в буфер обмена. Поскольку полные дампы являются слишком большими для импорта внутрь файла сессии, импортируется только стандартный вывод mitmdum.
Browser: просто "открыть в браузере" пункт меню для http, используйте его как пример для построения своих собственных расширений.
Примеры запуска badKarma
Добавьте цель для сканирования:
По результатам сканирования будет составлен список запущенных сетевых сервисов на хосте:
Кликайте правой кнопкой мыши по интересующим вас сервисам и выбирайте желаемое действие:
Установка badKarma
Установка в Kali Linux
sudo apt install python3-pip python3-gi phantomjs mitmproxy ffmpeg gir1.2-gtk-vnc-2.0 gir1.2-gtksource-3.0 gir1.2-vte-2.91 gir1.2-osmgpsmap-1.0 gir1.2-webkit2-4.0 knockpy ncat gobuster
git clone https://github.com/r3vn/badKarma.git
cd badKarma
sudo pip3 install -r requirements.txt
chmod +x badkarma.py
./badkarma.py
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S badkarma gobject-introspection python-gobject osm-gps-map
cd /usr/share/badkarma/
sudo pip3 install -r requirements.txt
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты badKarma
Брут-форс SSH:
Поиск уязвимостей для определённой версии веб-сервера, запущенного на исследуемом хосте:
Инструкции по badKarma
Поиск уязвимостей на хосте (хостом может быть веб-сайт, веб-сервер, сетевое устройство (роутер и другие), компьютер конечного пользователя) начинается со сбора базовой информации. Эта информация включает в себя обнаружение хостов (если мы исследуем подсеть), сканирование их портов для поиска открытых, определение запущенных служб на этих портах, определение версий служб и поиск уязвимостей для данных версий, проверка на использование слабых паролей (брут-форс), запуск дополнительных сканирований различными инструментами, в зависимости от обнаруженных сетевых служб.
Обычно это довольно типичный набор действий, который варьирует от обнаруженных на хосте запущенных сетевых служб. Поэтому уже есть разные инструменты автоматизации, которые могут просканировать диапазон сети и, например, запустить брут-форс найденных служб.
Я хочу рассказать об ещё одном инструменте — это badKarma.
У этой программы графический интерфейс, в котором достаточно кликать мышкой — вводить команды необязательно (хотя их можно подправить для тонкой настройки).
Как установить badKarma
Установить badKarma очень просто. Но дело в том, что это всего лишь графическая оболочка для запуска инструментов. То есть вам нужно установить все инструменты, которые программа использует. Поэтому я рекомендую работать с badKarma в Kali Linux, в которой (почти) всё необходимое уже присутствует.
Для установки badKarma в Kali Linux выполните команды:
sudo apt install python3-pip python3-gi phantomjs mitmproxy ffmpeg gir1.2-gtk-vnc-2.0 gir1.2-gtksource-3.0 gir1.2-vte-2.91 gir1.2-osmgpsmap-1.0 gir1.2-webkit2-4.0 knockpy ncat gobuster
git clone https://github.com/r3vn/badKarma.git
cd badKarma
sudo pip3 install -r requirements.txt
chmod +x badkarma.py
./badkarma.py
Как пользоваться badKarma
Начните с того, что введите цель. Можно указать адрес сайта, IP адрес или диапазон IP адресов:
Также можно выбрать профиль сканирования. Доступны следующие варианты:
nmap_default — обычное сканирование с помощью Nmap,
nmap_intense_scan — интенсивное сканирование с Nmap, используются опции -T4 -A -v -oX
nmap_intense_scan_all_tcp — интенсивное сканирование всех TCP портов с Nmap, используются опции -p 1-65535 -T4 -A -v -oX
nmap_intense_scan_no_ping — интенсивное сканирование с Nmap без проверки, доступен ли хост (без пинга), используются опции -T4 -A -v -Pn -oX
masscan_full_tcp — полное сканирование с помощью Masscan, используются опции -p0-65535 --rate 10000 --banner
get-from-shodan — не проводить сканирование, а получить данные из shodan. Чтобы это работало, вы должны предварительно указать свой API ключ от shodan. В Kali Linux API ключ от shodan нужно прописать в файле ~/bin/badKarma/conf/shodan.conf. А в BlackArch API ключ от shodan нужно прописать в файле /usr/share/badkarma/conf/shodan.conf
Я в качестве цели добавлю локальную сеть, через которую выхожу в Интернет: 192.168.50.0/24
Результаты сканирования будут представлены в виде списка доступных хостов:
Если кликнуть на хост, то будут показаны открытые порты и запущенные сетевые службы:
Под списком запущенных служб располагается другая дополнительная информация (если она собрана) об операционной системе, расположении, MAC-адрес и прочее:
Теперь у нас два варианта: можно продолжить исследовать хост в целом, либо сосредоточится на его отдельных службах. Для просмотра доступных опций по работе с хостом, кликните на нём правой кнопкой мыши:
Там доступны различные виды сканирования с помощью Nmap, разные опции для поиска субдоменов, исследования DNS записей и другие способы получения информации по хосту.
Кликая правой кнопкой по запущенным на хосте службам, можно увидеть доступные для них действия:
Например, для SSH можно запустить брут-форс:
Можно запустить поиск эксплойтов с помощью nmap, searchsploit или sploitus:
В этом случае будет определён точный номер версии службы (если это не было сделано ранее) и для неё будет выполнен поиск эксплойтов по популярным базам данных.
Особенно много разных опций для веб-служб:
Вы можете сделать скриншот, клонировать страницу, провести сканирование популярными программами для поиска уязвимостей, запустить поиск пользователей, хостов, директорий, субдоменов и прочего,
имеется WebSession (работает с mitmproxy):
Получаемые во время работы данные не просто выводятся на экран, но и сохраняются в файле сессии /tmp/badkarma.sqlite. Если вы хотите сохранить этот файл, то после завершения работы обязательно скопируйте его в безопасное место, так как папка /tmp автоматически очищается при каждой перезагрузке компьютера.
Также вы можете сохранить проект и загрузить ранее сохранённый проект.
Заключение
badKarma в целом интересная программа-ассистент, с помощью которой можно быстрее выполнять рутинные действия и держать полученные результаты в одном месте, удобном для визуального восприятия.
Программа находится в стадии активной разработки. В целом большая часть функционала работает, хотя некоторые команды не запускались из-за неправильно используемых опций, некоторые из-за их отсутствия в системе — даже в Kali Linux. Какие-то необходимые утилиты можно установить из стандартных репозиториев, но некоторые (например, dirsearch и WAFW00F) там отсутствуют и нужно самостоятельно их правильно установить (так, чтобы они были доступны для вызова по имени программы, а не по указанию пути до файла).
Удобно, что программа централизованно сохраняет полученные результаты.
Как можно понять при работе с программой, набор операций для каждой службы подбирается интеллектуально, в зависимости от вида службы. Если в этом списке не хватает какого-то вашего любимого инструмента, то это не является проблемой: badKarma является модульной программой и вы можете добавить свой собственный модуль.
@gslll, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:
Удачный пост!
@fomka лотерейный бот. Раз в 36 минут разыгрывается апвот с силой 100к. Лотерейный билетик актуально стоит 0.5 GOLOS и может принести до 2.5 GOLOS вознаграждения.
Переводите стоимость билетика @fomka и участвуйте в розыгрыше.
Дополнительно разыгрывается джекпот в размере 0.200 GOLOS.