Fsi.exe 是一个包含在 Visual Studio 中的 Microsoft 签名的合法二进制文件,允许通过交互式命令行或脚本执行 .fsx 和 .fsscript 文件。由于自带微软的签名,可以用于绕过许多基于签名验证的安全防护软件,从而在目标环境中执行恶意代码。
此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。
本文内容部分节选自小报童《.NET 通过Fsharp执行命令绕过安全防护》,完整的文章内容请加入小报童后订阅查看。现在限时只需69元,永久买断!目前已有400+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!
免责声明:此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。任何未经授权的网络渗透、入侵或对他人网络破坏的活动而造成的直接或间接后果和损失,均由使用者为自身的行为负责并承担全部的法律和连带责任,与本号及作者无关,请务必遵循相关法律法规。本文所提供的工具仅用于学习和本地安全研究和测试,禁止用于其他方面。
F# 是一种功能强大、功能式编程为主的编程语言,F# 是 .NET 平台的一部分,能够与 C# 和 Visual Basic 等 .NET 语言无缝集成,允许开发者使用函数式编程的优点,同时也可以使用面向对象和命令式编程。
2.1 FSI.exe 是什么
fsi.exe 是 F# Interactive 的可执行文件,F# Interactive 是 F# 编程语言中的一个交互式环境,用于即时执行 F# 代码。比如引用程序集,可以使用 #r 命令引用外部的 .NET 程序集,具体代码如下所示
#r "System.Xml.dll"
加载并执行脚本,可以使用 #load 命令加载 .fsx 或 .fsscript 文件,具体代码如下所示。
#load "script.fsx"
2.2 编码实现
以下是一段通过 fsi.exe 执行命令行的示例代码。通过 PowerShell 运行空间创建和管理,执行命令 cmd.exe /c whoami /all 来显示当前用户的完整身份信息。
#r @"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll"
随后, RunspaceFactory.CreateRunspace() 创建一个新的 PowerShell 运行空间,runSpace.Open() 将该运行空间打开以供命令执行。
let runSpace = RunspaceFactory.CreateRunspace()
runSpace.Open()
接着,创建管道和添加命令,在这里通过 CreatePipeline() 创建了一个新的命令管道,并添加了要执行的 cmd.exe 命令。

以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。
1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理
原价899,现在限时只需69元,永久买断!目前已有400+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!
每增加五十人涨价10元,抓紧订阅,超值!订阅后请关注公众号:dotNet安全矩阵,发送订单截图和您的微信号,邀请您加入专属交流群。感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者扫描下方海报微信二维码加入即可,订阅后小报童定时会将最新内容通过微信推送给您。


