пассивный OSINT-инструментарий на python: имена пользователей, email, домены, IP, телефоны, хеши. без ключей, без логинов.
пассивный osint-инструментарий на python. без api-ключей, без аккаунтов, без входа куда-либо. дайте ему ник, email, домен, ip, номер телефона или хеш — и он пройдётся по тому, что уже есть в открытом доступе.

username прогоняет ник примерно по 700 сайтам, используя публичный список WhatsMyName. каждая запись в этом списке знает, как отличить попадание от промаха, так что результаты — не догадки. email проверяет синтаксис и mx, ищет одноразовые домены, пробует gravatar, а затем прогоняет часть до @ через проверку username. domain вытаскивает dns-записи, http-статус и заголовок, поддомены из certificate transparency и whois. ip даёт гео и asn, обратный dns и сканирует порты, если попросите. phone определяет оператора, регион, тип линии и часовой пояс. hash просто говорит, чем он, вероятно, является.
всё это — публичные данные. dns, whois, страницы профилей, журналы сертификатов.
нужен python 3.9 или новее. затем:
pip install -r requirements.txt
это поставит rich, requests, dnspython и aiohttp. phonenumbers тоже идёт в комплекте, но его трогает только модуль phone, так что можете убрать его из файла, если хотите. без aiohttp проверка username переключается на потоки и становится намного медленнее, так что оставьте его.
в windows, если python ещё не в вашем path:
winget install --id Python.Python.3.13 -e
git clone https://gitlab.com/vqkro/higernes
cd higernes
pip install -r requirements.txt
python higernes.py
linux и mac — то же самое, но с python3:
git clone https://gitlab.com/vqkro/higernes
cd higernes
python3 -m pip install -r requirements.txt
python3 higernes.py
во freebsd сначала выполните pkg install -y python3.
если pip жалуется на externally managed environment, либо создайте venv
python3 -m venv .venv && . .venv/bin/activate && pip install -r requirements.txt
либо передайте --break-system-packages и двигайтесь дальше.
без аргументов вы получите меню. или сразу переходите к делу:
python higernes.py username vqkro
python higernes.py username vqkro --cat coding
python higernes.py email [email protected]
python higernes.py domain example.com
python higernes.py ip 1.1.1.1 --ports
python higernes.py phone +14155552671
python higernes.py hash 5f4dcc3b5aa765d61d8327deb882cf99
python higernes.py scan example.com
python higernes.py scan example.com --all
категория только сужает проверку username. не указывайте её — и он пройдётся по всем 700.
data/wmn-data.json — это набор данных WhatsMyName. подменяйте на более свежую копию в любое время, он читается при запуске. если файла нет, он откатывается к короткому списку, вшитому в скрипт, чтобы всё продолжало работать.
сканер портов на python медленный, поэтому эта часть живёт в core/hcore.cpp и компилируется в небольшой бинарник. higernes ищет его рядом с собой, в core/ или в path, и вызывает его. если его нет, ip --ports откатывается к более медленной версии на python. собирать его нужно только если вы запускаете из исходников и хотите быстрый путь:
# windows
g++ -O2 -std=c++17 -static -o core/hcore.exe core/hcore.cpp -lws2_32
# linux / mac
g++ -O2 -std=c++17 -o core/hcore core/hcore.cpp -pthread
он и сам по себе работает:
hcore dns github.com
hcore ports example.com --banners
hcore ports example.com --all --threads 1024
в exe на странице релизов он уже внутри.
dnspython и requests стоит иметь. без dnspython разрешается только A-запись, всё остальное просто пропускается. бесплатный endpoint ip-api ограничивает примерно 45 запросов в минуту. crt.sh медленный или недоступен половину времени, и когда так — сканирование домена просто сообщает об этом и продолжает.
pip install pyinstaller
pyinstaller --onefile --name higernes --console higernes.py
именно так был собран тот, что на странице релизов.
MIT, см. LICENSE.