下面将记录此次打靶的所有细节和所遇到的问题。大佬笑笑经过就好,小白的话就认真学习,相信此次打靶还是有一定技术性的提升。
整个网络拓扑图如下:
前面的细节无非就是三个压缩包,分别为WEB、DC、PC。解压完毕,打开落满尘灰的虚拟机,兴致勃勃的将解压好的文件放入虚拟机,然后准备打开,结果开始报错(然后这也是此次打靶遇到的问题之一),看图:
于是傻乎乎的我就开始询问各位大佬,然后大佬告诉我是我电脑系统问题,说我的系统不支持虚拟机。我笑了,连忙问号三连表示友好(???)。
我连忙拿起旁边的红酒杯,那里面可是装了沉浸80多年的白开老白干,一口下去,灵光一现,脑壳中一位美丽的女子一丝不挂的出现在我的脑海,我口水直流三尺,甚至还硬了,突然……我。对不起,跑题了,然后我将虚拟机配置文件里面的版本号修改为我现在虚拟机的版本号,然后再次打开,问题就解决了。
当三个靶机(web、dc、pc)全部安装完成后,于是开始配置ip,这里面似乎并没有遇到多大的问题,对不起,突然下面一硬,问题来了,我发现他们之间,内网地址互ping不通,我开始焦虑,我开始脱发,不,我是安全人员,我不能这样,我要解决它!当我重启了一下,结果就能ping通了,很神奇对不对,我也这么觉得。
顿时就很开心,然后问题又来了,我发现外网,也就是我本机,作为攻击机器,并不能与web端机器ping通,脑袋一热,直接把web端选择为NAT模式自动获取ip(因为WEB端其中一块网卡是可以访问外网的),继续ping,发现ping还是不同,就去查看(防火墙),发现是策略问题,就直接将防火墙关闭(并没有关闭域之间的防火墙),发现可以ping通,开始打靶。
兴致勃勃的拿到靶机ip(web),192.168.229.128,操起宝刀,移步进入kali(攻击机器),开始进行一波初始的信息收集,使用nmap扫描一下目标ip端口信息,详情如下:
看靶场的说明,我们首先要打开weblogic(使用管理员权限)。
然后看到几个比较感兴趣的端口80(http)、1433(mssql)、3389(rdp)、7001(weblogic)。
于是一一去探测,第一想法就是在80入口,第二是7001端口,后面的通过1433弱口令传马和3389选择去rdp爆破。
1、80访问失败。
2、7001(weblogic)显示404。
3、1433和3389弱口令均爆破失败。
回头继续看2、7001(weblogic),虽然是404,但是肯定存在站点,只是文件不存在,脑海中一热,就想做个工具人,去dirbrute爆破一波目录和文件,突然一硬,阻止了我这种工具人的想法,就去手工探测,发现没有什么效果,于是去问百度,发现默认地址不对,于是按照百度说的,目标站点出现了。站点路径:
1http://192.168.229.128:7001/console/login/LoginForm.jsp
1、先开始尝试weblogic的弱口令,手动weblogic | 12345678,进不去,开始burp抓包进行爆破,白搭,爆破不进去,当然进去我也忘记怎么拿shell,毕竟好久没见了
2、开始网上搜索关于weblogic的各种漏洞,然后就找到了POC工具,检测weblogic漏洞工具,地址附上:https://github.com/rabbitmask/WeblogicScan
通过POC测试,存在CVE-2019-2725,直接根据漏洞上工具(合理的做好一名脚本小子)
成功getshell,密码:pass,使用冰蝎连接,shell地址:
http://192.168.229.128:7001//_async/adminxe.jsp
Shell成功拿下,继续进行后渗透
通过arp –a,进行初步的内网探测
存在内网环境:
10.10.10.10
10.10.10.80
10.10.10.201
进一步探测信息,查看是否存在域内环境,通过命令:net time /domain 查看域内解析服务器的时间,确定域控,结果返回系统错误(很明显权限不够)
Whoami,查看shell权限,发现为administrator权限,并非最高权限
通过systeminfo尽可能多的收集机器信息
经过查看存在域,de1ay.com,并且得到补丁程序编号,补丁只打了3个,可通过补丁信息对比继续提权
当我们得知这是域环境,那么我们的目标肯定是获得DC中域管的权限,最终拿下整个域。(这里呢,我跳过了一系列的提权工具,经过尝试也是可以的),为了后渗透的完整性,我选择CS(Cobalt Strike)进行图形化界面的渗透。
CS生成木马—>上传到shell—>执行木马—>上线,进行下一步的渗透。
开始进行提权,方便下一步的操作
利用ms14-058,成功获取权限
方便于维权和防止shell掉线,我们使用注入进程功能,会生成一个新的会话
我们是用portscan功能,继续探测域内主机存活情况
继续进行域内的信息收集,开始定位域控(这里假装我们看不到名字DC,嘻嘻),然后使用命令:net group “domain controllers” /domain
可以确定DC为:10.10.10.10
定位域管理员:net group “domain admins” /domain
确定域管为:de1ay/Administrator
通过前面的信息收集已经有了一个大概的范围,然后刚才我发现,通过ping的时候80可以和10(DC)通,80(WEB)不可以和201(PC)通,10可以和80和201都通,那么我们确定,想到获取到PC的权限,需要先get到DC的权限(通过10做DL,链接201)微信搜索公众号:Linux技术迷,回复:linux 领取资料 。
1、这里呢,我们已经拿到了域管的账号和明文密码:
账号:DE1AY\Administrator
密码:1qaz@WSX
直接利用流量DL,将80(WEB)dl到本地,然后去登陆10.10.10.10(DC)
通过dsa.msc
可以查看域内的机器和域内账户,相当于拿到了整个域的控制权
2、这里呢,方便保存域内账户信息,我们使用csvde进行保存域内账户信息,便于对其他机器的渗透
3、然后我们下一步,还是像刚才说的,拿到DC并不算完结,我们的目标在于进入PC,所以这里,我们并不能直接通过80(web)DL到201(PC)上面去(因为80和201不通),这里,我选择socks多层跳板来进行获取PC的权限,于是到这里还是说一下msf的socks DL。这里msf上线过程就不细说,基本和cs一样,生成木马,上传到shell端运行,得到shell
4、首先我们要添加路由:
1run autoroute -s 10.10.10.0/24 #添加到路由
2
3run autoroute –p #查看路由
成功添加路由后,即可使用auxiliary/server/socks4a进行DL操作,然后我们要通过DC(10.10.10.10)做跳板进行DL,所以我们要先获取DC的shell