上百个C#工具用来渗透?我来给你说一说这段故事(上)

admin 2026-04-02 04:22:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文深入探讨了后渗透技术的演进历程,从早期Powershell因AMSI而受限,到C#成为主流,再到如今BOF技术的兴起,清晰地展现了攻防双方持续对抗与技术迭代的过程。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,恶意软件,安全工具


cover_image

上百个C#工具用来渗透?我来给你说一说这段故事(上)

原创

陆安予 陆安予

白帽子安全笔记2.0

2026年3月31日 17:57 江苏

LNK打中目标之后,我们获得了一个会话,但接下来的所有操作你要小心了,一不注意可能导致被检测。这就涉及到后渗透相关内容,在这之前,我不得不给你讲下这个有趣的故事….

一、天下无敌的Powershell

2012年那时候我快毕业了,虽然win7已发布了3年,但兼容性并不好,我们用的都是XP,班上有一个同学装了win7,授课老师都要凑去看看,那时候电脑经常中毒经常需要重装。

win7它内置了一个既能执行命令,还能下载的powershell,一旦使用powershell执行恶意命令,win7毫无阻拦,杀毒软件束手无策。那时候可以说是无文件“天下无敌”,知名的PowerSploitNishang框架以及海莲花黑客组织混淆工具Invoke-Obfuscation就是那个时候的产物。如此强大的工具,他为什么要发布,因为win10那时候发布了。

二、Win10和AMSI

为了解决日益猖獗的无文件攻击,微软秘密开发AMSI(反恶意软件扫描接口),并将其集成到下一代操作系统中。

2015年底,Win10发布了。

AMSI的机制很简单,它注入到Powershell以及各种脚本中,你运行的powershell它会先给你还原,再丢给杀毒软件检测。在脚本执行前它就给你隔离了。

集成 AMSI 的 Windows 组件

至此,powershell相关工具废了,Ofice宏也废了。无论你怎么混淆,杀毒软件均能检测到。同时由于杀毒能力大幅提升,发现电脑也很少中毒了。

三、C# 的发展和局限性

后渗透无非是在目标系统上执行命令,cs提供了有几种执行方式,最早是使用shellrun命令。再就是powershell和powerpick,区别是后者无需运行cmd.exe或powershell.exe,较为隐蔽。

run执行whoami

刚说的,由于powershell很容易被检测,红队不得不寻找其它途径以执行命令,而C#恰好,.NET Framework就是系统默认安装的组件。还记得到处到网上下载.NET Framework4.0吗?

在这之前,流行的计算机专业就是Java.NET专业。足以说明C#在那时候已经非常成熟了。

随后那两年,非常多的工具开始从PowerShell向C#迁移。知名的Invoke-Mimikatz也被开发为C#版SafetyKatz

SafetyKatz

可以看到,发布时间(2018年)相当吻合。

2017年左右,Cobalt Strike开发了额外的执行方式execute-assembly以隐蔽执行C#工具。由于它不经过任何脚本引擎,超出了AMSI的监控范围。

四、BOF的诞生

2019年,微软发布了.NET Framework 4.8,且使用AMSI监控C#的运行。在此版本后,之前流行的C#项目已经无法通过execute-assembly实现绕过了。

execute-assembly运行C#项目

由于execute-assembly的路越走越窄。红队开始尝试各种绕过AMSI的办法,如经常说的patch,硬件断点等。如InlineExecute-Assembly,它将在内存修补AMSI,也就是patch使其致盲。

AMSI秒变梅超风

随后非常多的工具出现,如更先进的PatchlessInlineExecute-Assembly,它使用硬件断点绕过AMSI和ETW,无需patch。

硬件断点绕过AMSI运行C#

与此同时,红队迫切需要一种比C#更好的方法。

2020年Havoc C2发布了,它使用了一种BOF技术,Cobalt Strike也不例外,在4.0版本中,也加入了这一机制,我们现在用的4.9.1也在使用,它将完全在内存中执行C代码。

inline-execute进程内执行C代码

好了,先写到这一部分,纯手敲,写这篇文章用时1天,看完这些来龙去脉,或许你对这些技术有了新的认知,不至于盲人摸象,到处乱撞。后续继续更新(下)的部分。

这么精彩独全网一无二的内容,还不给评论转发一下!谢谢!

四、免责声明

本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:

  • • 仅可用于已获得书面授权的目标系统测试;
  • • 遵守法律法规,不得用于侵犯他人隐私或数据窃取;

本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。


推荐阅读

  • • [视频]3月-完全无法检测的Cobalt Strike在卡巴斯基上的表现
  • • Tigress和OLLVM混淆c代码
  • • Lua作为攻击载体的技术分析
  • • [更新]红队加载器LoaderV5
  • • [更新]红队加载器LoaderV4
  • • [更新]红队加载器LoaderV3
  • • 攻防必备,DLL代理自动化生成
  • • 攻防必备,DLL侧载(白加黑)自动化生成
  • • 采用黑白名单匹配进行反沙箱
  • • [0day]新挖掘到一套高级LNK快捷方式
  • • DLL侧载和DLL代理

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:白帽子安全笔记2.0 陆安予 陆安予《上百个C#工具用来渗透?我来给你说一说这段故事(上)》

评论:0   参与:  0