本文首发于 安恒网络空间安全讲武堂 :https://mp.weixin.qq.com/s/ffh-Jkt9UUKHErxeUMw4aw
很多师傅可能很少有接触线下赛AWD的机会,所以可能在比赛中比他人少很多经验,今天就和大家分享一下如何在资源有限的情况下去搭建自己的awd线下赛环境
因为前一段时间写awd框架的缘故,我迫切的需要找一个实战环境来实验自己的框架是否可以正常运行,翻遍各大资源站点后,终于在github上找到了一个开源项目,这里分享给大家:https://github.com/zhl2008/awd-platform
在搭建的过程中大家可能看不太懂项目中的说明文档,所以在这里我实际给大家演示一遍,其中的一些细节我尽量一一说到,另外在文末还会分享我自己写的一个积分统计板(我的第二个版本源码找不到了,所以在这里给大家分享我第一次写的那个)
因为是个人嘛,毕竟资源有限,我只有一个腾讯云的学生机在空闲,今天就以这个机器为例进行搭建,给大家看一下我的配置
这配置很低了,不过实测开启10个队伍的靶机是无压力的
首先我们装一个ubuntu16.04的云服务器,然后登陆远程的ssh
将项目克隆到服务器上:
git clone https://github.com/zhl2008/awd-platform.git
然后进入项目
cd awd-platform/
然后下载一下镜像:
docker pull zhl2008/web_14.04
这块我卡了好久,他最后按文档操作会报错,后来我看源码的docker名字不是这个,而是zhl2008/web_14.04 web_14.04 所以为了方便直接可以改一下镜像的名字,这样就不用改源码去了
docker tag zhl2008/web_14.04 web_14.04
然后接下来按照文档里说的操作一下
我这里实际的命令有
python batch.py web_yunnan_simple 10
python start.py ./ 10
这里用这个web_yunnan_simple的环境做例子,这个环境非常典型,包含了很多的基础漏洞,包括我的框架就是依照这个环境测试的
到现在为止,我们的靶机就可以访问了
因为是在一个服务器上运行了多个docker,靶机的映射端口规则是:
team1 ---- 8801
team3 ---- 8802
team3 ---- 8803
....以此类推
例如在我的环境下,靶机的地址就是:http://119.29.147.75:8801-8810
各个靶机的ssh密码可以在项目的文件夹下的pass.txt文件中
ssh的端口规则是:
team1 ---- 2201
team2 ---- 2202
team3 ---- 2203
....以此类推
关于check模块,他的check脚本是不能用的,我们需要进行一些修改,这个规则要根据自己的环镜自己编写,总体思路就是判断页面是否存在,存在就加一分,不存在就减一分,在他内置check脚本的基础上,我们可以稍微修改一下靶机环境的源码,然后用check脚本去访问,在他内置的脚本中还可以修改每次加分和扣分的多少
还有一个要注意的地方就是,在项目的根目录的flag_server/中,我们
要赋予score.txt 和result.txt 777权限,否则分数变动无法进行同步
关于flag的提交方式和文档是一样的
得分情况可以访问ip:8080/score.txt
像我这个
我感觉太难看了,就写了个计分板
在使用的时候改一下源码里的ip地址就可以了
计分板源码打包:https://pan.baidu.com/s/18KlIeluaTtm-kT3KuXHseQ
提取码:cvdn
最后祝x平台越办越好。