大余每日一攻防matrix-breakout-2-morpheus
2023-11-29 16:54:8 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

简介

每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。

每日一攻防特色:
环境攻破: 以简单直白的方式攻破每日选择的渗透测试环境。
代码审计: 进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。

作者:大余

一、网络枚举

nmap 192.168.253.0/24 -sP

1701234942_6566c8fe950f376e49822.png!small?1701234943295

nmap 192.168.253.134 -p- -A

1701234950_6566c906abae92f99c611.png!small?1701234952116

二、web信息收集

访问:http://192.168.253.134/

1701234956_6566c90c384636f196400.png!small?1701234957417
这里并没有有力的信息点!

三、web目录爆破

gobuster dir -u http://192.168.253.134:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt 

1701234962_6566c9120de0e0a4f5695.png!small?1701234963202
发现:/graffiti.php /graffiti.txt

四、文件上传

访问:http://192.168.253.134/graffiti.php
1701234966_6566c91649bce038e92b0.png!small?1701234967118

burpsuite进行分析:
1701234970_6566c91ae9f1349af2c26.png!small?1701234971970

发现存在文件上传命令漏洞:
1701234975_6566c91f82442920e7162.png!small?1701234976710

上传一句话:

cp /usr/share/webshells/php/php-reverse-shell.php .

1701234981_6566c925456e2b0fd87ab.png!small?1701234983004

1701234987_6566c92b656767f37063f.png!small?1701234988113

成功上传并反弹shell成功:
1701234992_6566c930d41a3d09ce1e9.png!small?1701234993526

建立稳定shell:

python3 -c 'import pty; pty.spawn("/bin/bash")'

1701234998_6566c936958a2cb20c766.png!small?1701235000280

五、内部信息枚举

上传linpeas脚本进行枚举:
1701235003_6566c93b2fd4427d37ed7.png!small?1701235003756

发现存在CVE-2022-0847漏洞:
1701235007_6566c93f99788de089844.png!small?1701235008508

六、CVE-2022-0847利用

CVE-2022-0847,也被称为"Dirty Pipe"漏洞,是Linux内核中的一个本地特权升级漏洞,影响了多个Linux发行版。该漏洞于2022年1月4日被公开披露。

https://github.com/r1is/CVE-2022-0847/blob/main/Dirty-Pipe.sh

1701235012_6566c944c233b52a568e6.png!small?1701235014092
成功利用并拿到root权限!

七、代码审计

1701235017_6566c94940cb77953ba4d.png!small?1701235018618

可看到源代码审计graffiti.php是存在安全隐患的!

1、文件路径注入

可以通过 $_POST['file'] 参数传递文件路径,导致路径遍历攻击!用户提供的文件路径进行验证进行加固!

// 替换
$file=$_POST['file'];

// 为
$allowed_files = ["graffiti.txt", "another_file.txt"];  // 允许的文件列表
$file = in_array($_POST['file'], $allowed_files) ? $_POST['file'] : "graffiti.txt";

2、文件操作错误

在写入文件时,使用 fclose($file); 尝试关闭文件资源,但 $file 已经是文件路径字符串而不是资源。应该使用之前打开的文件句柄 $handle。

// 替换
fclose($file);

// 为
fclose($handle);

3、安全性

在将用户输入写入文件之前,应该对输入进行适当的过滤和验证,以防止恶意脚本注入或其他形式的攻击。可以使用 htmlspecialchars 函数来转义用户输入。

// 替换
fwrite($handle, $_POST['message']);

// 为
fwrite($handle, htmlspecialchars($_POST['message']));

4、文件访问权限

确保文件具有适当的访问权限,以防止未经授权的读写!

# 设置文件权限(示例,具体权限根据实际需求调整)
chmod graffiti.txt 644

通过每日一攻防,我致力于共同深探网络安全的奥秘,助力每位参与者成为网络安全领域的技术高手。立即加入大余安全,共同迎接每日新的挑战!

欢迎大家进入大余安全回忆录帮会,每周二&五定期更新《安全开发》、《渗透测试》系列文章,帮助大家从0基础到入门。

1701237386_6566d28ad323e31f56884.png!small?1701237387378


文章来源: https://www.freebuf.com/vuls/385222.html
如有侵权请联系:admin#unsafe.sh