# 创建自定义桥接网络
docker network create --subnet=10.10.0.0/24 pentest-net
# 运行容器并指定静态IP
docker run -it --network pentest-net --ip 10.10.0.10 kalilinux/kali-rolling
# 创建共享数据卷
docker volume create pentest-data
# 挂载数据卷到多个工具容器
docker run -it --name metasploit -v pentest-data:/data kalilinux/kali-rolling
docker run -it --name burp -v pentest-data:/data kalilinux/kali-rolling
# 限制CPU和内存使用
docker run -it --cpus 2 --memory 4g --name kali kalilinux/kali-rolling
FROM kalilinux/kali-rolling
RUN apt update && apt install -y metasploit-framework
ENTRYPOINT ["msfconsole"]
构建并运行:
docker build -t metasploit .
docker run -it --network host metasploit
FROM kalilinux/kali-rolling
RUN apt update && apt install -y burpsuite
ENTRYPOINT ["burpsuite"]
X11转发运行:
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix burp
FROM kalilinux/kali-rolling
RUN apt update && apt install -y nmap
ENTRYPOINT ["nmap"]
特权模式运行(需要原始网络访问):
docker run -it --rm --privileged nmap -sS -T4 192.168.1.0/24
version: '3'
services:
kali:
image: kalilinux/kali-rolling
container_name: kali-main
networks:
- pentest-net
volumes:
- pentest-data:/data
tty: true
metasploit:
image: metasploit
container_name: msf
networks:
- pentest-net
depends_on:
- kali
burp:
image: burp
container_name: burp
environment:
- DISPLAY=${DISPLAY}
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- pentest-data:/data
networks:
pentest-net:
driver: bridge
volumes:
pentest-data:
#!/bin/bash
# 启动环境
docker-compose up -d
# 等待服务启动
sleep 10
# 执行自动化扫描
docker exec kali nmap -sV -oA /data/scan_results 10.10.0.0/24
# 分析结果并生成报告
docker exec kali python3 /scripts/analyze_results.py /data/scan_results.xml
bash
docker volume create --opt encrypted=true pentest-secrets
bash
docker run --log-driver=syslog --log-opt syslog-address=udp://logserver:514 kali
bash
docker pull kalilinux/kali-rolling
docker-compose build --no-cache
通过Linux容器搭建渗透测试环境提供了极大的灵活性和可重复性。您可以根据需要快速扩展或缩减环境规模,轻松维护不同版本的工具集,并确保每次测试都在干净一致的环境中开始。记得始终遵守法律法规,仅在授权范围内进行安全测试。