Streamlined Bash endpoint-collection pipeline: subdomains → responsive hosts → endpoints → JSON → entropy-assisted triage.
SQUIRM is intended for systems you own or are explicitly authorized to assess.
- Keep targets within the approved scope.
- Respect program rules, robots policies where applicable, and target rate limits.
- Use conservative concurrency and stop when a target shows instability.
- Do not use proxies to conceal origin, bypass controls, evade blocking, or distribute unauthorized traffic.
- Validate suspected findings manually before reporting severity or impact.
Ubuntu/Debian (apt):
sudo apt update && sudo apt install -y curl jq python3 python3-pip golang-go
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/projectdiscovery/katana/cmd/katana@latest
pip3 install httpieArch Linux (pacman):
sudo pacman -Syu
sudo pacman -S curl jq python3 go httpie
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/projectdiscovery/katana/cmd/katana@latestThen add Go binaries to PATH:
export PATH="$PATH:$(go env GOPATH)/bin"git clone https://github.com/whathehack81/squirm
cd squirm
chmod +x squirm.sh brain.sh
./squirm.sh -t example.com./squirm.sh -t target.com [OPTIONS]
Options:
--target, -t DOMAIN Authorized target domain
--scope FILE Authorized scope file, one domain per line
--proxy URL Inspection proxy, for example http://127.0.0.1:8080
--out-dir DIR Output directory (default: intel/)
--fast Skip endpoint collection
--entropy Enable entropy scanning for secret candidates
--help, -h Show help
# Single authorized target, full collection
./squirm.sh -t example.com
# Fast mode without endpoint collection
./squirm.sh -t example.com --fast
# Include entropy-assisted candidate detection
./squirm.sh -t example.com --entropy
# Route through a local inspection proxy
./squirm.sh -t example.com --proxy http://127.0.0.1:8080
# Batch process an approved scope file
./squirm.sh --scope targets.txtintel/target.com/
├── raw/
│ ├── subdomains.txt
│ ├── alive.txt
│ ├── endpoints.txt
│ └── cleaned-endpoints.txt
├── classified/
│ ├── auth.txt
│ ├── platform.txt
│ ├── features.txt
│ └── frontend.txt
├── flags/
│ ├── entropy-input.txt
│ └── entropy-candidates.txt
└── report.json
The Brain system scores and prioritizes endpoints for analyst review:
./brain.sh target.comScoring system:
- 90+: critical-review candidate, such as SSRF or configuration exposure
- 80–89: high-review candidate, such as financial, admin, authentication, or IDOR-related surfaces
- 60–79: medium-review candidate, such as debug, staging, or non-production surfaces
- 25–59: low-priority generic endpoints
- 5–24: static assets
- 0–5: likely noise
Scores are prioritization signals, not confirmed vulnerability severity.
Output:
intel/target.com/brain-output.txt
intel/target.com/high-value.txt
| Tool | Purpose | Source |
|---|---|---|
subfinder |
Subdomain enumeration | ProjectDiscovery |
httpx |
HTTP probing | ProjectDiscovery |
katana |
Endpoint crawling | ProjectDiscovery |
gau |
Historical URL collection | Tomnomnom |
jq |
JSON processing | jqlang |
curl |
HTTP requests | curl project |
httpie |
HTTP CLI | HTTPie |
python3 |
Python runtime | Python |
pip |
Python package installation | PyPA |
- Enumeration: discover subdomains.
- Probing: identify responsive hosts.
- Collection: gather current and historical endpoints.
- Cleaning: filter noise and deduplicate results.
- Classification: categorize and prioritize endpoints.
- Analysis: identify entropy-based secret candidates.
- Reporting: generate structured output for analyst review.
- Use
--fastfor lower-impact initial collection. - Run entropy analysis separately for very large datasets.
- Batch only domains listed in the approved scope.
- Use a local proxy for inspection, logging, and debugging—not to bypass controls.
- Add delays or reduce concurrency when the target requires stricter rate limits.
A Python rewrite is in progress with:
- Contract-based module architecture
- Enhanced classification algorithms
- Improved performance and concurrency controls
- Type-hinted code
SQUIRM is created and maintained by Rob (whathehack81) as a practical way to turn broad authorized collection into a smaller, structured analyst queue.
It does not claim that an endpoint is vulnerable. It helps organize what deserves human attention next. That distinction—discovery is not validation—is central to both SQUIRM and Casper.
Found a bug or have a suggestion? Open an issue or submit a pull request.
Current focus:
- Python module refactoring
- Performance and rate-control improvements
- Classification improvements
- Safer defaults and reproducible validation
MIT License. See LICENSE.
Last updated: 2026-07-13 · Status: Active development