Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/pownjs/recon
OSINT (Разведка открытых источников)РазведкаКартирование сетиСканирование портовАнализ уязвимостейСбор информацииУтилиты и фреймворкиРазведка угрозПеречисление ПоддоменовАнализ DNSArchived
GitHub
420823 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
recon — Мощный фреймворк для разведки целей, основанный на теории графов. | Kitploit
pownjs/recon

recon

Мощный фреймворк для разведки целей, основанный на теории графов.

Репозиторий

Проект переехал в монорепозиторий. Подробнее см. https://github.com/pownjs/pown.

License Follow on Twitter NPM Fury default workflow SecApps

Recon

Recon — это фреймворк для разведки целей, основанный на графах знаний. Использование графов знаний вместо плоских таблиц упрощает поиск взаимосвязей между различными типами информации, что оказывается весьма удобным во многих ситуациях. Алгоритмы графов знаний также помогают в сравнении, поиске, нахождении кратчайшего пути и выполнении многих других полезных задач, способствующих обнаружению информации и сбору разведывательных данных.

Благодарности

Этот инструмент является частью инициативы с открытым исходным кодом secapps.com.```


/ | / | /_\ | _ \ _ / | _ \ | ( / _ | / /_
|
/
__
// __| || |___/ https://secapps.com

root@kitploit:~
> **Примечание**: Recon является результатом почти прямой копии отличного инструмента [Recon](https://recon.secapps.com) от SecApps.

## Быстрый старт

Этот инструмент предназначен для использования в составе [Pown.js](https://github.com/pownjs/pown), но его можно вызывать отдельно как самостоятельный инструмент.

Установите Pown сначала как обычно:

```bash
npm install -g pown
``````sh
$ npm install -g pown@latest

Установка recon:```sh $ pown modules install @pown/recon

root@kitploit:~
Вызов напрямую из Pown:```sh
$ pown recon

Автономное использование

Установите этот модуль локально из корня вашего проекта:```sh $ npm install @pown/recon --save

root@kitploit:~
После завершения выполните pown cli:```sh
$ POWN_ROOT=. ./node_modules/.bin/pown-cli recon

Вы также можете использовать глобальный pown для локального вызова инструмента:```sh $ POWN_ROOT=. pown recon

root@kitploit:~
## Library Use

Модуль также является библиотекой. Ознакомьтесь с кодом и примерами, чтобы понять, как его использовать. Документация будет доступна в ближайшее время.

## Usage

> **ПРЕДУПРЕЖДЕНИЕ**: Эта команда pown в настоящее время находится в разработке, и поэтому в ней могут происходить критические изменения.```
pown-cli recon <command>

Target recon

Commands:
  pown-cli recon transform <transform>          Perform inline transformation  [aliases: t]
  pown-cli recon template <command>             Recon template commands  [aliases: p, templates]
  pown-cli recon select <expressions...>        Select nodes  [aliases: s]
  pown-cli recon traverse <expressions...>      Traverse nodes  [aliases: v]
  pown-cli recon options <command>              Manage options  [aliases: option]
  pown-cli recon cache <command>                Manage cache
  pown-cli recon add <nodes...>                 Add nodes  [aliases: a]
  pown-cli recon remove <expressions...>        Remove nodes  [aliases: r]
  pown-cli recon edit <expressions...>          Edit nodes  [aliases: e]
  pown-cli recon merge <files...>               Perform a merge between at least two recon files  [aliases: m]
  pown-cli recon diff <fileA> <fileB>           Perform a diff between two recon files  [aliases: d]
  pown-cli recon group <name> <expressions...>  Group nodes  [aliases: g]
  pown-cli recon ungroup <expressions...>       Ungroup nodes  [aliases: u]
  pown-cli recon load <file>                    Load a file  [aliases: l]
  pown-cli recon save <file>                    Save to file  [aliases: o]
  pown-cli recon import <file>                  Import file  [aliases: i]
  pown-cli recon export <file>                  Export to file  [aliases: x]
  pown-cli recon remote <command>               Remote managment  [aliases: remotes, f]
  pown-cli recon layout <name>                  Layout the graph  [aliases: k]
  pown-cli recon summary [options]              Create a summary  [aliases: y]
  pown-cli recon exec <files...>                Execute js file  [aliases: c]

Options:
  --version  Show version number  [boolean]
  --help     Show help  [boolean]

pown-cli recon transform <transform>

Perform inline transformation

