sif(1)

πŸ“¦ version 0-unstable-2026-10, in nixpkgs unstable

✨ sif(1) β€” the manual, but make it cute ✨

okay so bestie, listen πŸ’– this is sif β€” the blazing-fast pentesting suite β€” and this page is literally everything you need to know about it. it's sif(1) in the manual, and yes it slays.


πŸŽ€ SYNOPSIS πŸŽ€

sif -u url [scans] [options]
sif -f file [scans] [options]
targets | sif [scans] [options]
sif {patchnote|version}

πŸ¦‹ DESCRIPTION πŸ¦‹

sif is a modular recon and exploitation suite. it runs multiple scan types concurrently against one or more targets, and β€” the fun part β€” you can extend it with yaml modules 🧚

about urls, here's the vibe check:

  • a scheme-less target defaults to https:// (she just assumes, respectfully)
  • an explicit http:// or https:// is kept exactly as you wrote it
  • any other scheme is rejected πŸ’€ no cap

🌸 TARGETS 🌸

  • -u, --urls list β€” comma-separated list of urls to scan.
  • -f, --file path β€” file with one url per line.
  • stdin β€” when stdin is a pipe, one target per line is read from it, alongside any -u / -f targets. this is the whole point: it lets sif slot into a unix pipeline (e.g. subfinder | sif -silent | notify). pipeline girlies rise up 🫢

πŸ’… SCANS πŸ’…

so many scans. an icon. a legend. here we go:

  • -dirlist size β€” directory and file fuzzing (small/medium/large).
  • -mc codes β€” dirlist: match only these status codes (comma list, e.g. 200,301).
  • -fc codes β€” dirlist: filter out these status codes (comma list).
  • -fs sizes β€” dirlist: filter out responses of these body sizes (comma list).
  • -fw counts β€” dirlist: filter out responses with these word counts (comma list).
  • -fr regex β€” dirlist: filter out responses whose body matches this regex.
  • -ac β€” dirlist: auto-calibrate the soft-404 wildcard baseline so catch-all 200s are dropped. genuinely so satisfying ✨
  • -w path|url β€” dirlist: custom wordlist (local file or url); overrides the -dirlist size.
  • -e exts β€” dirlist: extensions appended to each word (comma list, e.g. php,bak,env).
  • -dnslist size β€” subdomain enumeration (small/medium/large).
  • -ports scope β€” port scanning (common/full).
  • -nuclei β€” vulnerability scanning with nuclei templates.
  • -dork β€” automated google dorking.
  • -js β€” javascript analysis + secret and endpoint extraction.
  • -c3 β€” cloud storage misconfiguration scan.
  • -headers β€” dump the target's response headers.
  • -sh, --security-headers β€” flag missing or weak security headers and headers that leak server internals.
  • -st β€” subdomain takeover detection (requires -dnslist).
  • -cms β€” cms detection.
  • -whois β€” whois lookup.
  • -git β€” exposed git repository detection.
  • -shodan β€” shodan host lookup (requires SHODAN_API_KEY).
  • -securitytrails β€” domain discovery and target expansion (requires SECURITYTRAILS_API_KEY).
  • -sql β€” sql reconnaissance (admin panels, error disclosure).
  • -lfi β€” local file inclusion reconnaissance.
  • -jwt β€” jwt discovery plus offline weakness analysis (alg:none, weak hmac secret, missing/expired exp, sensitive plaintext claims).
  • -openapi β€” openapi/swagger spec exposure probe; enumerates paths, methods and unauthenticated operations.
  • -favicon β€” favicon hash fingerprinting (shodan-style mmh3); matches bundled tech and prints the http.favicon.hash pivot query. iykyk πŸ‘‘
  • -cors β€” cors misconfiguration probe (reflected/permissive origins).
  • -redirect β€” open redirect probe.
  • -xss β€” reflected xss probe.
  • -framework β€” framework detection with cve lookup.
  • -crawl β€” web crawler; spiders same-host links, scripts and forms, respecting robots.txt.
  • -crawl-depth n β€” max crawl recursion depth (default 2).
  • -passive β€” passive subdomain and historical url discovery from third-party feeds (zero traffic to the target πŸ•΅οΈ).
  • -probe β€” live-host probe; reports liveness, final status, page title, server header and the redirect chain.
  • -noscan β€” skip the base url scan (robots.txt, etc).

