0x00 背景
在开展渗透测试项目时,渗透测试工程师会使用大量的渗透测试框架以及工具,如Cobalt Strike。它提供了灵活性强、可用性高、可高度定制的攻击开发和执行环境,同时其具备端口扫描和木马生成等功能。通常在获取系统控制权后,测试人员需根据具体的渗透测试目的和实际测试场景选择使用恰当的方式进行测试,此时需调用相对应的命令。这些命令背后都有其运行原理,掌握其原理可在一定程度上提高渗透效率,降低未知风险。
0x01 Make_Token
克隆当前的访问令牌,并将其设置为在与网络资源交互时传递指定的用户名和口令。此命令不验证您提供的凭据,并且对本地操作没有影响。
Use:
make_token [DOMAIN\user] [password]
效果展示:
演示环境:Windows 7
测试机地址:172.16.203.138
首先,我们假设目标已经成功上线,当前用户为 cc,接着使用命令
shell dir \\172.16.203.146\c 去访问目标网络共享资源的目录,发现提示登录失败。如下图所示:
然后,我们尝试使用 make_token admin admin 命令去克隆一个合法用户的访问令牌,接着使用命令 shell dir \\172.16.203.218\c 列出目标网络共享资源的目录,发现依然提示登录失败。如下图所示:
最后经过尝试,我们使用命令 make_token test test 和 shell dir \\172.16.203.218\c,发现可以成功列出共享目录。这说明,test/test 是网络共享主机的合法用户。并且此时再执行命令 whoami ,依然是最初的用户 cc 。如下图所示:
原理说明:
由上述的效果展示部分,可明显看出 make_token 并不会做用户和口令的验证,且不影响本地用户的操作。但是在与网络资源交互时,会传递设置的用户名和口令。通过抓包也可看出多次访问共享资源的时候,SMB2 协议中的 NTLM 认证用户的不同,如下图