简介
每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。
每日一攻防特色:环境攻破:以简单直白的方式攻破每日选择的渗透测试环境。代码审计:进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。
作者:大余
一首歌送给你们,一首歌一攻防一项目!富士山下送给大家!
一、网络枚举
发现ip地址本身暴露在项目环境内,扫描发现存在10000、20000http端口。
二、web信息收集-brainfuck解码
查看网页原代码发现brainfuck编码,根据上面提示这可能是密码:
通过在线工具进行解码得到下面的值:
.2uqPEfj3D<P'a-3
通过端口扫描发现目标机有Webmin和Samba。Webmin是基于Web的Unix系统管理工具,因此上面解出来可能是这里的密码。目标服务器装了Samba,因此尝试用Enum4linux工具枚举获得用户名:
enum4linux -a 192.168.3.6
枚举得到用户名:cyber,然后使用这个用户名和之前得到的密码尝试登录Webmin,发现可以登进20000端口的Webmin服务。
https://192.168.3.6:20000/
三、Getshell
成功登录:
发现在左下角可以运行shell,查看id。在这里可以反弹一个交互式shell到攻击机上:
四、权限提升
在home目录下有一个tar可执行文件,检测suid和capability,通过getcap命令发现它有cap_dac_read_search=ep,因此它可以读取任意文件(利用该tar打包再解压就可以查看没有权限查看的文件内容)。
后来发现在/var/backups/目录下有一个.old_pass.bak文件,但没有读取权限:
cd
./tar -cvf pass.tar /var/backups/.old_pass.bak
tar -xvf pass.tar
cat var/backups/.old_pass.bak
得到密码,使用su获得root shell,拿到flag。
五、代码审计
/usr/share/webmin/authentic-theme/sysinfo.cgi
该路径/usr/share/webmin/存在全部该前端框架源码,存在命令执行漏洞,建议:
1、用户输入验证在处理用户输入时,如$_POST['url'],应该进行验证和过滤,以防止潜在的安全漏洞,比如SQL注入或跨站脚本攻击。可以使用mysqli_real_escape_string或者预处理语句来处理数据库查询。
$input = $mysqli->real_escape_string($_POST['url']);
2、文件路径在该Perl脚本中,有一行 $ENV{'THEME_ROOT'} 用于获取主题的根目录。确保这个环境变量没有被用户控制,或者在使用之前进行适当的验证和清理。
do("$ENV{'THEME_ROOT'}/authentic-lib.pl");
3、命令执行/sysinfo.cgi?xnavigation=1是直接允许运行底层命令执行,严重的安全漏洞$_GET['xnavigation']进行验证和二次认证会防御此类问题。
原文始发于微信公众号(大余安全):大余每日一攻防EMPIRE: BREAKOUT(六)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论