.NET 内网横向移动,通过模拟用户令牌实现远程权限提升

图片

LogonUserA 和 ImpersonateLoggedOnUser 是强大的 Windows API,允许程序以指定用户的身份操作。攻击者利用这些函数可模拟合法用户权限,用于横向移动或访问敏感资源。

Sharp4NoPSExec.exe 便是一款利用 Windows API 提供的用户令牌登录与模拟功能,通过提供有效的凭据,在目标主机上执行指定的命令的红队工具。

01. 验证用户凭据

Windows API 中 LogonUserA 函数用于验证用户的凭据,包含用户名、密码、域,并创建一个新的用户令牌 Token。该令牌可用于模拟用户权限或在当前进程中执行该用户上下文的操作,函数签名如下所示。

BOOL LogonUserA(
    LPCSTR lpszUsername,   // 用户名
    LPCSTR lpszDomain,     // 域名
    LPCSTR lpszPassword,   // 密码
    DWORD dwLogonType,     // 登录类型
    DWORD dwLogonProvider, // 登录提供程序
    PHANDLE phToken        // 返回的用户令牌
);

dwLogonType参数的值,LOGON32_LOGON_INTERACTIVE 表示交互式登录。最终函数返回的 phToken 是用于后续用户模拟操作的关键句柄。

在 .NET 中使用 DllImport 特性将其从 advapi32.dll 动态链接库导入调用的方法如下所示。

[DllImport("advapi32.dll&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dot.Net安全矩阵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值