Fork 本项目,将你的项目拉取到本地,根据你想制作的靶场环境,新建一个对应的分支。
镜像继承关系的几个例子(命名暂时先这么定,有更好的想法请告诉我):
firmianay/ubuntu1604 -> firmianay/qemu-system:armel -> firmianay/vivotek:remote_stack_overflow-sys
firmianay/ubuntu1604 -> firmianay/qemu-user-static -> firmianay/vivotek:remote_stack_overflow-user
firmianay/ubuntu1604 -> firmianay/qemu-system:mips -> firmianay/huawei:cve-2017-17215-sys
firmianay/ubuntu1604 -> firmianay/qemu-system:armhf -> firmianay/netgear:psv-2020-0211-sys
firmianay/ubuntu1604 -> firmianay/binwalk:noentry -> firmianay/firmadyne (firmianay/firmae) -> firmianay/dlink:cve-2019-17621
在制作镜像时,需要尽量遵守目录结构,示例如下:
/IoT-vulhub(master*) tree Vivotek/
Vivotek/ # 固件厂商
└── remote_stack_overflow # 漏洞名称
├── README.md # 说明文档
├── crash.png
├── docker-compose-system.yml # QEMU 系统模式配置
├── docker-compose-user.yml # QEMU 用户模式配置
├── firmware # 固件目录
│ └── CC8160-VVTK-0100d.flash.zip
├── system-emu # QEMU 系统模式目录
│ ├── Dockerfile
│ ├── run.sh # 启动脚本
│ └── tools # 复现所需工具脚本或程序等
│ ├── README.md
│ └── poc.sh
└── user-emu # QEMU 用户模式目录
├── Dockerfile
└── run.sh # 启动脚本
约定:
- 调试端口:6666
- nc 本地监听端口:7777
- 80 端口映射到本机端口:8888
- python3 http.server 端口:8000
- msf 反向 shell 端口:31337
- ssh 映射到本机端口:1234
- ssh socks 本机代理端口:2345
目前通常有四种,也可以有其他,只要能用,形式不限:
docker-compose -f docker-compose-user.yml build # QEMU 用户模式模拟
docker-compose -f docker-compose-system.yml build # QEMU 系统模式模拟
docker-compose -f docker-compose-firmadyne.yml build # firmadyne 模拟
docker-compose -f docker-compose-firmae.yml build # firmae 模拟(方便调试)
...
环境搭建完成之后,编写 README,添加漏洞说明、截图、利用文档等。
最后,向 IoT-vulhub 项目提交 pull request。