
Локальный OSINT-инструмент для терминала с управлением с клавиатуры и 28 модулями для поиска по имени пользователя, домену, IP, email, утечкам и геолокации, а также хранением дел в SQLite.
h-osint)Локальный, управляемый с клавиатуры OSINT-инструментарий для терминала — горячие клавиши в стиле Neovim, конфигурация на Lua, 12 тем и локальное хранилище кейсов на SQLite. Без аккаунта, без облачного бэкенда, без телеметрии.
kitty ~ » h-osint
Репозиторий:
h-osint· Бинарник:h-osint· Сайт: https://t-beckett.gitlab.io/h-osint/
h-osint работает полностью на вашей машине. Заметки по кейсам, отслеживание sock-puppet-аккаунтов и результаты каждого поиска хранятся в одном локальном файле SQLite — здесь нет серверного компонента, нет синхронизации, и ничто в этом инструменте не загружает данные вашего кейса куда-либо. Каждый модуль, который обращается к стороннему сервису (HaveIBeenPwned, Shodan, WiGLE, Nominatim, RDAP, crt.sh, NVD, Team Cymru, ip-api.com), делает это с вашим собственным API-ключом там, где он требуется, и только потому, что вы запустили именно этот поиск.
Потому что хорошие справочники по OSINT-методикам (TCM Security OSINT Fundamentals, список ресурсов по OSINT от TCM) не поставляются с каким-либо ПО, а существующее ПО — это либо набор одноцелевых CLI-скриптов (Sherlock, theHarvester, ...), либо тяжёлый GUI (Maltego). h-osint заимствует те части экосистемы терминальных приложений, которые уже ощущаются премиальными, и выстраивает вокруг известных методик единый связный инструментарий:
Он не создан для — и намеренно исключает — всего, чьё единственное
реалистичное применение это сталкинг, преследование, несанкционированное
проникновение или работа с украденными дампами учётных данных — см. docs/ETHICS.md,
где именно проведены эти границы и почему.
git clone https://gitlab.com/t-beckett/h-osint.git
cd h-osint
# Build prerequisites: a C compiler + linker (for the bundled SQLite and
# vendored Lua) and pkg-config. On Debian/Ubuntu:
sudo apt install build-essential pkg-config
cargo build --release
./target/release/h-osint # launches the TUI
./target/release/h-osint --help # see the scriptable subcommands
Опциональные внешние инструменты, открывающие больше возможностей экрана Tools: whois
(фолбэк для TLD, не поддерживаемых RDAP), dig (DNS-записи + проверка AXFR),
exiftool, nmap, openssl, curl. Приложение отлично работает и без них — оно
сообщает, чего не хватает, вместо тихого отказа.
При первом запуске h-osint записывает полностью прокомментированную конфигурацию по умолчанию в
~/.config/h-osint/init.lua за вас (если там ещё ничего нет) —
копировать вручную ничего не нужно. Откройте этот файл, чтобы задать тему, API-ключи,
пользовательские темы и переопределения раскладки клавиш. Ничего в нём не обязательно;
у каждого поля есть разумное значение по умолчанию, и каждый модуль, которому нужен ключ, сообщает об этом
вместо тихого отказа. (Поставляемый в этом
репозитории config/init.lua — это ровно тот шаблон, который используется — прочитайте его здесь, если не хотите сначала запускать
приложение.)
Все 22 изначально запланированные OSINT-возможности плюс 6 расширенных инструментов — полное
сопоставление статусов/модулей в docs/FEATURES.md:
Заметки и файлы кейсов · менеджер sock puppet / персон · конструктор дорков поисковых систем · передача в обратный поиск изображений · просмотрщик EXIF со встроенным предпросмотром по протоколу Kitty · инструменты физического местоположения и геолокации · OSINT по email (формат/MX/Gravatar) · OSINT по утёкшим данным (утечки + вставки HaveIBeenPwned) · OSINT по людям · OSINT по номерам телефонов · OSINT по username в стиле Sherlock · OSINT по веб-сайтам (DNS, RDAP, crt.sh, Wayback, SPF/DMARC/DKIM, robots.txt/sitemap) · OSINT по социальным сетям · OSINT по беспроводным сетям (WiGLE) · OSINT по IP (геолокация, обратный DNS, ASN/BGP через Team Cymru, RDAP) · OSINT по MAC · оркестрация внешних инструментов · конвейеры автоматизации · написание отчётов в Markdown · низкоуровневый OSINT по безопасности (TLS-сертификаты, заголовки безопасности) · плюс разведка по хостам Shodan, идентификатор хешей, расширитель URL-редиректов, поиск по CVE/NVD, сканер тайпсквоттинга/похожих доменов и проверка неправильной конфигурации передачи зоны DNS (AXFR).
Три режима в стиле Neovim — полная таблица в
KEYBINDINGS.md:
Всё вышеперечисленное можно переопределить из init.lua. Нажмите ? в любой момент для
встроенной шпаргалки.
:theme <name> или задайте theme в init.lua — полная таблица палитр и
формат пользовательской темы в THEMES.md:
ocean-depths · forest-canopy · modern-minimalist · arctic-frost ·
botanical-garden · midnight-galaxy · nord · catppuccin-frappe ·
everforest · gruvbox · onedark · tokyonight (по умолчанию)
Каждая тема сопоставляет одни и те же 12 семантических ролей (bg/fg/accent/danger/...)
— ни один экран никогда не обрабатывает тему по имени особым образом — и вы можете определить
свою собственную полностью в init.lua, не трогая код на Rust.
Основная логика каждого модуля доступна без графического интерфейса, так что вы можете передавать её в другие инструменты или запускать из cron:
h-osint username johndoe
h-osint domain example.com
h-osint ip 8.8.8.8
h-osint asn 8.8.8.8
h-osint email [email protected]
h-osint mac AA:BB:CC:DD:EE:FF
h-osint phone "+1 555 0100"
h-osint dork --site example.com --filetype pdf "quarterly report"
h-osint breach [email protected] --api-key YOUR_HIBP_KEY
h-osint shodan 1.2.3.4 --api-key YOUR_SHODAN_KEY
h-osint hash 5f4dcc3b5aa765d61d8327deb882cf99
h-osint expand https://bit.ly/example
h-osint cve CVE-2024-3094
h-osint typosquat example.com
h-osint security example.com
h-osint axfr example.com ns1.example.com
h-osint pipeline example.com --steps domain,ip --case 1
h-osint report 1 --out case-1.md
src/
main.rs, cli.rs entry point + headless CLI
app.rs tab/mode state machine, :command execution
config.rs, keymap.rs Lua config loading, modal keybind resolution
themes/mod.rs 12 built-in themes + custom-theme support
db.rs SQLite case/notes/findings/personas storage
ui/ tab bar, status bar (mode pill), help popup
modules/
notes.rs, sockpuppet.rs full modules (state + DB + UI)
dork.rs, exif.rs, username.rs full modules (logic + UI)
domain.rs, network.rs, pure OSINT logic (no UI — see
identity.rs, geo.rs lookup.rs for the shared screen)
lookup.rs generic single-input screen used by
Domain/IP/MAC/Email/Phone/Breach/Geo/
Wireless/People/Social/Shodan/Hash/
UrlExpand/Cve/Typosquat/Security/Axfr/
ReverseImage
tools.rs, automation.rs, report.rs full modules
docs/
ARCHITECTURE.md how it's wired together + where to extend it
FEATURES.md every requested + extended feature -> module mapping
ETHICS.md responsible-use scope and why some modules are limited
THEMES.md full palette table + how to define a custom theme
KEYBINDINGS.md the complete keybind + command reference
CONTRIBUTING.md dev setup, how to add a module, commit style
SECURITY.md responsible-disclosure policy for this tool itself
CODE_OF_CONDUCT.md
CHANGELOG.md
config/init.lua example config
site/ source for the project website (published via GitLab Pages)
.gitlab-ci.yml build/lint/test + Pages deploy
site/ содержит статическую домашнюю страницу проекта; .gitlab-ci.yml собирает и
запускает линтер при каждом push и публикует site/ в GitLab Pages на ветке по умолчанию,
по адресу https://t-beckett.gitlab.io/h-osint/.
Этот проект изначально создавался в окружении без сетевого
доступа к cargo build против crates.io. Каждая строка была проверена вручную на
корректность (типы, форма для borrow checker, сигнатуры API против
документированных версий крейтов), но считайте первый cargo build свежего клона
настоящим шагом верификации — конвейер CI запускает его, cargo clippy
и cargo test при каждом push, так что зелёный конвейер на main — это фактическая
гарантия. См. раздел «Known gaps» в docs/ARCHITECTURE.md для
конкретных мест, которые стоит перепроверить в первую очередь (покрытие таблицы MAC OUI, точность
разбора телефонов, разбор ответов ASN).
MIT — см. LICENSE. © T. Beckett.
| Заимствовано из | Что мы взяли |
|---|
| lazydocker | Панельная компоновка, нижняя строка-подсказка с горячими клавишами, полная поддержка тем |
| tuicr | Нативная для Vim модальная навигация, Rust, единый статический бинарник |
| superfile | Модель с несколькими вкладками, 12 встроенных тем, полировка в духе «всё выглядит вылизано» |
| Sherlock / Maigret | Методика перебора username по платформам (переписана здесь, а не вендорена) |
| SpiderFoot / recon-ng | Оркестрация множества пассивных OSINT API/инструментов за одним согласованным интерфейсом + конвейеры автоматизации |
| Клавиша | Обычный режим |
|---|
j/k, ↑/↓ | перемещение внутри списка |
i | вход в режим вставки (ввод в поле в фокусе) |
Esc | возврат в обычный режим |
: | режим команд (:theme nord, :open username, :case new "Acme intake", :q) — нажмите Tab для перебора вариантов автодополнения имени команды или её аргумента |
r / Enter | выполнить действие текущего экрана |
Tab / Shift-Tab | переключение вкладок |
ctrl-t / ctrl-w | новая вкладка (Home) / закрыть вкладку |
[ / ] | предыдущая / следующая тема |
? | переключить справку |
:q | выход (это единственный способ выйти — привязки на голую q нет, так что это никогда не будет случайно нажатой клавишей) |