Commands:
  pown-cli recon transform bitbucketlistrepos [options] <nodes...>            List Bitbucket repositories  [aliases: bitbucket_list_repos, bblr]
  pown-cli recon transform bitbucketlistsnippets [options] <nodes...>         List Bitbucket snippets  [aliases: bitbucket_list_snippets, bbls]
  pown-cli recon transform bitbucketlistteamrepos [options] <nodes...>        List Bitbucket team repos  [aliases: bitbucket_list_team_repos, bbltr]
  pown-cli recon transform bitbucketlistteammembers [options] <nodes...>      List Bitbucket team members  [aliases: bitbucket_list_team_members, bbltm]
  pown-cli recon transform bufferoverrunsubdomainsearch [options] <nodes...>  Obtain a list of subdomains using bufferover.run DNS service  [aliases: bufferoverrun_subdomain_search, brss]
  pown-cli recon transform certspotterissuances [options] <nodes...>          Obtain issuances from Certspotter  [aliases: certspotter_issuances, csi]
  pown-cli recon transform cloudflarednsquery [options] <nodes...>            Query CloudFlare DNS API  [aliases: cloudflare_dns_query, cfdq]
  pown-cli recon transform crtshcndomainreport [options] <nodes...>           Obtain crt.sh domain report which helps enumerating potential target subdomains  [aliases: crtsh_cn_domain_report, crtshcdr]
  pown-cli recon transform crtshsandomainreport [options] <nodes...>          Obtain crt.sh domain report which helps enumerating potential target subdomains  [aliases: crtsh_san_domain_report, crtshsdr]
  pown-cli recon transform dnsresolve [options] <nodes...>                    Performs DNS resolution  [aliases: dns_resolve, dr, dns]
  pown-cli recon transform dockerhublistrepos [options] <nodes...>            List DockerHub repositories for a given member or org  [aliases: dockerhub_list_repos, dhlr]
  pown-cli recon transform gravatar [options] <nodes...>                      Get gravatar
  pown-cli recon transform hackertargetreverseiplookup [options] <nodes...>   Obtain reverse IP information from hackertarget.com  [aliases: hackertarget_reverse_ip_lookup, htril]
  pown-cli recon transform hackertargetonlineportscan [options] <nodes...>    Obtain port information from hackertarget.com  [aliases: hackertarget_online_port_scan, htps]
  pown-cli recon transform httpfingerprint [options] <nodes...>               Performs a fingerprint on the HTTP server and application  [aliases: http_fingerprint, hf]
  pown-cli recon transform ipinfoiowidgetsearch [options] <nodes...>          Obtain ipinfo.io whois report via the web widget  [aliases: ipinfoio_widget_search, iiiows]
  pown-cli recon transform omnisintsubdomainreport [options] <nodes...>       Obtain omnisint domain report which helps enumerating target subdomains  [aliases: omnisint_subdomain_report]
  pown-cli recon transform pkslookupkeys [options] <nodes...>                 Look the the PKS database at pool.sks-keyservers.net which pgp.mit.edu is part of  [aliases: pks_lookup_keys, pkslk]
  pown-cli recon transform pwndbsearch [options] <nodes...>                   Searching the PwnDB database  [aliases: pwndb_search, pds]
  pown-cli recon transform riddleripsearch [options] <nodes...>               Searches for IP references using F-Secure riddler.io  [aliases: riddler_ip_search, rdis]
  pown-cli recon transform riddlerdomainsearch [options] <nodes...>           Searches for Domain references using F-Secure riddler.io  [aliases: riddler_domain_search, rdds]
  pown-cli recon transform script [options] <nodes...>                        Perform transformation with external script  [aliases: script]
  pown-cli recon transform scyllasearch [options] <nodes...>                  Searching the Scylla database  [aliases: scylla_search, scys]
  pown-cli recon transform securitytrailssuggestions [options] <nodes...>     Get a list of domain suggestions from securitytrails.com  [aliases: securitytrails_domain_suggestions, stds]
  pown-cli recon transform shodanorgsearch [options] <nodes...>               Performs search using ORG filter  [aliases: shodan_org_search, sos]
  pown-cli recon transform shodansslsearch [options] <nodes...>               Performs search using SSL filter  [aliases: shodan_ssl_search, sss]
  pown-cli recon transform spysesubdomains [options] <nodes...>               Performs subdomain searching with Spyse  [aliases: spyse_subdomains, ssds]
  pown-cli recon transform tcpportscan [options] <nodes...>                   Simple, full-handshake TCP port scanner (very slow and sometimes inaccurate)  [aliases: tcp_port_scan, tps]
  pown-cli recon transform threatcrowddomainreport [options] <nodes...>       Obtain threatcrowd domain report which helps enumerating potential target subdomains and email addresses  [aliases: threatcrowd_domain_report, tcdr]
  pown-cli recon transform threatcrowdipreport [options] <nodes...>           Obtain threatcrowd ip report which helps enumerating virtual hosts  [aliases: threatcrowd_ip_report, tcir]
  pown-cli recon transform urlscanliveshot [options] <nodes...>               Generates a liveshot of any public site via urlscan  [aliases: urlscan_liveshot, usls]
  pown-cli recon transform urlscansubdomains [options] <nodes...>             Find subdomains via urlscan  [aliases: urlscan_subdomains, uss]
  pown-cli recon transform noop [options] <nodes...>                          Does not do anything  [aliases: nop]
  pown-cli recon transform sleep [options] <nodes...>                         Sleeps for predefined time  [aliases: sleep, wait]
  pown-cli recon transform duplicate [options] <nodes...>                     Duplicate node  [aliases: dup]
  pown-cli recon transform extract [options] <nodes...>                       Extract property  [aliases: excavate]
  pown-cli recon transform prefix [options] <nodes...>                        Creates a new node with a prefix  [aliases: prepand]
  pown-cli recon transform suffix [options] <nodes...>                        Creates a new node with a suffix  [aliases: append]
  pown-cli recon transform augment [options] <nodes...>                       Update node with prefix or suffix
  pown-cli recon transform splitemail [options] <nodes...>                    Split email at the @ sign  [aliases: split_email]
  pown-cli recon transform buildemail [options] <nodes...>                    Build email from node label  [aliases: build_email]
  pown-cli recon transform splitdomain [options] <nodes...>                   Split domain at the first dot  [aliases: split_domain]
  pown-cli recon transform builddomain [options] <nodes...>                   Build domain from node label  [aliases: build_domain]
  pown-cli recon transform splituri [options] <nodes...>                      Split URI to corresponding parts  [aliases: split_uri]
  pown-cli recon transform builduri [options] <nodes...>                      Build URI from node label  [aliases: build_uri]
  pown-cli recon transform bakeimages [options] <nodes...>                    Convert external image into data URIs for self-embedding purposes  [aliases: bake_images, bes]
  pown-cli recon transform virustotalsubdomains [options] <nodes...>          Obtain subdomains from Virustotal  [aliases: virustotal_subdomains, vtsd]
  pown-cli recon transform vulnerssearch [options] <nodes...>                 Obtain vulnerability information via vulners.com  [aliases: vulners_search, vs]
  pown-cli recon transform wappalyzerprofile [options] <nodes...>             Enumerate technologies with api.wappalyzer.com  [aliases: wappalyzer_profile, wzp]
  pown-cli recon transform worker [options] <nodes...>                        Perform transformation with external worker  [aliases: worker]
  pown-cli recon transform zonecrunchersubdomains [options] <nodes...>        Performs subdomain searching with Zonecruncher  [aliases: zonecruncher_subdomains, zcss]
  pown-cli recon transform auto [options] <nodes...>                          Select the most appropriate methods of transformation

