Compare commits

...
Author SHA1 Message Date
BaaRai 2fd6ed08fc feat(image): web-recon toolbox - nuclei, httpx, subfinder, katana, ffuf, dalfox, sqlmap
Installs the drost-community take-1 subset (#100) directly into the runtime
image as pinned release binaries (plus a sqlmap checkout symlinked into
PATH), so recon-phase workers get modern tooling through their existing
Bash access with no new trust surface (no docker, no MCP wrapper). Versions
are ARGs for deliberate upgrades; each tool is executed once at build time
so a broken download fails the build instead of a hunt.

Closes #100 (takes 2 and 3 stay design notes: docker-exec integration
remains blocked per #90; catalog/execute MCP gating is future work).
2026-10-21 14:50:21 +02:00
BaaRai 43a072861d Merge pull request #104 from BaaRai/rsi/shadow-lessons
feat(rsi): evidence-gated lesson library in shadow mode
2026-10-21 14:27:40 +02:00
+32
View File
@@ -21,6 +21,38 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
# Web-recon toolbox (drost-community take 1, #100): pinned release binaries installed
# into /usr/local/bin so hunt workers can run them directly through their Bash tool.
# Versions pinned per tool; upgrade deliberately. sqlmap is a python checkout (no
# release binaries) symlinked into PATH.
ARG NUCLEI_VERSION=v3.11.1
ARG HTTPX_VERSION=v1.12.0
ARG SUBFINDER_VERSION=v2.17.0
ARG KATANA_VERSION=v1.8.0
ARG FFUF_VERSION=v2.3.0
ARG DALFOX_VERSION=v3.2.4
RUN set -eux; \
base="https://github.com"; \
pd_fetch() { repo="$1"; ver="$2"; name="$3"; nov="${ver#v}"; \
curl -fsSL "$base/$repo/releases/download/$ver/${name}_${nov}_linux_${TARGETARCH}.zip" -o /tmp/t.zip \
&& unzip -o -q /tmp/t.zip -d /tmp/td \
&& find /tmp/td -type f -name "$name" -exec install -m 0755 {} /usr/local/bin/ \; \
&& rm -rf /tmp/t.zip /tmp/td; }; \
case "$TARGETARCH" in amd64) FFUF_ARCH=amd64; DALFOX_ARCH=x86_64;; arm64) FFUF_ARCH=arm64; DALFOX_ARCH=aarch64;; esac; \
pd_fetch projectdiscovery/nuclei "$NUCLEI_VERSION" nuclei; \
pd_fetch projectdiscovery/httpx "$HTTPX_VERSION" httpx; \
pd_fetch projectdiscovery/subfinder "$SUBFINDER_VERSION" subfinder; \
pd_fetch projectdiscovery/katana "$KATANA_VERSION" katana; \
curl -fsSL "$base/ffuf/ffuf/releases/download/$FFUF_VERSION/ffuf_${FFUF_VERSION#v}_linux_${FFUF_ARCH}.tar.gz" \
| tar -xz -C /usr/local/bin ffuf; \
curl -fsSL "$base/hahwul/dalfox/releases/download/$DALFOX_VERSION/dalfox-${DALFOX_VERSION}-linux-${DALFOX_ARCH}-musl.tar.gz" \
| tar -xz -C /usr/local/bin dalfox; \
chmod +x /usr/local/bin/ffuf /usr/local/bin/dalfox; \
git clone --depth 1 https://github.com/sqlmapproject/sqlmap /opt/sqlmap; \
ln -s /opt/sqlmap/sqlmap.py /usr/local/bin/sqlmap; \
nuclei -version >/dev/null; httpx -version; subfinder -version; katana -version; \
ffuf -V >/dev/null; dalfox version >/dev/null; sqlmap --version >/dev/null
# Preinstall Playwright MCP and CLI (globally) so no npx network download is needed at runtime.
# @playwright/mcp: browser MCP runs directly via `npx @playwright/mcp` (installed globally, no -y/@latest needed).
# @playwright/cli: provides playwright-cli, verified with --help right after install.