NTLM 哈希传递攻击,内网渗透通过 Sharp4SMBExec 横向移动执行任意命令

图片

在现代网络安全领域,SMB(Server Message Block)协议广泛应用于 Windows 操作系统之间的文件和打印共享,同时也为攻击者提供了很多潜在的攻击面。

SMB 协议中涉及的安全机制,如 NTLMSSP(NT LAN Manager Security Support Provider),在渗透测试、漏洞利用及网络攻击中占据了重要地位。本文将详细介绍如何在代码中处理 SMB 协商过程、NTLMSSP 协商以及如何判断 SMB 签名的启用状态。

01. SMB背景和应用

SMB 协议用于在计算机之间共享文件、打印机和其他资源。在 SMB 协议的交换过程中,SMB 客户端与服务器之间会进行一系列的握手与协商操作。这些操作包括协议版本的协商、认证方式的选择、签名机制的启用与禁用等。

在 SMB 协商过程中,NTLMSSP 作为一种认证协议,广泛用于 Windows 网络中验证客户端身份。SMB 协商还涉及到 SMB1 和 SMB2 协议的支持与选择,SMB 签名则是为了确保数据的完整性和防止中间人攻击。

1.1 获取哈希和用户名

以下是代码中的重要部分,展示了如何通过 SMB 协议实现连接、进行版本协商并启用 NTLMSSP 协商。

if (!string.IsNullOrEmpty(hash))
{
    if (debugging == true) { Console.WriteLine("Checking Hash Value \nCurrent Hash: {0}", hash); }
    if (hash.Contains(":"))
    {
        hash = hash.Split(':').Last();
    }
}
if (!string.IsNullOrEmpty(domain))
{
    output_username = domain + '\\' + username;
}
else
{
    output_username = username;
}

首先,代码从传入的哈希和用户名信息开始。如果哈希存在并且包含冒号,则提取哈希值的最后部分。此部分主要用于在后续步骤中执行身份验证时使用哈希。

1.2 获取当前进程ID

接着,代码获取当前进程ID,转换为字节数组,并进行处理。这个过程是为后续的 SMB 协商准备数据&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dot.Net安全矩阵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值