Options:
      --version  Show version number  [boolean]
      --help     Show help  [boolean]
  -r, --read     Read file  [string]
  -w, --write    Write file  [string]

Предварительный просмотр

Сгенерированные графы можно предварительно просмотреть в SecApps Recon для удобства, на котором основан этот инструмент. Вы можете получить доступ к SecApps Recon из браузера, но также можете вызвать его из командной строки.

Сначала вам нужно установить @pown/apps:```sh $ pown modules install @pown/apps

root@kitploit:~
Это установит пакет команд дополнительных приложений.

Создайте свой график с помощью опций записи:```sh
$ pown recon transform auto -w path/to/file.network --node-type brand target

Как только рекогносцировка завершена, откройте граф для предварительного просмотра в SecApps Recon:```sh $ pown apps recon < path/to/file.network

root@kitploit:~
## Scripting

Pown recon разработан для автоматизации с помощью вашей любимой среды оболочки, [Pown Script](https://github.com/pownjs/script), [Pown Engine Templates](https://github.com/pownjs/engine) и JavaScript. Скрипты выигрывают от сохранения контекста между выполнениями команд. Это означает, что вы можете строить граф без необходимости сохранять и восстанавливать данные через промежуточные файлы.

Используя ваш любимый редактор, создайте файл с именем `example.pown` со следующим содержимым:```sh
echo This is script
recon add --node-type brand target
recon t auto

