搭建H1ve |
您所在的位置:网站首页 › ctfd题目 › 搭建H1ve |
前言: 之前都是学长搭建的平台给我们做练习,时间过的好快,我现在已经变成学长了,为了学弟学妹们能学到知识,我就利用一下docker搭建ctfd,顺便记录一下过程,以免之后再搭建忘记。 0x00:搭建环境1.Centos 7 64位2.Docker3.python2.7 0x01:搭建过程 安装docker 安装需要的软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bind-utils
设置yum源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker sudo yum install docker-ce
启动并加入开机启动 sudo systemctl start dockersudo systemctl enable docker
验证是否安装成功 docker version
以上的步骤按照步骤走一般没问题,不会遇到错误什么的(亲测),既然docker安装好了,接下来就安装docker-compose ____________更新 安装docker-compose建议安装这一种来安装 博客如下:
安装python-pip yum -y install epel-release yum -y install python-pip
检查是否安装成功 pip -V
对安装的pip进行升级 pip install --upgrade pip
这里就很平常一个升级,但是我就遇到了一个报错 ModuleNotFoundError: No module named 'pip._internal', (自己忘记截图了,就使用大师傅的图) 查了才知道有可能是与旧版冲突才导致了这个报错,我使用的是第一种修复方法: 修复方法: python -m ensurepippython -m pip install --upgrade pip
ModuleNotFoundError: No module named ‘pip._internal’ , pip 无法下载软件 解决办法 修复好之后,安装docker-compose pip install docker-compose
如果报错出现 ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out
使用这个命令即可: pip --default-timeout=200 install -U docker-compose
但是。。。。我遇到报错却是这样的 用pip安装Python库软件的时候遇到"command 'gcc' failed with exit status 1"错误问题,看似缺少gcc组件,但是确实在安装之前有执行过yum安装gcc,但是还是有这样的问题,原因便是缺少openssl-devel支持(PS:虽然我的报错信息没有显示gcc,但我按照这个命令执行了,确实不会再报错了) 解决方法: yum install gcc libffi-devel python-devel openssl-devel -y
解决"command ‘gcc’ failed with exit status 1"错误问题 执行完毕之后,再回到之前执行的pip安装docker-compose 安装成功,查看一下版本 注意如果docker-compose版本过低,则无法启动H1ve-ctfd 启动ctfd既然docker和docker-compose都准备好了,就来下载一下ctfd,之前我们团队qwzf大佬给我推荐了 H1ve--开源攻防训练平台https://xz.aliyun.com/t/6889
是基于ctfd开放的,而且更帅气,更酷炫,放张图 这一看就被吸引了,这样太帅了,既然就是基于ctfd开放的,那么基本一样,所以我就搭建这个平台: 现在已经开源,感谢大佬们研发出这么帅的网站,可以在服务器中直接下载 git clone https://github.com/D0g3-Lab/H1ve.git
下载好之后进入到目录中,按照Github上的教程走: docker-compose -f single.yml up
但是。。。。又遇到了问题,继续查: 可以发现这个问题是docker: Error response from daemon: ... : net/http: TLS handshake timeout.出现这个问题的原因是因为该命令默认从docker远端镜像仓库中拉取镜像,但由于远端仓库的服务器是在国外,我们国内有的用户很可能都访问不了,所以会报错。 解决方法:使用阿里云镜像加速器 按照上面配置镜像加速器的方法复制粘贴即可,接下来进行安装就可以看到很快的速度了 出现这个页面就欧克了
终于搭建好了,所说遇到很多问题,但也学到了不少东西。 0x02:部署题目(吐槽一句,真的要吐了) MISC和Crypto都好设置 设置好题目,上传附件,添加flag即可 唯独web题目有点麻烦,其实说麻烦也不是太麻烦,就是有点啰嗦,原本打算用docker去搭建web题,但是看了看服务器的配置还是算了的,就采用apache+MySQL+php来搭建,直接让访问var/www/html目录下的文件就可以了 先来下载MySQL: 注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql命令只是更新Mariadb数据库,并不会安装 MySQL 查看已安装的 Mariadb 数据库版本。 rpm -qa|grep -i mariadb
卸载已安装的 Mariadb 数据库 rpm -qa|grep mariadb|xargs rpm -e --nodeps
查看已安装的 Mariadb 数据库版本,确认是否卸载完成 rpm -qa|grep -i mariadb
下载安装包文件 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装mysql yum install mysql-server
检查mysql是否安装成功 rpm -qa | grep mysql
启动 mysql 服务 systemctl start mysqld.service #启动 mysqlsystemctl restart mysqld.service #重启 mysqlsystemctl stop mysqld.service #停止 mysqlsystemctl enable mysqld.service #设置 mysql 开机启动
设置密码 root 用户的密码默认是空的,需要及时用 mysql 的 root 用户登录 mysql -u rootmysql> use mysql;mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';mysql> flush privileges;
CentOS7下使用YUM安装MySQL5.6 设置远程主机登录 这个非常重要,如果不设置的话,就算你php配置文件都对,但是还是连接不到数据库的,一定要注意 mysql> use mysqlmysql> select host,user,password from user;
修改host字段的值,将localhost修改成需要远程连接数据库的ip地址,或者直接修改成%。修改成%表示,所有主机都可以通过root用户访问数据库 mysql> update user set host = '%' where user = 'root';mysql> FLUSH PRIVILEGES;
修改之后,即可连接成功 Host ‘xxx’ is not allowed to connect to this MySQL server. MySQL安装好之后,就来安装apache,在CentOS和RHEL上,Apache软件包和服务称为httpd sudo yum install httpd
安装完成后,启用并启动Apache服务: sudo systemctl enable httpdsudo systemctl start httpd
下载php,这里我下载的版本是5.6的,如果之后web题涉及到了弱类型,这个版本的php就可以 yum install epel-releaserpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmrpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remiyum install --enablerepo=remi --enablerepo=remi-php56 php php-gd php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprofphp -v
centOs7 yum安装php5.6(史上最简) 下载好之后,原本打算再安装一个phpmyadmin,但是爆出了下面的错误,就是安装不了,反正也不是特别需要就不安装了 至此基本就可以了,将你的题目放到/var/www/html目录下,这里还要设置一下目录权限 chmod 711 /var/html/www/web#web是我自己放置题目的目录
设置好就可以,反正有人遍历目录,启动一下Hive-ctfd docker-compose -f single.yml up
发现报错。。。。 原因也很简单,就是因为apache占用了80端口,所以我们需要更改一下apache的默认端口即可 打开 /etc/httpd/conf/httpd.conf 文件把80改为你自己想要设置的端口,如下图我设置的是5555
最后再补充一点: 在Linux中如何导入sql文件 mysql -u 用户名 -p 数据库名 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |