
асинхронный инструмент перечисления целей
:mag: асинхронный инструмент для перечисления целей :mag_right:
bscan — это утилита командной строки для активного сбора информации и перечисления служб. По сути, bscan асинхронно запускает процессы известных сканирующих утилит, преобразуя результаты сканирования в выделенный консольный вывод и хорошо структурированный каталог файлов.
bscan предназначен только для образовательных целей и таких мероприятий, как CTF, и никогда не должен запускаться на машинах и/или сетях без явного предварительного согласия. Этот код выпущен под лицензией MIT.
bscan был написан для работы в Kali Linux, но в принципе ничто не мешает его запуску в любой ОС с установленными соответствующими инструментами. Существует несколько различных типов пакетов и способов их установки.
Самый простой способ начать работу — скачать подходящий однофайловый исполняемый файл программы для вашей операционной системы (установка Python не требуется):
# на Linux (например, Kali)
wget -O bscan https://releases.brianwel.ch/bscan/linux
# на Windows
powershell -c "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget 'https://releases.brianwel.ch/bscan/windows' -OutFile 'bscan.exe'"
# чтобы загрузить конкретную версию, используйте следующий шаблон
wget -O bscan https://releases.brianwel.ch/github/bscan/linux/0.1.4
Вы также можете загрузить последнюю собранную версию из PyPI (обратите внимание, что для этого требуется существующая установка Python 3.6+):
pip install bscan
Аналогично, вы можете получить самую свежую версию из системы контроля версий:
pip install https://github.com/welchbj/bscan/archive/master.tar.gz
bscan имеет множество параметров конфигурации, которые можно использовать для настройки сканирования под ваши нужды. Вот краткий пример:
$ 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 задаёт шаблоны regex, которые будут подсвечиваться в консольном выводе при совпадении с результатами сканированияrequired-programs.txt перечисляет установленные программы, которые планирует использовать bscanport-scans.toml определяет сканирования для обнаружения портов, выполняемые для целевого хоста (целевых хостов), а также регулярные выражения для извлечения номеров портов и имён служб из вывода сканированияservice-scans.toml определяет сканирования, выполняемые для целевого хоста (целевых хостов) отдельно для каждой службыВот что вы должны увидеть при выполнении bscan --help:
usage: bscan [OPTIONS] targets
_
| |__ ___ ___ __ _ _ __
| '_ \/ __|/ __/ _` | '_ \
| |_) \__ \ (__ (_| | | | |
|_.__/|___/\___\__,_|_| |_|
an asynchronous service enumeration tool
positional arguments:
targets the targets and/or networks on which to perform enumeration
optional arguments:
-h, --help show this help message and exit
--brute-pass-list F filename of password list to use for brute-forcing
--brute-user-list F filename of user list to use for brute-forcing
--cmd-print-width I the maximum integer number of characters allowed when printing
the command used to spawn a running subprocess (defaults to 80)
--config-dir D the base directory from which to load the configuration files;
required configuration files missing from this directory will
instead be loaded from the default files shipped with this
program
--hard force overwrite of existing directories
--max-concurrency I maximum integer number of subprocesses permitted to be running
concurrently (defaults to 20)
--no-program-check disable checking the presence of required system programs
--no-file-check disable checking the presence of files such as configured
wordlists
--no-service-scans disable running scans on discovered services
--output-dir D the base directory in which to write output files
--patterns [ [ ...]] regex patterns to highlight in output text
--ping-sweep enable ping sweep filtering of hosts from a network range
before running more intensive scans
--quick-only whether to only run the quick scan (and not include the
thorough scan over all ports)
--qs-method S the method for performing the initial TCP port scan; must
correspond to a configured port scan
--status-interval I integer number of seconds to pause in between printing status
updates; a non-positive value disables updates (defaults to 30)
--ts-method S the method for performing the thorough TCP port scan; must
correspond to a configured port scan
--udp whether to run UDP scans
--udp-method S the method for performing the UDP port scan; must correspond
to a configured port scan
--verbose-status whether to print verbose runtime status updates, based on
frequency specified by `--status-interval` flag
--version program version
--web-word-list F the wordlist to use for scans