Выполните скрипт из pown:```sh $ pown script path/to/example.pown

root@kitploit:~
Для получения дополнительной информации см. `./examples` для большего количества идей по использованию скриптов.

## Селекторы

> Некоторые команды ожидают селекторы графов. Остальная часть документации является копией руководства по селекторам cytoscape.js с некоторыми незначительными отличиями.

Селектор работает аналогично CSS-селектору для DOM-элементов, но селекторы в Recon вместо этого работают с коллекциями элементов графа. Этот механизм предоставляется мощной библиотекой cytoscape.js.

Селекторы можно комбинировать для создания мощных запросов, например:```
pown select 'node[weight >= 50][height < 180]'

Селекторы можно объединять (фактически создавая логическое ИЛИ) с помощью запятых:``` pown select 'node#j, edge[source = "j"]'

root@kitploit:~
Важно отметить, что строки должны быть заключены в кавычки:```
pown select 'node[type = "domain"]'

Обратите внимание, что метасимволы ( ^ $ \ / ( ) | ? + * [ ] { } , . ) нужно экранировать:

pown select '#some\$funky\@id'

Группа, класс и ID

  • node, edge или * (селектор группы) Выбирает элементы на основе группы (node для узлов, edge для рёбер, * для всех).
  • .className Выбирает элементы, у которых указанный класс (например, используйте .foo для класса с именем "foo").
  • #id Выбирает элемент с соответствующим ID (например, #foo равнозначно [id = 'foo'])

Данные

  • [name] Выбирает элементы, если у них определён указанный атрибут данных, то есть не undefined (например, [foo] для атрибута с именем "foo"). Здесь null считается определённым значением.
  • [^name] Выбирает элементы, если указанный атрибут данных не определён, то есть undefined (например, [^foo]). Здесь null считается определённым значением.
  • [?name] Выбирает элементы, если указанный атрибут данных является truthy-значением (например, [?foo]).
  • [!name] Выбирает элементы, если указанный атрибут данных является falsey-значением (например, [!foo]).
  • [name = value] Выбирает элементы, если их атрибут данных соответствует указанному значению (например, [foo = 'bar'] или [num = 2]).
  • [name != value] Выбирает элементы, если их атрибут данных не соответствует указанному значению (например, или ).

Составные узлы

  • > (селектор дочерних элементов) Выбирает прямых потомков родительского узла (например, node > node).
  • (селектор потомков) Выбирает всех потомков родительского узла (например, node node).
  • $ (селектор субъекта) Устанавливает субъект селектора (например, $node > node для выбора родительских узлов вместо дочерних).

Обходы

Сложный тип выборки, известный как обход.

Трансформации

Вот некоторые из трансформаций, доступных в Recon. Дополнительные трансформации доступны в опциональных модулях pown.

  • GitHub Search of Repos, Gists and Members (через @pown/github)
  • Bitbucket Search of Repos, Snippets and Members
  • CloudFlare 1.1.1.1 DNS API
  • CRTSH (CN и SAN)
  • DockerHub Repo Search
  • Gravatar URLs
  • Hacker Target Reverse IP Lookup
  • PKS Lookup
  • Bufferover.run
  • Urlscan
  • Threatcrowd
  • Wappalyzer
  • Riddler
  • Shodan
  • WhoAreThey (через @pown/whoarethey)
  • Certspotter
  • Virustotal
  • Security Trails
  • Utility Transforms
  • Auto Recon

Учебное пособие

Чтобы продемонстрировать возможности Recon и графовой OSINT (разведки по открытым источникам), давайте рассмотрим следующий тривиальный пример.

Начнём с запроса всех, кто является членом инженерной команды Google и вносит вклад в их учётную запись GitHub.```sh pown recon t -w google.network ghlm google

root@kitploit:~
Эта команда создаст таблицу, похожую на эту:```
   github:member
