国庆返校了,感觉这是最后一段时间在学校,发现实验室有一台废弃的笔记本(4G内存,240G固态,废物U),丢了怪可惜的,就用这个笔记本来搭建一套基础设施吧。最后成效是靶场和所有题目穿透出网
内网服务有:共享网盘、共享协作文档、开源渗透靶场、sqlilabs、uploadlabs、xsslabs、w11scan基础指纹识别系统、awvs漏洞扫描系统等,反正白嫖开源项目就完了
一、制作系统
必然是无图形界面的linux,安装也简单
1、下载镜像
我在http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/下载,下载ubuntu-16.04.7-server-amd64.is无图形界面就800m-900m
2 、制作系统
我直接使用软碟通制作启动盘,简单快捷https://cn.ultraiso.net/xiazai.html,写入硬盘映像即可
3、安装系统
毕竟是废弃的笔记本,那就直接使用全磁盘安装
4、遇到的一些问题
首先是网络问题,刚安装完的系统,为了在内网稳定还是需要配置稳定的ip
首先查看自己的网卡名字ifconfig -a
,发现2个,一个是eno1 一个是lo,我们是要选择eno1来配置网络,修改/etc/network/interfaces
,添加网络,这里路由器分配192.168.199.1段,我们给他192.168.199.136的ip
1 | # This file describes the network interfaces available on your system |
还需要修改dns,/etc/resolv.conf
,指定网关就行
1 | # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) |
然后更新网络配置
1 | sudo ifup eth0 |
修改语言
1 | root@root:~#cat /etc/default/locale |
然后就可以安装ssh,git
1 | apt-get install openssh-server |
然后就可以使用xshell自己的笔记本连操作
linux还需要设置一下关盖等不休眠不操作,总不可能让笔记本一直打开vim /etc/systemd/logind.conf
核心配置为ignore
1 | 24 HandleLidSwitch=ignore |
二、搭建CTF平台
1 | 安装最新的docker |
命令执行完成之后,执行 docker verison 来查看是否安装完成。
1 | sudo curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose |
同样的,命令执行完成之后,执行 docker-compose verison 来查看是否安装完成。
换源
1 | sudo vim /etc/docker/daemon.json |
将daemon.json的值改为:
1 | { |
(这里还是用一下阿里云申请的镜像快很多)
安装H1ve,这里改了改源码的ui,不重要
1 |
|
三、配置frp
1、平台映射
我们内网是8000,也就找了一台学生机来穿透出去,选择穿透好处是迁移方便以及废弃笔记本虽然废弃,也比服务器性能好多了(学生机就是穷)。
我们也直接在内网服务器上配置frp客户端,这里平台和ssh都映射一下,方便配置
frpc.ini
1 | [common] |
公网只需要配置frps.ini
1 | [common] |
先运行公网的,然后运行内网的frpc,公网就可以访问到
2、题目映射,目前好像还没有全端口映射的,我想着把10001-10099的99个ip先映射
其实多写一些配置就行,这里用脚本python build_frp.py > frpc.ini
1 | print("[common]\nserver_addr = XXX.XX.XXX.XX\nserver_port = 7002\n") |
3、我错了,真可以多端口range映射
参阅https://github.com/fatedier/frp#range-ports-mapping
Proxy with names that start with range: will support mapping range ports.
1 | # frpc.ini |
frpc will generate 8 proxies like test_tcp_0, test_tcp_1, …, test_tcp_7.
顺便把22也映射一下备用
四 、快速建设其他服务
网盘这样的丢内网就行、就配置穿透了
1、内网网盘
共享一下文件资源等docker run -d -p 1880:80 owncloud:10.0
2、内网hackmd
协作文档,下次在实验室打比赛啥的,或者记录一下内网文档啥的
1 | git clone https://github.com/hackmdio/docker-hackmd.git |
然后3000端口访问
3、内网webug安全靶场
webug是一个简单靶场,开源免费用起来方便
1 | docker pull area39/webug |
默认密码
admin
admin
4、内网DVWA
DVWA靶场
1 | docker pull vulnerables/web-dvwa |
默认密码
admin
password
5、awvs
awvs简单漏扫用起来方便
1 | docker pull secfa/docker-awvs |
默认用户密码
username: admin@admin.com
password: Admin123
6、w11scan
w11scan是一个开源指纹识别系统,用起来也挺舒服
1 | docker pull boyhack/w11scan |
默认密码
admin
w11scan
7、sqli-labs
1 | docker pull acgpiano/sqli-labs |
8、upload-labs
1 | docker pull c0ny1/upload-labs |
9、bwapp
1 | docker pull raesene/bwapp |
默认账号密码
bee bug
10、webgoat-8.0
1 | docker pull webgoat/webgoat-8.0 |
11、XSS靶场
先去这里拉下来
https://github.com/c0ny1/vulstudy
里面有几个目录,这里xss用这2个,都有dockerfile自己进去build然后run就行
xssed
XSS-challenge-tour
12、hexo导航栏
随着靶场多了,还是整一个内网门户的样子
1 | docker run -d --name hexo -p 4000:4000 -v hexo:/usr/hexo wangcaitao/hexo:1.0.0-alpine |
docker inspect 10b6cac876a8查看挂载盘,大概就是为了不需要每次拷贝文件,让服务器和docker的默认文件夹同步一下
1 | "Mounts": [ |
找到那个/var/lib/docker/volumes/hexo/_data
文件夹然后,每次修改里面的文件
然后命令执行就行
1 | root@asuri:# docker exec -it 10b6cac876a8 hexo clean |
13、hackmd
1 | version: "3" |
复制上面的配置并另存为 docker-compose.yml放在文件夹里
修改你的数据库用户名和密码(默认不安全)
docker-compose up -dhttp://localhost:3000