.NET内网实战:通过FSharp白名单执行命令

01阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧。

02基本介绍

本文内容部分节选自小报童《.NET 通过Fsharp执行命令绕过安全防护》我们会长期更新!

图片

03编码实现

Fsi.exe 是一个包含在 Visual Studio 中的 Microsoft 签名的合法二进制文件,允许通过交互式命令行或脚本执行 .fsx 和 .fsscript 文件。由于自带微软的签名,可以用于绕过许多基于签名验证的安全防护软件,从而在目标环境中执行恶意代码。

3.1 Fsi基本介绍

fsi.exe 是 F# Interactive 的可执行文件,F# Interactive 是 F# 编程语言中的一个交互式环境,用于即时执行 F# 代码。可以逐行或逐段地运行 F# 代码。比如引用程序集,可以使用 #r 命令引用外部的 .NET 程序集,具体代码如下所示

#r "System.Xml.dll"

3.2 Fsi执行脚本

以下是一段通过 fsi.exe 执行命令行的示例代码。通过 PowerShell 运行空间创建和管理,执行命令 cmd.exe /c whoami /all 来显示当前用户的完整身份信息

let pipeline = runSpace.CreatePipeline()
let command = new Command("cmd.exe")
command.Parameters.Add("/c", "whoami /all")
pipeline.Commands.Add(command)

在这里通过 CreatePipeline() 创建了一个新的命令管道,并添加了要执行的 cmd.exe 命令。通过 Parameters.Add() 方法指定要传递的参数,例如 /c 和 whoami /all。下面fsccript代码中执行了whoami命令,返回如下图所示

图片

综上,fsi.exe 利用了 F# 交互式编译器的合法性和签名信任机制,使得攻击者能够在不被检测的情况下执行恶意代码。结合其强大的脚本编写能力,尤其是在高级渗透测试和红队活动中,这个工具能有效地避开安全防护,执行任意代码,从而达到攻击目的。

04.NET 电子报刊

电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

图片

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dot.Net安全矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值