heimdall
A fast username enumerator and deep data extractor written in Go.
Features
- Single binary
- YAML-based configuration
- Parse data with easy-to-use selectors
- Headed/Headless browser support
- Multithreaded by default
- SQLite result caching
- JSON output support
The current collection of service configs is maintained at heimdall-configs.
Inspired by sherlock and kaifcodec/user-scanner.
The idea was to build an OSINT tool that could extract information by taking advantage of automated browsers and bypass the need for writing complex parsing logic or custom functions.
Unlike the previously mentioned projects, Heimdall is written ground-up in Go. It takes advantage of goroutines, enabling faster scans across a wide variety of services. Further more, automated browsers, custom headers and cookies help to bypass restrictions and get you the most information out of services.
Disclaimer
I built this tool for educational purposes (i.e. solving OSINT CTFs and the like) and not for malicious purposes. I am not responsible for any legal troubles you may face if you use this tool in the wrong contexts.
Installation
- Grab the latest binary and the config from the repository
- Give the binary executable permissions
- Run it!
chmod +x heimdall
./heimdall -u christopher -b /usr/bin/brave
For more configuration options, run it with the -h or --help flag.
CLI Flags
| Flag |
Default |
Description |
-u |
Current OS user |
Username to search for across all configured services. |
-f |
"" (uses ~/.config/heimdall/heimdall-configs/) |
Path to a custom YAML configuration file. If not provided, Heimdall compiles all configs from the default configs directory. |
-b |
/usr/bin/chromium |
Path to a CDP-compliant browser binary. Used by HEADLESS, HEADED, HEADLESS_JSON, and HEADED_JSON modes. |
-c |
all |
Filter services by category (e.g. social_media, development, gaming). Only services matching this category will be scanned. |
-o |
"" (disabled) |
Path to write a JSON output file containing all results. |
--update |
false |
Pull/clone the latest configs from the heimdall-configs repository into ~/.config/heimdall/heimdall-configs/. |
--refresh |
false |
Ignore cached results and fetch everything again. |