
la suite de pentesting ultra-rapide.
installation · utilisation · modules · documentation · contribuer
reconnaissance rapide et concurrente jusqu'à l'exploitation en un seul binaire. chaque scanner partage un client HTTP avec pool de connexions.
sif est un scanner de reconnaissance et d'exploitation qui exécute toute la chaîne en un seul binaire : énumération de sous-domaines, scan de ports, crawler, nuclei, détection de frameworks/CVE, extraction de secrets JS, sondes de vulnérabilités web (CORS/XSS/redirection), vérifications cloud et de prise de contrôle. 25+ types de scan, une seule commande.
sif -u https://example.com -dnslist -ports -crawl -js -framework -nuclei
nuclei et colly sont compilés en tant que bibliothèques plutôt que d'être invoqués via un shell (il n'y a pas de exec.Command dans l'arborescence), ce qui donne un binaire statique unique sans dépendances d'exécution et sans rien à connecter.
chaque scanner passe par un seul client HTTP partagé et un pool de travailleurs avec vol de tâches. -proxy, -H, -cookie et -rate-limit s'appliquent à l'ensemble de la session en une fois, les connexions sont mises en pool et réutilisées tout au long du scan (un scan sur un seul hôte réutilise une connexion pour ~50 requêtes au lieu d'établir 50 connexions), et un hôte lent ne bloque pas les autres. Ce client partagé est la raison pratique d'utiliser cet outil plutôt que d'enchaîner une pile d'outils séparés. Le scan de ports est basé sur connect(), donc rustscan et nmap sont toujours plus rapides pour les scans de ports bruts.
il lit les cibles depuis stdin et affiche les résultats un par ligne sous -silent, ce qui permet la composition :
subfinder -d example.com | sif -silent -crawl -js -nuclei | notify
-diff transforme une renumérisation en moniteur qui ne rapporte que ce qui a changé, -notify envoie les résultats vers slack/discord/telegram/webhook, et exporte au format sarif et markdown.
brew tap vmfunc/sif
brew install sif
installez en utilisant votre assistant AUR préféré :
yay -S sif
# ou
paru -S sif
# nixpkgs (déclaratif : ajouter à configuration.nix ou home-manager)
environment.systemPackages = [ pkgs.sif ];
# ou de manière impérative
nix profile install nixpkgs#sif
# ou simplement l'exécuter sans installer
nix run nixpkgs#sif -- -u https://example.com -headers -sh -framework
le dépôt fournit également un flake si vous voulez construire depuis les sources :
nix run github:vmfunc/sif
curl -1sLf 'https://dl.cloudsmith.io/public/sif/deb/setup.deb.sh' | sudo -E bash
sudo apt-get install sif
téléchargez le dernier binaire depuis releases.
git clone https://github.com/vmfunc/sif.git
cd sif
make
nécessite go 1.25+
git clone https://aur.archlinux.org/sif.git
cd sif
makepkg -si
# scan basique
./sif -u https://example.com
# fuzzing de répertoires
./sif -u https://example.com -dirlist medium
# énumération de sous-domaines
./sif -u https://example.com -dnslist medium
# scan de ports
./sif -u https://example.com -ports common
# détection de framework JavaScript + mauvaise configuration cloud
./sif -u https://example.com -js -c3
# renseignements sur l'hôte via shodan (nécessite la variable d'environnement SHODAN_API_KEY)
./sif -u https://example.com -shodan
# découverte de domaine via securitytrails (nécessite la variable d'environnement SECURITYTRAILS_API_KEY)
# découvre les sous-domaines + domaines associés, puis scanne tous
./sif -u https://example.com -securitytrails -headers
# recon SQL + scan LFI
./sif -u https://example.com -sql -lfi
# sondes de vulnérabilités web (cors, open redirect, xss réfléchi)
./sif -u https://example.com -cors -redirect -xss
# détection de framework (avec recherche CVE)
./sif -u https://example.com -framework
# une large inspection
./sif -u https://example.com -dirlist small -dnslist small -ports common -headers -sh -cms -framework -git -whois
exécutez ./sif -h pour toutes les options.
quelques sous-commandes s'exécutent sans scan :
# affiche la version (les builds de release sont estampillés ; les builds locales utilisent git describe)
./sif version
# affiche les notes de la dernière version (également -pn)
./sif patchnote
la première fois que vous exécutez une nouvelle version, sif affiche les notes de cette version une seule fois. définissez SIF_NO_PATCHNOTES=1 pour désactiver.
sif a une architecture modulaire. les modules sont définis en yaml et peuvent être étendus par les utilisateurs.