
Асинхронный сканер для разведки и поиска уязвимостей. Запускает все инструменты на всех хостах.
celerystalk помогает автоматизировать процесс сканирования/перечисления сети с помощью асинхронных заданий (также называемых задачами), сохраняя при этом полный контроль над тем, какие инструменты вы хотите запускать.

Интерактивная демонстрация: Режим Bug Bounty (HackerOne)
Интерактивная демонстрация: Режим оценки уязвимостей / PenTest (архивные машины HackTheBox.eu)
| Фаза | Команда | Примеры используемых инструментов |
|---|---|---|
| DNS-разведка/перечисление | ./celerystalk subdomains -d domain1,domain2 | Amass, sublist3r |
| Определение области, импорт nmap/nessus | ./celerystalk import [scan_data,scope_files,etc.] | celerystalk |
| Сканирование портов | ./celerystalk nmap | nmap |
| Перечисление каталогов и файлов, выявление уязвимостей | ./celerystalk scan | Gobuster, Nikto, Photon, sqlmap, wpscan, hydra, medusa, wappalyzer, whatweb, и др. |
| Снимки экрана | ./celerystalk sceenshots | Aquatone |
| Анализ | ./celerystalk report | celerystalk |
celerystalk это:
Вы должны устанавливать и запускать celerystalk с правами root``` git clone https://github.com/sethsec/celerystalk.git cd celerystalk/setup ./install.sh cd .. ./celerystalk -h
## Использование Docker-контейнера из Docker Hub```
docker pull sethsec/celerystalk:latest
docker run -p 27007:27007 -ti celerystalk
docker build -t celerystalk https://github.com/sethsec/celerystalk.git docker run -p 27007:27007 -ti celerystalk
## Использование celerystalk - Основы
### [URL Mode] - Как сканировать URL (или несколько URL в файле)
#### Запустить все включенные инструменты против URL или нескольких URL в файле без необходимости импортировать scope, nmap и т.д.```
# ./celerystalk scan -u url or filename # Run all enabled commands against specified url(s)
# ./celerystalk query watch (then Ctrl+c) # Wait for scans to finish
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
#### Или импортируйте список хостов, которые находятся в области охвата, и позвольте celerystalk запустить nmap за вас```
# ./celerystalk import -S scope.txt # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk nmap # Nmap all in-scope hosts (reads options from config.ini)
## Расширенное использование: Режим Bug Bounty против режима оценки уязвимостей
Вы определяете режим при создании рабочего пространства. Рабочее пространство по умолчанию — режим VAPT, но у вас есть два варианта для вручную созданных рабочих пространств.
* Если вы начинаете с IP-адресов/диапазонов/CIDR, находящихся в пределах охвата, используйте режим оценки уязвимостей и тестирования на проникновение (VAPT).
* Если вы начинаете с доменов, находящихся в пределах охвата, используйте режим Bug Bounty (BB).
### [Bug Bounty Mode]
* В режиме BB все поддомены, найденные с помощью celerystalk или импортированные вручную, помечаются как находящиеся в пределах охвата.
#### Поиск поддоменов, определение хостов вне охвата, сканирование всего остального```
# ./celerystalk workspace create -o /dir -m bb # Create default workspace and set output dir
# ./celerystalk subdomains -d company.com,dom.net # Find subdomains and determine if in scope
# ./celerystalk import -S scope.txt (optional) # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk import -O out_scope.txt (optional) # Define HOSTS/IPs that are out of scope
# ./celerystalk nmap (optional) # Nmap all in-scope hosts (reads options from config.ini)
# ./celerystalk import -f client.xml (optional) # If you would rather import an nmap file you already ran
# ./celerystalk scan [--noIP] # Run all enabled commands against all in scope hosts
# ./celerystalk query watch (then Ctrl+c) # Wait for scans to finish
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
Примечание: Вы можете сначала выполнить команду subdomains, а затем определить область, или определить область и импортировать поддомены.
**Примечание:** Сначала вы можете выполнить команду subdomains, а затем определить область видимости, или вы можете определить область видимости и импортировать поддомены.
#### Импорт списка хостов, находящихся в области видимости, и запуск nmap через celerystalk с разбором результатов```
# ./celerystalk workspace create -o /dir -m vapt # Create default workspace and set output dir
# ./celerystalk import -S client-inscope-list.txt # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk import -O out_scope.txt (optional) # Define HOSTS/IPs that are out of scope
# ./celerystalk nmap # Nmap all in-scope hosts (reads options from config.ini)
# ./celerystalk query watch (then Ctrl+c) # Watch nmap scans as they move from pending > running > complete
# ./celerystalk subdomains -d client.com,client.net # Find subdomains and determine if in scope
# ./celerystalk scan # Run all enabled commands
# ./celerystalk query watch (then Ctrl+c) # Watch scans as they move from pending > running > complete
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
Примечание: Вы можете сначала запустить команду subdomains, а затем определить область действия, или определить область действия и импортировать субдомены.
Для получения дополнительной информации посетите страницу Configuration в Wiki
Вам нужно создать рабочее пространство, прежде чем делать что-либо еще.
#### import
Эта команда позволяет импортировать данные о портах и хостах в celerystalk, а также определять, что находится в области сканирования, а что вне её.
| Option | Description |
| --- | --- |
| -f scan.xml | <b>Nmap/Nessus xml</b><br><ul><li>Добавляет все IP-адреса из этого файла в таблицу хостов и помечает их как находящиеся в области сканирования.</li><li>Добавляет все порты и типы служб в таблицу сервисов.</li></ul> |
| -S scope.txt | <b>Файл области сканирования</b><br><ul><li>Показать различия файлов, которые не были подготовлены</li></ul>|
| -D subdomains.txt | <b>Файл (под)доменов</b><br><ul><li>celerystalk определяет, находится ли каждый поддомен в области сканирования, разрешая IP и ища IP в базе данных. Если есть совпадение, домен помечается как находящийся в области сканирования и будет просканирован.</li></ul>|```
Import Nmap XML file: ./celerystalk import -f /assessments/nmap.xml
Import Nessus file: ./celerystalk import -f /assessments/scan.nessus
Import list of Domains: ./celerystalk import -D <file>
Import list of IPs/Ranges: ./celerystalk import -S <file>
Specify workspace: ./celerystalk import -f <file>
Import multiple files: ./celerystalk import -f nmap.xml -S scope.txt -D domains.txt
Эта команда выполняет все инструменты поиска поддоменов из вашего конфигурационного файла. Если вы предпочитаете, вы можете сделать это вне celerystalk и импортировать поддомены с помощью команды import
| Опция | Описание |
|---|---|
| -d domain1,domain2,etc | Запустить Amass, Sublist3r и т.д., и сохранить домены в БД
|
| Find subdomains: celerystalk subdomains -d domain1.com,domain2.com |
#### nmap
Эта команда запустит nmap за вас, используя параметры, указанные в файле config.ini. Вы также можете импортировать данные сканирования портов из xml-файла nmap или из файла .nessus.
| Опция | Описание |
| --- | --- |
| без опций | Чтение команды nmap из конфигурации и сканирование всех служб для хостов в области действия |
| -c [имя_файла] | Указать файл конфигурации celerystalk [По умолчанию: ./config.ini]
#### scan
Эта команда отправляет задачи в celery, который асинхронно выполняет их и записывает вывод в ваш выходной каталог.
| Опция | Описание |
| --- | --- |
| без опций | <b>Сканировать все хосты в области действия</b><ul><li>Читает БД и сканирует каждый IP-адрес и субдомен в области действия.</li><li>Запускает все включенные инструменты для IP-адресов, но только инструменты, специфичные для http/http, для виртуальных хостов</li></ul> |
| --noIP | Не сканировать хосты по IP (сканировать только vhosts)
| -t ip,vhost,cidr | <b>Сканировать конкретные цели из БД или файла сканирования</b><ul><li>Сканировать подмножество IP-адресов и/или субдоменов в области действия</li></ul> |
| -s | <b>Симуляция</b><br> Отправляет все задачи в celery, но все команды выполняются с символом # перед ними, что делает их неактивными</li></ul> |
| -c [имя_файла] | Указать файл конфигурации celerystalk [По умолчанию: ./config.ini] |
| -u [URL] | Сканировать определенный URL, даже если его еще нет в БД |```
Scan all in scope hosts: ./celerystalk scan
Scan subset of DB hosts: ./celerystalk scan -t 10.0.0.1,10.0.0.3
./celerystalk scan -t 10.0.0.100-200
./celerystalk scan -t 10.0.0.0/24
./celerystalk scan -t sub.domain.com
Simulation mode: ./celerystalk scan -s
Эта команда пересканирует уже просканированный хост.
| Опция | Описание |
|---|---|
| без опции | Для каждого хоста в области видимости в БД celerystalk спросит, если если вы хотите его пересканировать |
./celerystalk rescan -c myconfig.ini
Rescan some hosts ./celerystalk rescan -t 1.2.3.4,sub.domain.com
Simulation mode: ./celerystalk rescan -s
#### query
Асинхронно проверяйте состояние очереди задач так часто, как вам удобно. Режим наблюдения на самом деле выполняет команду linux watch, чтобы не заполнять весь буфер терминала.
| Опция | Описание |
| --- | --- |
| no options | Показывает все задачи в текущей рабочей области |
| watch | Отправляет команду в unix watch, что позволяет получать обновлённый статус каждые 2 секунды |
| brief | Ограничение до 5 результатов по каждому статусу (ожидание/выполнение/завершено/отменено/приостановлено) |
| summary | Показывает только баннер с цифрами, а не сами задачи |```
Query Tasks: ./celerystalk query
./celerystalk query watch
./celerystalk query brief
./celerystalk query summary
./celerystalk query summary watch
Cancel/Pause/Resume any task(s) that are currently running or in the queue.
./celerystalk <verb> all #Cancel/Pause/Resume all tasks from current workspaces
#### screenshots
| Параметры | Описание |
| --- | --- |
| без параметров | Делать скриншоты для всех известных путей |```
./celerystalk screenshots
Запуск отчета, который объединяет все результаты работы инструмента в html-файл и txt-файл. Запускайте так часто, как хотите. Каждый раз при запуске отчета предыдущий отчет перезаписывается.
| Options | Description |
|---|---|
| no options | Создать отчет для всех целевых хостов, которые были просканированы |
| Create Report: ./celerystalk report #Create a report for all scanned hosts in current workspace |
#### db
Вывести или экспортировать рабочие области, хосты, сервисы или пути, сохраненные в базе данных celerystalk
| Опция | Описание |
| --- | --- |
| workspaces | Показать все известные рабочие области и каталог вывода, связанный с каждой рабочей областью |
| workspace | То же, что и workspaces |
| services | Показать все известные открытые порты и типы сервисов по IP |
| ports | То же, что и ports. |
| hosts | Показать все хосты (IP-адреса и поддомены/vhosts) и указать, находятся ли они в области охвата и были ли они отправлены на сканирование |
| vhosts | То же, что и команда hosts, но исключает vhosts, которые являются IP-адресами. |
| paths | Показать все пути, обнаруженные с помощью vhost |
| paths_only | Показать список путей в базе данных, разделенных новой строкой. Полезно для передачи в другой инструмент |
| export | Экспортировать таблицы сервисов, хостов и путей
| export_paths_only | Экспортировать только список путей в базе данных, разделенных новой строкой, в файл.```
Show workspaces: ./celerystalk db workspaces
./celerystalk db workspace
Show services: ./celerystalk db services
./celerystalk db ports
Show hosts: ./celerystalk db hosts
Show vhosts only ./celerystalk db vhosts
Show paths: ./celerystalk db paths
Show paths (no table) ./celerystalk db paths_only
Show tasks: ./celerystalk db tasks
Export tables to csv ./celerystalk db export
Export paths to txt ./celerystalk db export_paths_only
Administrative Functions
## Использование```
Usage:
celerystalk workspace ([create]|[switch]) [-w workspace_name] [-o <output_dir>] [-m <mode>] [-h]
celerystalk import [-f <nmap_file>] [-S scope_file] [-D subdomains_file] [-O outOfScope.txt] [-u <url>] [-h]
celerystalk subdomains [-d <domains>] [-c <config_file>] [-s] [-h]
celerystalk nmap [-t <targets>] [-c <config_file>] [-s] [-h]
celerystalk scan [-t <targets>] [--noIP] [-c <config_file>] [-s] [-h]
celerystalk scan -u <url> [-c <config_file>] [-s] [-h]
celerystalk rescan [-t <targets>] [-c <config_file>] [-s] [-h]
celerystalk query ([full] | [summary] | [brief]) [watch] [-h]
celerystalk query [watch] ([full] | [summary] | [brief]) [-h]
celerystalk report [-h]
celerystalk screenshots [-h]
celerystalk cancel ([all]|[<task_ids>]) [-h]
celerystalk pause ([all]|[<task_ids>]) [-h]
celerystalk resume ([all]|[<task_ids>]) [-h]
celerystalk db ([workspaces]|[workspace]|[services]|[ports]|[hosts]|[vhosts]|[paths]|[paths_only]|[tasks]) [-h]
celerystalk db export [-h]
celerystalk admin ([start]|[stop]|[restart]|[reset]|[backup]|[restore]) [-f <restore_file>] [-h]
celerystalk interactive [-h]
celerystalk (help | -h | --help)
Options:
-h --help Show this screen
-v --version Show version
-f <nmap_file> Nmap xml import file
-c <config_file> Specify a non-default configuration file by name
-o <output_dir> Output directory
-m <mode> vapt = VulnAssmt/PenTest, bb = Bug Bounty
-S <scope_file> Scope import file
-O <outscope_file> Out of scope hosts file
-D <subdomains_file> Subdomains import file
-t <targets> Target(s): IP, IP Range, CIDR
-u <url> URL to parse and scan with all configured tools
-w <workspace> Workspace
-d --domains Domains to scan for vhosts
-s --simulation Simulation mode. Submit tasks comment out all commands
--noIP Only scan targets by DNS hostname (Don't scan the IP address)
Context specific help with examples:
./celerystalk workspace -h
./celerystalk subdomains -h
./celerystalk import -h
./celerystalk nmap -h
./celerystalk scan -h
./celerystalk rescan -h
./celerystalk query -h
./celerystalk pause -h
./celerystalk resume -h
./celerystalk cancel -h
./celerystalk db -h
./celerystalk screenshots -h
./celerystalk report -h
./celerystalk admin -h
Этот проект был вдохновлён многими отличными инструментами:
Благодарности @offensivesecurity и @hackthebox_eu за их лабораторные сети
Также спасибо:
| Опция | Описание |
|---|
| без опций | Выводит текущее рабочее пространство |
| create | Создает новое рабочее пространство |
| -w | Определить новое имя рабочего пространства |
| -o | Определить выходной каталог, назначенный рабочему пространству |
| -m | Режим [vapt \ bb] |
| Create default workspace ./celerystalk workspace create -o /assessments/client -m bb | |
| Create named workspace ./celerystalk workspace create -o /assessments/client -w client -m vapt | |
| Switch to another workspace ./celerystalk workspace client |
| -t ip,vhost,cidr | Сканировать подмножество IP-адресов и/или поддоменов, находящихся в области видимости. |
| -s | Отправляет все задачи в celery, но все команды выполняются с символом # перед ними, что делает их недействительными. |
| -c [filename] | Укажите файл конфигурации celerystalk [По умолчанию: ./config.ini] |
| Rescan all hosts: ./celerystalk rescan |
| Option | Description |
|---|
| cancel |
|
| pause |
|
| resume |
|
| Cancel/Pause/Resume Tasks: ./celerystalk 5,6,10-20 #Cancel/Pause/Resume tasks 5, 6, and 10-20 from current workspace |
| Параметры | Описание |
|---|
| start | Запустить процессы Celery и Redis |
| stop | Остановить процессы Celery и Redis |
| restart | Перезапустить процессы Celery и Redis |
| reset | Уничтожить БД, очистить Redis, начать заново |
| backup | Создать резервную копию БД и всех каталогов с данными рабочей области |
| restore | Восстановить БД и все каталоги с данными рабочей области |
| -f [filename] | Имя файла для восстановления |
| Examples: | |
| ./celerystalk admin start | |
| ./celerystalk admin stop | |
| ./celerystalk admin restart | |
| ./celerystalk admin reset | |
| ./celerystalk admin backup -f | |
| ./celerystalk admin restore -f |