从0搭建一个本地CTF靶场
我们平时大部分练习的CTF靶场都是别人的平台的,所以想着自己搭一个来玩玩,用的是CTFd框架,因为网上的教程也比较多,这次搭建也是比较顺利的,记录一下。
**
**
前期准备:
- centos7.x系统的虚拟机
- docker 下载
- docker-compose 下载
- git 的下载
- CTFd 下载
- CTFTraining 题库下载
- CTFd 汉化
一、创建虚拟机:
选择镜像(需提前下载)
。。。。。。。。。。。。。
我装的是带桌面的界面 友好点 (菜)
二、docker安装
下载之前更新一下python版本:
<------更新python版本------>wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz #下载最新版,自行查看tar -xzvf Python-3.9.7.tgz #解压cd Python-3.9.7 #进入解压后的目录mkdir /usr/bin/python3 #创建一个python3目录./configure --prefix=/usr/bin/python3 #指定路径make #编译make install #安装mv /usr/bin/python /usr/bin/python_old2 #重命名旧版本python以免覆盖ln -s /usr/bin/python3/bin/python3 /usr/bin/python #建立新版本软连接python -V #成功修改默认python为Python-3.9.7
<------修改pip3------>vim ~/.bash_profile #修改pip3指定路径里面有一行修改为:PATH=$PATH:$HOME/bin:/usr/bin/python3/binsource ~/.bash_profile #刷新配置即可
<------修改yum------>
1.更新yum包
yum update #更新前检查网络是否正常连接
2.安装必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.查看并选择合适的docker版本
yum list docker-ce --showduplicates | sort -r
5.下载docker
yum install docker-ce-17.12.1.ce
6.Docker镜像源加速
cd /etcmkir docker #创建docker目录,因为我这里etc目录下没有所以要手动创建vim docker/daemon.json #创建并编辑docker目录下的daemon.json文件#编辑内容为:{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}systemctl restart docker.service #重启docker生效
三、docker-compose安装
1.选择安装最新的docker-compose版本
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.设置docker-compose执行权限
chmod +x /usr/local/bin/docker-compose
**四、git配置和安装
**
1.查看git版本
git --version #查看当前版本,通常默认是1.8.3,但是太老了
2.卸载旧版本git
yum remove git
3.安装最新版git
wget https://github.com/git/git/archive/v2.33.0.tar.gz #可以先自行去看看最新版本是多少
4.进入解压后的git安装目录
cd git-2.33.0
5.编译
make prefix=/usr/bin/git all #编译正常可以跳过下面报错处理
PS:在使用命令 make 重新编译 Git 的某些源文件时,你可能会遇到以下这些错误:
错误 1 - FATAL ERROR: OPENSSL/SSL.H: NO SUCH FILE OR DIRECTORY
这是缺少openssl-devel导致的,执行命令 yum install --assumeyes openssl-devel
安装即可。
错误 2 - FATAL ERROR: CURL/CURL.H: NO SUCH FILE OR DIRECTORY
这是缺少curl-devel导致的,执行命令yum install --assumeyes curl-devel
安装即可。
错误 3 - FATAL ERROR: EXPAT.H: NO SUCH FILE OR DIRECTORY
这是缺少expat-devel导致的,执行命令 yum install --assumeyes expat-devel
安装即可。
6.编译成功,安装Git至/usr/bin/git路径
make prefix=/usr/bin/git install
7.编辑环境变量配置
vim /etc/profile
8.profile文件末尾追加
export PATH=$PATH:/usr/bin/git/bin
9.刷新配置
source /etc/profile
10.查看git版本
git --version #修改成功
五、CTFd下载和部署
**CTFd 是一款基于 flask 的 CTF 靶场框架,主要包含了用户界面部分和管理员界面部分。项目地址:**https://github.com/CTFd/CTFd
1.下载CTFd
git clone https://github.com/CTFd/CTFd.git
2.进入目录使用docker-compose 启动项目
cd CTFddocker-compose up -d
3.等待他安装完(可能时间有点久耐心等待一下)依赖启动之后,访问 http://127.0.0.1 (ip 改成自己的服务器地址)出现类似下面这个界面,然后填写一些基本信息,一直Next…
六、下载部署CTFd题目
github 上有许多 CTF 题库的开源仓库,但有些整理的未必好,为了遵守容易部署的原则,我选择了 CTFTraining:https://github.com/CTFTraining/CTFTraining 其题库较为详细,并且目录结构清晰,关键是都是通过 docker 编排,完全契合我的环境。
1.下载 CTFTraining 中的题库,这里要注意 CTFTraining 整个项目较大,题目建议一个个下,有选择性的拉取,下面以拉取第一个题目为例
mkdir CTFTrainingcd CTFTraininggit clone https://github.com/CTFTraining/0ctf_2016_unserialize.git
2.修改 docker-compose.yml 文件
- 学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

cd 0ctf_2016_unserializevim docker-compose.yml# 0ctf_2016_unserializeversion: "2"services: web: build: . image: ctftraining/0ctf_2016_unserialize environment: - FLAG=flag{test_flag} restart: always ports: - "127.0.0.1:8302:80"
此处需要修改两个地方:一个是 flag 的值,写一个自己喜欢的字符串即可,另一个地方是下面的地址和端口号,地址改为 0.0.0.0 端口号选一个未被占用的即可。因为0.0.0.0可以给本地局域网机器访问。
3.启动该题目
docker-compose up -d
4.访问和配置 CTFd 的 Challenge访问 htto://127.0.0.1:8302 (此处改成自己的 ip 和端口号),成功能显示页面即可。进入刚刚搭建好的 CTFd 中 Admin->Challenges,添加一个新的挑战,类型选 standard,填写好题目名字、内容和分值等。
七、汉化CTFd
1.下载汉化包
git clone https://github.com/Gu-f/CTFd_chinese_CN.git
2.替换themes
将CTFd/CTFd/themes的themes文件删除,再移动汉化版本thems到CTFd/CTFd/目录下即可。
3.替换好的效果如下: