
la suite de pruebas de penetración extremadamente rápida.
instalación · uso · módulos · docs · contribuir
reconocimiento rápido y concurrente hasta explotación en un solo binario. cada escáner comparte un único cliente http con pool de conexiones.
sif es un escáner de reconocimiento y explotación que ejecuta toda la cadena en un solo binario: enumeración de subdominios, escaneo de puertos, rastreador, nuclei, detección de frameworks/cve, extracción de secretos de js, sondeos de vulnerabilidades web (cors/xss/redirect), nube y comprobaciones de takeover. más de 25 tipos de escaneo, un solo comando.
sif -u https://example.com -dnslist -ports -crawl -js -framework -nuclei
nuclei y colly están compilados como librerías en lugar de ser ejecutados por shell (no hay exec.Command en el árbol), así que es un único binario estático sin dependencias de tiempo de ejecución y sin necesidad de enlazar nada.
cada escáner se ejecuta a través de un único cliente http compartido y un pool de workers que roba trabajo. -proxy, -H, -cookie y -rate-limit se aplican a toda la ejecución a la vez, las conexiones se agrupan y reutilizan durante el escaneo (una ejecución de un solo host reutiliza una conexión para ~50 solicitudes en lugar de 50 conexiones nuevas), y un host lento no detiene al resto. ese cliente compartido es la razón práctica para usarlo en lugar de encadenar un conjunto de herramientas separadas. el escaneo de puertos se basa en connect(), así que rustscan y nmap siguen siendo más rápidos en escaneos de puertos en bruto.
lee objetivos desde stdin y muestra hallazgos uno por línea bajo -silent, por lo que se combina:
subfinder -d example.com | sif -silent -crawl -js -nuclei | notify
-diff convierte un re-escaneo en un monitor que solo informa lo que cambió, -notify publica en slack/discord/telegram/webhook, y las ejecuciones exportan a sarif y markdown.
brew tap vmfunc/sif
brew install sif
instala usando tu asistente aur preferido:
yay -S sif
# o
paru -S sif
# nixpkgs (declarativo: añadir a configuration.nix o home-manager)
environment.systemPackages = [ pkgs.sif ];
# o imperativamente
nix profile install nixpkgs#sif
# o simplemente ejecutarlo sin instalar
nix run nixpkgs#sif -- -u https://example.com -headers -sh -framework
el repositorio también incluye un flake si quieres compilar desde el código fuente:
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
descarga el binario más reciente desde lanzamientos.
git clone https://github.com/vmfunc/sif.git
cd sif
make
requiere go 1.25+
git clone https://aur.archlinux.org/sif.git
cd sif
makepkg -si
# escaneo básico
./sif -u https://example.com
# fuzzing de directorios
./sif -u https://example.com -dirlist medium
# enumeración de subdominios
./sif -u https://example.com -dnslist medium
# escaneo de puertos
./sif -u https://example.com -ports common
# detección de frameworks javascript + configuración incorrecta en la nube
./sif -u https://example.com -js -c3
# inteligencia de host shodan (requiere variable de entorno SHODAN_API_KEY)
./sif -u https://example.com -shodan
# descubrimiento de dominios securitytrails (requiere variable de entorno SECURITYTRAILS_API_KEY)
# descubre subdominios + dominios asociados, luego escanea todos
./sif -u https://example.com -securitytrails -headers
# reconocimiento sql + escaneo lfi
./sif -u https://example.com -sql -lfi
# sondeos de vulnerabilidades web (cors, redirección abierta, xss reflejado)
./sif -u https://example.com -cors -redirect -xss
# detección de frameworks (con búsqueda de cve)
./sif -u https://example.com -framework
# un barrido amplio
./sif -u https://example.com -dirlist small -dnslist small -ports common -headers -sh -cms -framework -git -whois
ejecuta ./sif -h para todas las opciones.
un par de subcomandos se ejecutan sin escaneo:
# imprime la versión (los lanzamientos tienen versiones fijas; las compilaciones locales usan git describe)
./sif version
# muestra las últimas notas de lanzamiento (también -pn)
./sif patchnote
la primera vez que ejecutas un nuevo lanzamiento, sif imprime las notas de ese lanzamiento una vez. establece SIF_NO_PATCHNOTES=1 para desactivarlo.
sif tiene una arquitectura modular. los módulos se definen en yaml y pueden ser extendidos por los usuarios.