Download Dockerfile from wuhp/bbscanner: direct link, hf CLI and curl.
- Browser
- Download file 11.1 kB
-
https://huggingface.co/spaces/wuhp/bbscanner/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/wuhp/bbscanner/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/wuhp/bbscanner/resolve/main/Dockerfile
11.1 kB
| FROM debian:bookworm-slim AS pd-tools | |
| RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl unzip && rm -rf /var/lib/apt/lists/* | |
| RUN curl -fsSL -o /tmp/n.zip https://github.com/projectdiscovery/nuclei/releases/download/v3.11.1/nuclei_3.11.1_linux_amd64.zip && unzip -oq /tmp/n.zip nuclei -d /usr/local/bin | |
| RUN curl -fsSL -o /tmp/k.zip https://github.com/projectdiscovery/katana/releases/download/v1.8.0/katana_1.8.0_linux_amd64.zip && unzip -oq /tmp/k.zip katana -d /usr/local/bin | |
| RUN curl -fsSL -o /tmp/h.zip https://github.com/projectdiscovery/httpx/releases/download/v1.12.0/httpx_1.12.0_linux_amd64.zip && unzip -oq /tmp/h.zip httpx -d /usr/local/bin | |
| RUN curl -fsSL -o /tmp/g.tar.gz https://github.com/lc/gau/releases/download/v2.2.4/gau_2.2.4_linux_amd64.tar.gz && tar -xzf /tmp/g.tar.gz -C /usr/local/bin gau | |
| RUN curl -fsSL -o /tmp/f.tar.gz https://github.com/ffuf/ffuf/releases/download/v2.3.0/ffuf_2.3.0_linux_amd64.tar.gz && tar -xzf /tmp/f.tar.gz -C /usr/local/bin ffuf | |
| RUN curl -fsSL -o /tmp/d.tar.gz https://github.com/hahwul/dalfox/releases/download/v3.2.4/dalfox-v3.2.4-linux-x86_64-musl.tar.gz && mkdir -p /tmp/dalfox-package && tar -xzf /tmp/d.tar.gz -C /tmp/dalfox-package && DALFOX_BIN="$(find /tmp/dalfox-package -type f -name 'dalfox*' | head -n 1)" && test -n "$DALFOX_BIN" && install -m 0755 "$DALFOX_BIN" /usr/local/bin/dalfox | |
| RUN curl -fsSL -o /tmp/s.tar.gz https://github.com/sqlmapproject/sqlmap/archive/refs/tags/1.10.tar.gz && mkdir -p /opt/sqlmap && tar -xzf /tmp/s.tar.gz -C /opt/sqlmap --strip-components=1 | |
| RUN curl -fsSL -o /tmp/nikto.tar.gz https://github.com/sullo/nikto/archive/refs/tags/2.6.1.tar.gz && mkdir -p /opt/nikto && tar -xzf /tmp/nikto.tar.gz -C /opt/nikto --strip-components=1 | |
| RUN curl -fsSL -o /tmp/testssl.tar.gz https://github.com/testssl/testssl.sh/archive/refs/tags/v3.2.4.tar.gz && mkdir -p /opt/testssl && tar -xzf /tmp/testssl.tar.gz -C /opt/testssl --strip-components=1 | |
| RUN curl -fsSL -o /tmp/trufflehog.tgz https://github.com/trufflesecurity/trufflehog/releases/download/v3.99.7/trufflehog_3.99.7_linux_amd64.tar.gz && tar -xzf /tmp/trufflehog.tgz -C /usr/local/bin trufflehog | |
| RUN curl -fsSL -o /tmp/trivy.tgz https://github.com/aquasecurity/trivy/releases/download/v0.76.1/trivy_0.76.1_Linux-64bit.tar.gz && tar -xzf /tmp/trivy.tgz -C /usr/local/bin trivy | |
| RUN curl -fsSL -o /usr/local/bin/osv-scanner https://github.com/google/osv-scanner/releases/download/v2.7.0/osv-scanner_linux_amd64 && chmod +x /usr/local/bin/osv-scanner | |
| RUN curl -fsSL -o /tmp/kr.tgz https://github.com/assetnote/kiterunner/releases/download/v1.0.2/kiterunner_1.0.2_linux_amd64.tar.gz && tar -xzf /tmp/kr.tgz -C /usr/local/bin kr | |
| RUN curl -fsSL -o /tmp/amass.zip https://github.com/owasp-amass/amass/releases/download/v4.2.0/amass_Linux_amd64.zip && unzip -oq /tmp/amass.zip -d /tmp/amass && install -m 0755 /tmp/amass/amass_Linux_amd64/amass /usr/local/bin/amass | |
| FROM ruby:3.3.13-slim-bookworm AS wp-tools | |
| RUN apt-get update && apt-get install -y --no-install-recommends build-essential libcurl4-openssl-dev libffi-dev libyaml-dev zlib1g-dev && rm -rf /var/lib/apt/lists/* | |
| RUN gem install wpscan -v 4.2.0 --no-document | |
| # Metadata is fetched during the remote image build, never during a target scan. | |
| RUN wpscan --update | |
| FROM node:22-bookworm-slim AS js-tools | |
| RUN npm install --global retire@6.1.0 | |
| RUN mkdir -p /opt/retire-db && node -e "fetch('https://raw.githubusercontent.com/RetireJS/retire.js/6.1.0/repository/jsrepository-v5.json').then(r => { if (!r.ok) throw Error(r.status); return r.text(); }).then(t => { JSON.parse(t); require('fs').writeFileSync('/opt/retire-db/jsrepository-v5.json', t); }).catch(e => { console.error(e); process.exit(1); })" | |
| FROM python:3.12-slim-bookworm AS wapiti-tools | |
| RUN python -m venv --copies /opt/wapiti && /opt/wapiti/bin/pip install --no-cache-dir wapiti3==3.3.2 | |
| FROM python:3.12-slim-bookworm AS final-python-tools | |
| RUN python -m venv --copies /opt/depscan && /opt/depscan/bin/pip install --no-cache-dir owasp-depscan==6.3.0 | |
| RUN python -m venv --copies /opt/nettacker && /opt/nettacker/bin/pip install --no-cache-dir nettacker==0.4.1 | |
| # Deliberately install only dependencies used by the remote REST/probe/detector profile; | |
| # no local model backends or GPU frameworks are used in the HF integration. | |
| RUN python -m venv --copies /opt/garak && /opt/garak/bin/pip install --no-cache-dir --no-deps garak==0.17.1 && /opt/garak/bin/pip install --no-cache-dir requests backoff jsonpath-ng PyYAML xdg-base-dirs colorama tqdm | |
| FROM python:3.12-slim-bookworm AS analysis-tools | |
| RUN python -m venv --copies /opt/wafw00f && /opt/wafw00f/bin/pip install --no-cache-dir wafw00f==2.4.2 | |
| RUN python -m venv --copies /opt/semgrep && /opt/semgrep/bin/pip install --no-cache-dir semgrep==1.183.0 | |
| FROM python:3.12-slim-bookworm AS protocol-tools | |
| RUN python -m venv --copies /opt/protocol && /opt/protocol/bin/pip install --no-cache-dir requests==2.32.5 dnspython==2.8.0 | |
| # Native engines/data and their licenses are fetched only during the remote build. | |
| RUN python -c 'from pathlib import Path; from urllib.request import urlopen; files=[["https://raw.githubusercontent.com/dolevf/graphw00f/4901f824140a2da168876412593c213afbdd75fb/graphw00f/lib.py","/opt/graphw00f/graphw00f/lib.py"],["https://raw.githubusercontent.com/dolevf/graphw00f/4901f824140a2da168876412593c213afbdd75fb/graphw00f/helpers.py","/opt/graphw00f/graphw00f/helpers.py"],["https://raw.githubusercontent.com/dolevf/graphw00f/4901f824140a2da168876412593c213afbdd75fb/version.py","/opt/graphw00f/version.py"],["https://raw.githubusercontent.com/dolevf/graphw00f/4901f824140a2da168876412593c213afbdd75fb/LICENSE","/opt/graphw00f/LICENSE"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/core/__init__.py","/opt/corsy/core/__init__.py"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/core/tests.py","/opt/corsy/core/tests.py"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/core/requester.py","/opt/corsy/core/requester.py"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/core/utils.py","/opt/corsy/core/utils.py"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/core/colors.py","/opt/corsy/core/colors.py"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/db/details.json","/opt/corsy/db/details.json"],["https://raw.githubusercontent.com/s0md3v/Corsy/2985ae24da524ba6905d36bfbadca7fe71a9f199/LICENSE","/opt/corsy/LICENSE"],["https://raw.githubusercontent.com/EdOverflow/can-i-take-over-xyz/5bd4e12837911c8475486f1da922c9b9c706e632/fingerprints.json","/opt/takeover/fingerprints.json"],["https://raw.githubusercontent.com/EdOverflow/can-i-take-over-xyz/5bd4e12837911c8475486f1da922c9b9c706e632/LICENSE","/opt/takeover/LICENSE"]]; [(Path(dst).parent.mkdir(parents=True,exist_ok=True),Path(dst).write_bytes(urlopen(url,timeout=30).read())) for url,dst in files]' | |
| FROM python:3.12-slim-bookworm AS idor-tools | |
| RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/* | |
| # Pin the upstream core and retain its MIT license. No GUI or upstream CLI. | |
| RUN mkdir -p /opt/idor-forge && curl -fsSL https://raw.githubusercontent.com/errorfiathck/IDOR-Forge/bc37cfc9143b40d7f91d1fa25753a22e908f4e84/core/IDORChecker.py -o /opt/idor-forge/IDORChecker.py && curl -fsSL https://raw.githubusercontent.com/errorfiathck/IDOR-Forge/bc37cfc9143b40d7f91d1fa25753a22e908f4e84/LICENSE -o /opt/idor-forge/LICENSE | |
| RUN python -m venv --copies /opt/idor-forge-venv && /opt/idor-forge-venv/bin/pip install --no-cache-dir numpy==1.26.4 matplotlib==3.8.4 tabulate==0.9.0 requests==2.32.5 colorama==0.4.6 beautifulsoup4==4.14.3 pydantic==2.12.3 | |
| FROM zaproxy/zap-stable | |
| USER root | |
| COPY --from=protocol-tools /opt/protocol /opt/protocol | |
| COPY --from=protocol-tools /opt/graphw00f /opt/graphw00f | |
| COPY --from=protocol-tools /opt/corsy /opt/corsy | |
| COPY --from=protocol-tools /opt/takeover /opt/takeover | |
| COPY --from=analysis-tools /opt/wafw00f /opt/wafw00f | |
| COPY --from=analysis-tools /opt/semgrep /opt/semgrep | |
| COPY --from=wp-tools /usr/local/ /usr/local/ | |
| COPY --from=idor-tools /opt/idor-forge /opt/idor-forge | |
| COPY --from=idor-tools /opt/idor-forge-venv /opt/idor-forge-venv | |
| COPY --from=final-python-tools /opt/depscan /opt/depscan | |
| COPY --from=final-python-tools /opt/nettacker /opt/nettacker | |
| COPY --from=final-python-tools /opt/garak /opt/garak | |
| COPY --from=pd-tools /usr/local/bin/trufflehog /usr/local/bin/trufflehog | |
| COPY --from=pd-tools /usr/local/bin/trivy /usr/local/bin/trivy | |
| COPY --from=pd-tools /usr/local/bin/osv-scanner /usr/local/bin/osv-scanner | |
| COPY --from=pd-tools /usr/local/bin/kr /usr/local/bin/kr | |
| COPY --from=pd-tools /usr/local/bin/amass /usr/local/bin/amass | |
| COPY --from=js-tools /usr/local/bin/node /usr/local/bin/node | |
| COPY --from=js-tools /usr/local/lib/node_modules/retire /opt/retire | |
| COPY --from=js-tools /opt/retire-db /opt/retire-db | |
| COPY --from=wapiti-tools /opt/wapiti /opt/wapiti | |
| COPY --from=wapiti-tools /usr/local/bin/python3.12 /usr/local/bin/python3.12 | |
| COPY --from=wapiti-tools /usr/local/lib/libpython3.12.so* /usr/local/lib/ | |
| COPY --from=wapiti-tools /usr/local/lib/python3.12 /usr/local/lib/python3.12 | |
| COPY --from=wp-tools /root/.cache/wpscan/db /opt/wpscan-db | |
| COPY --from=pd-tools /opt/nikto /opt/nikto | |
| COPY --from=pd-tools /opt/testssl /opt/testssl | |
| COPY --from=pd-tools /usr/local/bin/nuclei /usr/local/bin/nuclei | |
| COPY --from=pd-tools /usr/local/bin/katana /usr/local/bin/katana | |
| COPY --from=pd-tools /usr/local/bin/httpx /usr/local/bin/pd-httpx | |
| COPY --from=pd-tools /usr/local/bin/gau /usr/local/bin/gau | |
| COPY --from=pd-tools /usr/local/bin/ffuf /usr/local/bin/ffuf | |
| COPY --from=pd-tools /usr/local/bin/dalfox /usr/local/bin/dalfox | |
| COPY --from=pd-tools /opt/sqlmap /opt/sqlmap | |
| RUN apt-get update && apt-get install -y --no-install-recommends python3-venv python3-pip perl libxml-writer-perl libxml-libxml-perl libjson-perl libnet-ssleay-perl libio-socket-ssl-perl openssl libcurl4 libyaml-0-2 libgmp10 libffi8 libgdbm6 libgdbm-compat4 libreadline8 zlib1g procps dnsutils ldnsutils coreutils bsdextrautils xxd gawk socat curl libidn2-0 libstdc++6 libsqlite3-0 && rm -rf /var/lib/apt/lists/* | |
| RUN python3 -m venv /opt/asfb-venv && /opt/asfb-venv/bin/pip install --no-cache-dir fastapi==0.115.12 uvicorn==0.34.2 python-multipart==0.0.20 httpx==0.28.1 arjun==2.2.7 PyYAML==6.0.2 | |
| WORKDIR /app | |
| COPY --chown=zap:zap app /app/app | |
| RUN test -s /app/app/nuclei-templates/technology-headers.yaml | |
| COPY --chown=zap:zap start.sh /app/start.sh | |
| RUN chmod +x /app/start.sh && mkdir -p /app/data/scanner-cache /home/zap/.cache/wpscan /home/zap/.config/garak /home/zap/.local/share/garak && cp -a /opt/wpscan-db /home/zap/.cache/wpscan/db && chown -R zap:zap /app/data /home/zap/.cache /home/zap/.config /home/zap/.local && ldconfig | |
| USER zap | |
| ENV GEM_HOME="/usr/local/bundle" | |
| ENV PATH="/opt/asfb-venv/bin:/usr/local/bundle/bin:$PATH" PYTHONUNBUFFERED=1 | |
| EXPOSE 7860 | |
| CMD ["/app/start.sh"] | |