https://www.vulnhub.com/
里面有很多安全环境,只要下载相关镜像,在虚拟机上面搭建运行就可以练习对应靶场了。
第一步、信息收集
nmap扫描内网开放80端口的存活主机 nmap - p 80 192.168.31.0/24
目标IP192.168.31.16
nmap -p 1-65535 192.168.31.16
目标主机端口探测(开放22端口【考虑可以尝试爆破root】、80端口开放)、且目标主机为linux系统、使用apache2.2中间件
第二步、web服务渗透与提权
提示sql注入,在手工尝试与sqlmap跑post包之后放弃了
御剑爆破一下后台目录
访问192.168.31.16/test.php
提示file参数为空
我们测试一下文件包含
尝试POST提交file=test.php此处为任意文件下载,将目录遍历出的文件全部下载开始代码审计
这里我们看到了文件包含漏洞造成得任意文件下载漏洞得 成因
我们继续下载御剑爆破出来的目录文件与审计代码中发现的文件
在c.php文件中发现了数据库和密码
我们加下来访问192.168.31.16/phpmyadmin失败 ,应该是目录改名了,改一下御剑的字典继续爆破,成功得到phpmyadmin地址phpmy
并成功获得了用户名和密码
我们先不登陆继续看下phpmy目录下有没有可以利用的文件
直接获得了mysql的用户名和密码我们链接下22端口
成功获得了root权限
那我们再回到刚才获得的web用户的账号和密码 看下是不是可以获得webshell
成功登陆后showuser的地方有两个头像火狐浏览器右键查看图像 看到图像地址
我们把头像下载下来
在文件尾部插入一句话
cmd命令马 将文件上传成功。
接下来用burp抓一个post包
post请求url中加入执行命令的参数:POST /panel.php?cmd=cat%20/etc/passwd;ls
post的body中包含laodi.jpg图片马:load=/uploaded_images/cmd.jpg&continue=continue
命令被成功执行了
我们接下来利用该功能用bash反弹一个shell
bash反弹shell先进行url编码
在另一台主机上监听本地8888端口
反弹了一个www权限的shell
接下来肯定是提权了
写入一句话 目录不可写
那我们进入uploaded_images 目录试一下成功了
菜刀连接方便传文件(wget远程下载的话也可以)
看一下内核版本
接下来利用相关版本提权脚本Exploit Title: ofs.c - overlayfs local root in ubuntu
# Date: 2015-06-15
# Exploit Author: rebel
# Version: Ubuntu 12.04, 14.04, 14.10, 15.04 (Kernels before 2015-06-15)
# Tested on: Ubuntu 12.04, 14.04, 14.10, 15.04
# CVE : CVE-2015-1328 (http://people.canonical.com/~ubuntu-security/cve/2015/CVE-2015-1328.html)
Exp地址:https://www.exploit-db.com/exploits/37292
给我们上传的脚本一个777权限
Chmod 777 ./* (或者chmod 777 yun.c)
gcc yun.c -o yun(编译脚本并重命名为yun)
./yun(运行编译后的脚本)
看下是root权限提权成功了
最后我们在回到这个sql注入上
str_replace的作用是将字符串\' 替换为空,因此构造SQL注入登录payload时,必须含有\'字符串,否则会报错。urldecode的作用是将输入解码。
测试payload为%27+or+1%3d1+--%5c%27没成功
' or 1=1 --\'依旧没有成功 于是我放弃了sql注入