
Локальный 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 заимствует те части экосистемы терминальных приложений, которые уже ощущаются премиальными, и выстраивает вокруг известных методик единый связный инструментарий:
| Заимствовано из | Что мы взяли |
|---|---|
| lazydocker | Панельная компоновка, нижняя строка-подсказка с горячими клавишами, полная поддержка тем |
| tuicr | Нативная для Vim модальная навигация, Rust, единый статический бинарник |
| superfile | Модель с несколькими вкладками, 12 встроенных тем, полировка в духе «всё выглядит вылизано» |
| Sherlock / Maigret | Методика перебора username по платформам (переписана здесь, а не вендорена) |
| SpiderFoot / recon-ng | Оркестрация множества пассивных OSINT API/инструментов за одним согласованным интерфейсом + конвейеры автоматизации |
Он не создан для — и намеренно исключает — всего, чьё единственное
реалистичное применение это сталкинг, преследование, несанкционированное
проникновение или работа с украденными дампами учётных данных — см. 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:
| Клавиша | Обычный режим |
|---|---|
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 нет, так что это никогда не будет случайно нажатой клавишей) |
Всё вышеперечисленное можно переопределить из 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: