.NET 一款内网绕过防护的命令行交互工具

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02工具介绍

Sharp4Cmd是一款基于 .NET 实现的命令行工具,其主要特点是可以不依赖 cmd.exe 来运行命令。通过调用 Windows 系统 API 来执行命令,从而实现绕过一些常见的安全检测机制。输入参数 "whoami /priv" 运行后的效果如下图所示。

图片

03实现原理

1. CreateProcess函数

首先,我们需要通过 P/Invoke 声明一些 Windows API 函数,这些函数包括 CreateProcess, CreateProcess 方法负责创建一个新的进程来执行命令。它使用了一些高级特性,例如父进程注入和进程缓解策略。

class UnmanagedExecute
{
    [DllImport("kernel32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool CreateProcess(
        string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes,
        ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags,
        IntPtr lpEnvironment, string lpCurrentDirectory, [In] ref STARTUPINFOEX lpStartupInfo,
        out PROCESS_INFORMATION lpProcessInformation);
}

2. OpenProcess

OpenProcess 函数用于打开一个已有的进程,并返回该进程的句柄。processAccess 参数指定了访问权限,bInheritHandle 表示句柄是否可继承,processId 是要打开的进程的 ID。

[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr OpenProcess(ProcessAccessFlags processAccess, bool bInheritHandle, int process
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dot.Net安全矩阵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值