0x01 问题分析
通过哥斯拉的Meterpreter模块获取的会话,但是发现不能用hashdump命令及相关模块来导出目标主机的NTLM哈希,暂时无法通过cmd5解密哈希得到明文密码。
hashdump run post/windows/gather/hashdump run post/windows/gather/smart_hashdump
从上图中可以看到执行hashdump命令时有提示需要加载priv扩展,加载priv扩展时又提示不支持java类型的Meterpreter,只支持Windows,看不懂英语的可以翻译下,如下图。
查看扩展发现只有stdapi,不能加载kiwi;migrate等命令也用不了;shell下发现可执行whoami,但加上cmd /c就会被360拦截,暂时无法利用白名单重新获取一个新会话来抓密码。
哥斯拉执行也被360拦了,tomcat进程是x86,所以命令行下调用进程也是x86,之前有做过这方面测试,x86下想利用白名单绕过360还是挺难的。
可参考文章:PHP环境绕过360执行马儿上线 。
同时也尝试了下哥斯拉中的Mimikatz模块和后渗透插件中的Mimikatz功能,一样也都被拦了,目前能想到抓哈希和明文的方法都试了个遍,都不行...!!!
那么在这种实战场景下又该如何绕过360抓取密码呢?目前想到的就两个思路:
- 1. 绕过360重新获取一个会话,利用hashdump命令及相关模块或kiwi扩展抓取哈希和密码(简单);
- 2. 绕过360进程防护在命令行直接执行相关利用工具抓取哈希和密码,不太好绕,还得免杀(困难);
0x02 绕过方式
利用哥斯拉的内存加载重新上线得到一个Windows的meterpreter会话,这里的Payload与Meterpreter模块中的Payload不一样哦,tomcat是x86,所以监听时也得用x86的payload。
虽然已绕过360获取到会话,但还不能用hashdump命令导出哈希(UAC权限问题),执行getsystem命令提权时会卡住,原因是落地的dll文件被360杀了,动静较大易被发现,可能导致会话掉线。
注:一个奇怪现象,执行getsystem命令卡很长时间后显示超时,但还是有概率能提升为system权限,10次成功过2次,msf高版本偶尔成功,低版本直接被拦截,可能执行方式不一样,这里简单记录下,有360等安全防护时不建议直接getsystem。
这里我们还可以尝试各种bypass uac或权限提升模块来进行提权,或加载incognito扩展看下是否存在高权限用户令牌?如果存在则可以模拟高权限令牌得到目标主机的最高权限,如下图。
我们现在已经是system最高权限,但也还是不能用hashdump命令导出哈希,我们再试试用以下两个模块来导出哈希,这时可以看到已成功将目标主机哈希导了出来,破解得到明文,如下图。
run post/windows/gather/hashdump run post/windows/gather/smart_hashdump
注:本地测试机器Windows10,不能直接抓取明文,所以才抓取的哈希,再通过cmd5破解得到明文密码。
实战中可根据实际情况用kiwi扩展抓取明文,不过也得注意下kiwi扩展需要system权限,且当前会话与目标主机系统的位数得一致,否则也有可能抓取不到,可用进程迁移解决该问题