Semi-automatic OSINT framework and package manager
sn0int [![crates.io][crates-img]][crates] [![Documentation Status][docs-img]][docs] [![irc.hackint.org:6697/#sn0int][irc-img]][irc] [![@sn0int][twitter-img]][twitter] [![@sn0int@chaos.social][mastodon-img]][mastodon] [![registry status][registry-img]][registry]
[crates-img]: https://img.shields.io/crates/v/sn0int.svg [crates]: https://crates.io/crates/sn0int [docs-img]: https://readthedocs.org/projects/sn0int/badge/?version=latest [docs]: https://sn0int.readthedocs.io/en/latest/?badge=latest [irc-img]: https://img.shields.io/badge/hackint-%23sn0int-blue.svg [irc]: https://webirc.hackint.org/#irc://irc.hackint.org/#sn0int [twitter-img]: https://img.shields.io/badge/twitter-@sn0int-blue.svg [twitter]: https://twitter.com/sn0int [mastodon-img]: https://img.shields.io/badge/mastodon-chaos.social-blue.svg [mastodon]: https://chaos.social/@sn0int [registry-img]: https://img.shields.io/website/https/sn0int.com.svg?label=registry [registry]: https://sn0int.com/
sn0int (pronounced [/snoษชnt/][ipa]) is a semi-automatic OSINT framework and package manager. It's used by IT security professionals, bug bounty hunters, law enforcement agencies and in security awareness trainings to gather intelligence about a given target or about yourself. sn0int is enumerating attack surface by semi-automatically processing public information and mapping the results in a unified format for followup investigations.
[ipa]: http://ipa-reader.xyz/?text=sno%C9%AAnt
Among other things, sn0int is currently able to:
- Harvest subdomains from certificate transparency logs and passive dns
- Mass resolve collected subdomains and scan for http or https services
- Enrich ip addresses with asn and geoip info
- Harvest emails from pgp keyservers and whois
- Discover compromised logins in breaches
- Find somebody's profiles across the internet
- Enumerate local networks with unique techniques like passive arp
- Gather information about phonenumbers
- Harvest activity and images from social media profiles
- Basic image processing
For questions and support join us on IRC: irc.hackint.org:6697/#sn0int
Installation
Archlinux
pacman -S sn0int
Mac OSX
brew install sn0int
Debian/Ubuntu/Kali
There are prebuilt packages signed by a debian maintainer:
sudo apt install curl sq curl -sSf https://apt.vulns.sexy/kpcyrd.pgp | sq dearmor | sudo tee /etc/apt/trusted.gpg.d/apt-vulns-sexy.gpg > /dev/null echo deb http://apt.vulns.sexy stable main | sudo tee /etc/apt/sources.list.d/apt-vulns-sexy.list sudo apt update
Docker
docker run --rm --init -it -v "$PWD/.cache:/cache" -v "$PWD/.data:/data" ghcr.io/kpcyrd/sn0int
Alpine
apk add sn0int
OpenBSD
pkg_add sn0int
Gentoo
layman -a pentoo emerge --ask net-analyzer/sn0int
NixOS
nix-env -i sn0int
For everything else please have a look at the [detailed list][1].
[1]: https://sn0int.readthedocs.io/en/latest/install.html
Getting started
- Archlinux - Mac OSX - Debian >= bullseye, Ubuntu >= 20.04, Kali - Debian <= buster, Ubuntu <= 19.10 - Fedora/CentOS/Redhat - Docker - Alpine - OpenBSD - Gentoo - NixOS - Windows - Install dependencies - Archlinux - Mac OSX - Debian/Ubuntu/Kali - Alpine - OpenBSD - Gentoo - Windows - Building - Installing the default modules - Adding something to scope - Running a module - Running followup modules on the results - Unscoping entities - Domains - IPs - URLs - Creating a repository - Publish your module - Publish your repo - Reading data from stdin - dbadd - dbadd_ttl - dbactivity - dbupdate - dbselect - Domains - Subdomains - IpAddrs - URLs - Emails - Phonenumbers - Devices - Networks - Accounts - Breaches - Images - Ports - Netblocks - CryptoAddrs - Activity - Relations - subdomainipaddr - networkdevice - breachemail - Anatomy of an event - Logging events - Querying events - Visualization - Receiving notifications - Telegram - Pushover - Discord - Signal - Writing your own module - Setting up notification rules - Testing notifications - Running sn0int automatically - Monitors - Timers - Managing the keyring - Using access keys in scripts - Using access keys as source argument - [\[core\]](https://sn0int.readthedocs.io/en/latest/config.html#core) - [\[namespaces\]](https://sn0int.readthedocs.io/en/latest/config.html#namespaces) - [\[network\]](https://sn0int.readthedocs.io/en/latest/config.html#network) - Linux - OpenBSD - IPC Protocol - Limitations - Diagnosing a sandbox failure - asnlookup - base64decode - base64encode - base64custom_decode - base64custom_encode - base32custom_decode - base32custom_encode - clearerr - createblob - datetime - dbadd - dbadd_ttl - dbactivity - dbselect - dbupdate - dns - error - geoiplookup - hex - hmacmd5 - hmacsha1 - hmacsha2_256 - hmacsha2_512 - hmacsha3_256 - hmacsha3_512 - htmlselect - htmlselect_list - httpmksession - httprequest - httpsend - httpfetch - httpfetch_json - imgload - imgexif - imgahash - imgdhash - imgphash - imgnudity - info - intval - jsondecode - jsondecode_stream - jsonencode - keytrunc_pad - keyring - lasterr - md5 - mqttconnect - mqttsubscribe - mqttrecv - mqttping - pgppubkey - pgppubkey_armored - print - psldomainfromdns_name - ratelimitthrottle - regexfind - regexfind_all - semvermatch - seterr - sha1 - sha2256 - sha2512 - sha3256 - sha3512 - sleep - sn0inttime - sn0inttime_from - sn0intversion - sockconnect - sockupgrade_tls - sockoptions - socksend - sockrecv - socksendline - sockrecvline - sockrecvall - sockrecvline_contains - sockrecvline_regex - sockrecvn - sockrecvuntil - socksendafter - socknewline - sodiumsecretbox_open - status - stdinreadline - stdinreadtoend - strfind - strreplace - strftime - strptime - strval - timeunix - urldecode - urlencode - urlescape - urljoin - urlparse - urlunescape - utf8decode - warn - warnonce - wsconnect - wsoptions - wsrecv_text - wsrecv_binary - wsrecv_json - wssend_text - wssend_binary - wssend_json - x509parse_pem - xmldecode - xmlnamedRationale
This tool was written for companies to help them understand their attack surface from a blackbox point of view. It's often difficult to understand that something is easier to discover than some people assume, putting them at risk of false security.
It's also designed to be useful for red team assessments and bug bounties, which also help companies to identify weaknesses that could result in a compromise.
Some functionality was written to do the same thing for individuals to raise awareness about personal attack surface, privacy and how much data is publicly available. These issues are often out of scope in bug bounties and sometimes by design. We believe that blaming the user is the wrong approach and these issues should be addressed at the root cause by the people designing those systems.
License
GPLv3+