docs(skills): remove references to tools not installed in the sandbox#890
Conversation
Skills and the agent system prompt referenced external CLIs that are not present in containers/Dockerfile, which could lead the agent to invoke missing binaries. Replace them with installed equivalents: - asset_discovery: drop amass/cero and the projectdiscovery tools that are not installed (tlsx/dnsx/asnmap/mapcidr/uncover); rewrite around the installed subfinder/httpx/naabu plus curl+jq (crt.sh), openssl s_client, dig, and whois. Stop claiming the full projectdiscovery suite is available. - subdomain_takeover: replace dnsx with dig in the pipeline example. - weak_password_detection: drop hydra/cewl/patator; use ffuf for web logins and nmap NSE *-brute scripts for services; fix dead /usr/share/wordlists and /usr/share/seclists paths (nothing ships by default -> download to /home/pentester/tools/wordlists at runtime). - system_prompt: replace msfconsole with sqlmap in the interactive-process example. active_directory skill is left as-is: it already ships an explicit install block for its tools.
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Greptile SummaryThis PR revises agent guidance to use tools available in the sandbox.
Confidence Score: 4/5The PR should not merge until the asset-discovery pipeline stops claiming that The revised skill can direct agents to pass incompatible JSONL and DNS text formats between Subfinder, dig, and httpx, causing the reconnaissance stage to fail or lose discovered assets. Files Needing Attention: strix/skills/reconnaissance/asset_discovery.md Important Files Changed
Prompt To Fix All With AIFix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
strix/skills/reconnaissance/asset_discovery.md:146
**Broken JSON discovery pipeline**
When an agent follows this pipeline while retaining JSON output, `dig` neither consumes Subfinder JSONL nor emits JSONL for the following stage, causing DNS resolution or downstream parsing to fail and discovered hosts to be omitted.
Reviews (1): Last reviewed commit: "docs(skills): remove references to tools..." | Re-trigger Greptile |
| 5. Wildcard SANs reveal naming conventions — seed targeted guesses instead of blind brute force. | ||
| 6. Cluster by function, not product name, so the workflow generalizes to any exposed service. | ||
| 7. Keep JSON output throughout so stages chain cleanly (`subfinder` → `dnsx` → `httpx` → `naabu`). | ||
| 7. Keep JSON output throughout so stages chain cleanly (`subfinder` → `dig` → `httpx` → `naabu`). |
There was a problem hiding this comment.
Broken JSON discovery pipeline
When an agent follows this pipeline while retaining JSON output, dig neither consumes Subfinder JSONL nor emits JSONL for the following stage, causing DNS resolution or downstream parsing to fail and discovered hosts to be omitted.
Knowledge Base Used: Skills Library
Prompt To Fix With AI
This is a comment left during a code review.
Path: strix/skills/reconnaissance/asset_discovery.md
Line: 146
Comment:
**Broken JSON discovery pipeline**
When an agent follows this pipeline while retaining JSON output, `dig` neither consumes Subfinder JSONL nor emits JSONL for the following stage, causing DNS resolution or downstream parsing to fail and discovered hosts to be omitted.
**Knowledge Base Used:** [Skills Library](https://app.greptile.com/strix-org-3/-/custom-context/knowledge-base/usestrix/strix/-/docs/skills-library.md)
How can I resolve this? If you propose a fix, please make it concise.
Summary
Several skills and the agent system prompt recommended external CLIs that are not installed in the sandbox image (
containers/Dockerfile). This can send the agent down a dead end invoking a missing binary. This PR audits every skill + prompt and replaces the unavailable tools with installed equivalents (or, where there's no equivalent, reworks the technique around what ships in the image).Sandbox-installed recon/brute tooling is:
subfinder,httpx,naabu,katana,nuclei,ffuf,nmap,sqlmap,wapiti,curl/jq/dig/whois/openssl— but notamass,tlsx,dnsx,asnmap,mapcidr,uncover,cero,hydra,cewl,patator, ormsfconsole.Changes
skills/reconnaissance/asset_discovery.md: previously claimed "the projectdiscovery suite (already available in the sandbox)" and built the whole methodology ontlsx/dnsx/asnmap/mapcidr/uncover(+amass/cero) — none installed. Rewritten around installed tools:tlsx/ active SAN harvest →httpx -tls-grab(oropenssl s_client)dnsx→dig/nslookupasnmap/mapcidr→whois(e.g.whois -h whois.cymru.com)uncover→ direct crt.sh viacurl+jq, Censys/Shodanskills/vulnerabilities/subdomain_takeover.md: pipeline exampleresolve (dnsx)→resolve (dig).skills/vulnerabilities/weak_password_detection.md: droppedhydra("Primary Tool"),patator, andcewl; web logins now useffuf, services usenmapNSE*-brutescripts. Replaced dead absolute paths/usr/share/wordlists/rockyou.txtand/usr/share/seclists/...(nothing ships by default) with guidance to download into/home/pentester/tools/wordlistsat runtime.agents/prompts/system_prompt.jinja: interactive-process examplemsfconsole→sqlmap.Left intentionally unchanged
skills/technologies/active_directory.mdreferences bloodhound/impacket/netexec/kerbrute/hashcat/john/smbclient/responder/certipy, but the skill already ships an explicitpipx/go/apt installblock for them, so they are installed-on-demand by design.skills/*mentions ofburpare conceptual comparisons ("humans often use Burp… prefer manualcurl") and anuclei -input-mode burpflag — never claimed as installed.No code paths change; docs/prompt only.
Link to Devin session: https://app.devin.ai/sessions/9deb20122d4a4fdcb02b69c744ff0656
Requested by: @0xallam