πŸ”₯ OPTIONS πŸ”₯

  • -d, --debug β€” enable debug logging.
  • -t, --timeout duration β€” per-request timeout (default 10s).
  • -l, --log dir β€” directory to write logs to.
  • --threads n β€” number of concurrent workers (default 10). values below 1 are clamped to 1 (she's not letting you go to zero, bestie πŸ’€).
  • --template name β€” sif runtime template to use.
  • -config path β€” load flags from a yaml config file (default ~/.config/sif/config.yaml). mutually exclusive with --template.
  • -profile name β€” select a named profile block from the config file.
  • -proxy url β€” route every request through a proxy. accepts http, https or socks5 urls.
  • -H, --header string β€” custom header to send with every request, as Key: Value. repeatable or comma-separated.
  • -cookie string β€” cookie header to send with every request.
  • -rate-limit n β€” cap outbound requests per second (0 = unlimited, default 0).
  • -sarif file β€” write a sarif 2.1.0 report of the run to file.
  • -md, --markdown file β€” write a markdown report of the run to file.
  • -silent β€” plain output for pipelines: route all chrome to stderr and print one normalized finding per line to stdout as [severity] target module title. implies non-interactive (no spinners).
  • -diff β€” diff mode: snapshot each target's findings to a json file and, on a re-scan, print only the delta against the last snapshot (+ new for findings that appeared, - gone for ones that vanished), then overwrite the snapshot. the first run for a target reports everything as new.
  • -store dir β€” snapshot directory for -diff. defaults to the -log dir if set, otherwise <user-config>/sif/state. one sanitized file per target.
  • -notify β€” ship findings to every configured provider (slack, discord, telegram, generic webhook) after the scan. providers are configured env-first and overridable by a yaml file; with nothing configured this is a silent no-op 🀫
  • -notify-severity level β€” minimum severity to send: info, low, medium, high or critical (default medium). findings below the floor are dropped.
  • -notify-config file β€” path to a notify-compatible yaml config whose values override the env vars.
  • -api β€” emit json results and suppress the interactive output.

🧚 MODULES 🧚

  • -m, --modules ids β€” comma-separated module ids to run.
  • -mt, --module-tags tags β€” run modules matching these tags.
  • -am, --all-modules β€” run all loaded modules.
  • -lm, --list-modules β€” list available modules and exit.

⭐ COMMANDS ⭐

  • sif patchnote β€” fetch the latest github release and print its notes. also available as -pn.
  • sif version β€” print the sif version and exit.

🌈 ENVIRONMENT 🌈

  • SHODAN_API_KEY β€” api key used by -shodan.
  • SECURITYTRAILS_API_KEY β€” api key used by -securitytrails.
  • SLACK_WEBHOOK_URL β€” slack incoming webhook used by -notify (yaml key slack_webhook_url).
  • DISCORD_WEBHOOK_URL β€” discord webhook used by -notify (yaml key discord_webhook_url).
  • TELEGRAM_BOT_TOKEN β€” telegram bot token used by -notify (yaml key telegram_api_key); requires TELEGRAM_CHAT_ID too.
  • TELEGRAM_CHAT_ID β€” telegram destination chat used by -notify (yaml key telegram_chat_id).
  • NOTIFY_WEBHOOK_URL β€” generic json webhook used by -notify (yaml key webhook_url).
  • SIF_NO_PATCHNOTES β€” set to any value to suppress the once-per-version patch note shown at startup.

πŸ“ FILES πŸ“

  • ~/.config/sif/modules/ β€” user-defined yaml modules.
  • ~/.config/sif/seen_version β€” records the last release whose notes were shown at startup.

πŸ’œ EXAMPLES πŸ’œ

run a few scans against a host:

sif -u https://example.com -headers -sh -cms -framework

fuzz directories and enumerate subdomains:

sif -u https://example.com -dirlist medium -dnslist medium

scan a list of targets and write logs:

sif -f targets.txt -headers -l ./logs

πŸ‘‘ SEE ALSO πŸ‘‘

project page: https://github.com/vmfunc/sif β€” go follow, it's giving main character energy πŸ¦‹


🫢 AUTHORS 🫢

vmfunc, xyzeva, and the lunchcat contributors. absolute icons, all of them πŸ’–

ngl, if you only remember one thing: -silent + a pipe = the pipeline of your dreams. periodt.

xoxo, that's the whole page πŸ’… β€” source sif, dated 2026-06-10, filed under manual section sif(1). now go break (responsibly) and slay βœ¨πŸŽ€

πŸ“¦ where this page comes from