sn0int
Framework OSINT semi-automatique et gestionnaire de paquets. Exécute des modules scriptables pour collecter et corréler des données depuis des domaines, IP, e-mails, réseaux sociaux, certificats, et plus encore. Semi-automatic OSINT framework and package manager. Runs scriptable modules to collect and correlate data from domains, IPs, emails, social media, certificates, and more.
↗ https://github.com/kpcyrd/sn0intOverview
sn0int is a semi-automatic OSINT framework with a built-in package manager for community-contributed modules. It stores collected data in a SQLite database and correlates findings across modules — running subdomain discovery automatically feeds into HTTP probing, which feeds into technology detection, etc.
Installation
Kali Linux
sudo apt install sn0int
Arch Linux
yay -S sn0int
Basic Usage
Start sn0int interactive mode
sn0int
Or run a specific module directly
sn0int run -v kpcyrd/subdomains -- --domain example.com
Add a target workspace
sn0int workspace myengagement
Module Management
pkg search subdomains # search for modules
pkg install kpcyrd/subdomains # install module
pkg list # list installed modules
pkg update # update all modules
Common Modules
# Subdomain discovery
use kpcyrd/subdomains
run # runs against current domain scope
# Certificate transparency
use kpcyrd/ctlogs
run
# Port scanning
use kpcyrd/portscan
run
# HTTP probing
use kpcyrd/http-probe
run
# Technology detection (Wappalyzer-like)
use kpcyrd/detect-tech
run
# Email discovery
use kpcyrd/harvester
run
# Twitter/social media
use kpcyrd/twitter
run
# DNS enumeration
use kpcyrd/dns
run
Adding Scope
# Inside sn0int:
add domain example.com
add network 192.168.1.0/24
add email user@example.com
Import from file
scope add domains.txt
Viewing Results
# Show collected data
select domains
select subdomains
select urls
select networks
select emails
# Export results
export json output.json
export csv output.csv
Scripting with sn0int
-- sn0int modules are written in Lua
-- Example simple module:
function run()
local domain = target['value']
local result = dns_lookup({
name=domain,
record_type='A'
})
if result['answer'] ~= nil then
for _, record in ipairs(result['answer']) do
db_add('ipaddr', {value=record['value']})
end
end
end
Tips
- sn0int’s main strength is correlating findings across modules automatically
- Use workspaces to organize different engagements/clients
- The package manager means community keeps adding new sources and techniques
- Results persist in SQLite — you can query the database with raw SQL
Help / Man page
sn0int [subcommand] [options]
Subcommands:
run Run a module
pkg Package management
workspace Manage workspaces
sandbox Test a module safely
completions Generate shell completions
run options:
-v Verbose
-t TARGET Specify target
--workers N Number of workers
pkg options:
search TERM Search registry
install USER/PKG Install package
update Update packages
list List installed
Vue d’ensemble
sn0int est un framework OSINT semi-automatique avec un gestionnaire de paquets intégré pour des modules contribués par la communauté. Il stocke les données collectées dans une base SQLite et corrèle les résultats entre modules : lancer une découverte de sous-domaines alimente automatiquement le probing HTTP, qui alimente la détection de technologies, etc.
Installation
# Kali Linux
sudo apt install sn0int
# Arch Linux
yay -S sn0int
Utilisation de base
# Démarrer le mode interactif de sn0int
sn0int
# Ou lancer un module spécifique directement
sn0int run -v kpcyrd/subdomains -- --domain example.com
# Ajouter un espace de travail cible
sn0int workspace myengagement
Gestion des modules
pkg search subdomains # rechercher des modules
pkg install kpcyrd/subdomains # installer un module
pkg list # lister les modules installés
pkg update # mettre à jour tous les modules
Modules courants
# Découverte de sous-domaines
use kpcyrd/subdomains
run # s'exécute contre le périmètre de domaine actuel
# Certificate transparency
use kpcyrd/ctlogs
run
# Scan de ports
use kpcyrd/portscan
run
# Probing HTTP
use kpcyrd/http-probe
run
# Détection de technologies (façon Wappalyzer)
use kpcyrd/detect-tech
run
# Découverte d'e-mails
use kpcyrd/harvester
run
# Twitter/réseaux sociaux
use kpcyrd/twitter
run
# Énumération DNS
use kpcyrd/dns
run
Ajouter du périmètre
# Dans sn0int :
add domain example.com
add network 192.168.1.0/24
add email user@example.com
# Importer depuis un fichier
scope add domains.txt
Consulter les résultats
# Afficher les données collectées
select domains
select subdomains
select urls
select networks
select emails
# Exporter les résultats
export json output.json
export csv output.csv
Scripter avec sn0int
-- Les modules sn0int sont écrits en Lua
-- Exemple de module simple :
function run()
local domain = target['value']
local result = dns_lookup({
name=domain,
record_type='A'
})
if result['answer'] ~= nil then
for _, record in ipairs(result['answer']) do
db_add('ipaddr', {value=record['value']})
end
end
end
Conseils
- La principale force de sn0int est de corréler automatiquement les résultats entre modules
- Utiliser des espaces de travail pour organiser différentes missions/clients
- Le gestionnaire de paquets signifie que la communauté ajoute continuellement de nouvelles sources et techniques
- Les résultats persistent en SQLite : possibilité d’interroger la base directement en SQL
Aide / Page de manuel
sn0int [subcommand] [options]
Subcommands:
run Run a module
pkg Package management
workspace Manage workspaces
sandbox Test a module safely
completions Generate shell completions
run options:
-v Verbose
-t TARGET Specify target
--workers N Number of workers
pkg options:
search TERM Search registry
install USER/PKG Install package
update Update packages
list List installed