┌─────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────┐
│ uri                                                     │ login                                                   │ avatar                                                  │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/3rf                                  │ 3rf                                                     │ https://avatars1.githubusercontent.com/u/1242478?v=4    │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/aaroey                               │ aaroey                                                  │ https://avatars0.githubusercontent.com/u/31743510?v=4   │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/aarongable                           │ aarongable                                              │ https://avatars3.githubusercontent.com/u/2474926?v=4    │
...
...
...
│ https://github.com/alexpennace                          │ alexpennace                                             │ https://avatars1.githubusercontent.com/u/2506548?v=4    │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/alexv                                │ alexv                                                   │ https://avatars0.githubusercontent.com/u/30807372?v=4   │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/alexwhouse                           │ alexwhouse                                              │ https://avatars3.githubusercontent.com/u/1448490?v=4    │
└─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┘

Вы только что создали свою первую сеть!

Для удобства представление является табличным, но под ним у нас есть модель, состоящая из узлов, соединенных ребрами.

Если вам интересно, как это выглядит, вы можете воспользоваться SecApps Recon. Командная строка не имеет необходимого уровня интерактивности, чтобы отобразить сложность графов.

Параметр командной строки -w google.network экспортировал сеть в файл. Вы можете загрузить файл непосредственно в SecApps Recon с помощью функции открытия файла. Результат будет выглядеть так:

Теперь представьте, что мы хотим запросить, над какими репозиториями работают эти инженеры Google. Это просто. Сначала нам нужно выбрать узлы в графе, а затем применить к ним трансформацию "GitHub List Repositories". Вот как это делается из командной строки:```sh pown recon t ghlr -r google.network -w google2.nework -s 'node[type="github:member"]'

root@kitploit:~
Если вы не превышаете лимиты запросов GitHub API, вам будет представлено следующее:```
   github:repo
┌──────────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────┐
│ uri                                                                                  │ fullName                                                                             │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/2015-talks                                                    │ 3rf/2015-talks                                                                       │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/codecoroner                                                   │ 3rf/codecoroner                                                                      │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/DefinitelyTyped                                               │ 3rf/DefinitelyTyped                                                                  │
...
...
...
│ https://github.com/agau4779/ultimate-tic-tac-toe                                     │ agau4779/ultimate-tic-tac-toe                                                        │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/agau4779/worm_scraper                                             │ agau4779/worm_scraper                                                                │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/agau4779/zsearch                                                  │ agau4779/zsearch                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────┘

Так как теперь у нас есть два файла google.network и google2.network, вы, возможно, задаетесь вопросом, в чем разница между ними. Что ж, у нас есть инструмент, который делает именно это.```sh pown recon diff google.network google2.network

root@kitploit:~
Теперь мы знаем! Эта функция довольно полезна, если вы строите большие разведывательные карты и хотите знать, в чём ключевые различия. Представьте, что ваша задача cron каждый день выполняет одну и ту же разведку, и вы хотите знать, не появилось ли что-то новое, что стоит изучить подробнее. Привет, охотники за багами!
Скачать инструмент
[foo != 'bar']
[num != 2]
  • [name > value] Выбирает элементы, если их атрибут данных больше указанного значения (например, [foo > 'bar'] или [num > 2]).
  • [name >= value] Выбирает элементы, если их атрибут данных больше или равен указанному значению (например, [foo >= 'bar'] или [num >= 2]).
  • [name < value] Выбирает элементы, если их атрибут данных меньше указанного значения (например, [foo < 'bar'] или [num < 2]).
  • [name <= value] Выбирает элементы, если их атрибут данных меньше или равен указанному значению (например, [foo <= 'bar'] или [num <= 2]).
  • [name *= value] Выбирает элементы, если их атрибут данных содержит указанное значение в качестве подстроки (например, [foo *= 'bar']).
  • [name ^= value] Выбирает элементы, если их атрибут данных начинается с указанного значения (например, [foo ^= 'bar']).
  • [name $= value] Выбирает элементы, если их атрибут данных заканчивается указанным значением (например, [foo $= 'bar']).
  • @ (модификатор оператора атрибута данных) Добавляется перед оператором для регистронезависимого сравнения (например, [foo @$= 'ar'], [foo @>= 'a'], [foo @= 'bar'])
  • ! (модификатор оператора атрибута данных) Добавляется перед оператором для его отрицания (например, [foo !$= 'ar'], [foo !>= 'a'])
  • [[]] (скобки метаданных) Используйте двойные квадратные скобки вместо одинарных для сопоставления с метаданными, а не с данными (например, [[degree > 2]] выбирает элементы со степенью больше 2). Поддерживаемые свойства: degree, indegree и outdegree.