type
status
slug
tags
category
icon
password
Property
May 30, 2023 08:41 AM
date
summary
🤔 简介
一次内部攻防比赛过程记录分享,感觉还是比较有收获的,涉及技术点广,其中涉及到了代码审计、代码开发、域渗透、多层隧道渗透等。
💀攻击路线
大致的攻击路线如下,几个关键突破点有代码审计、信息收集、Nday的使用和域渗透
📝攻击详解
首先进来fscan乱冲,只有一个20.10存在swagger未授权,通过查看里面的接口
看到一个接口可以进行数据库配置,就是配置恶意的数据jdbc服务器,那么首当其冲想到的就是直接反序列化打shell
启动恶意的jdbc 然后执行反序列化,不出意外还是意外了。
尝试直接加载外部恶意类失败没有发起get请求,疑似高版本JDK 尝试使用tomcatbypass工厂类加载失败
在尝试无果之后换个思路,尝试文件读取,并成功读取网站源代码
通过代码审计在源码中发现有个反序列化的入口,里需要的是手写反序列化利用链,代码这个位置有个lookup 我们需要手写一个反序列化利用链去调用这个lookup
编写对应的利用链大概代码如下
readExternal
函数会在反序列化时候自动调用修改jdbc URL
修改isOutUrl 让反序列化时候 上面68行返回的结果为True 这样才能调用lookup
测试代码如下
写好之后运行得到一个yso.ser 文件,就是要将yso.ser内容打回去
上面的MySQL_Fake_Server工具反序列化只能是构建ysoserial中的序列化链 没法加载本地所有将代码改了一下
加了一个判断如果type为local就下载本地序列化文件 格式就是
yso_local_yso.ser
加载本地名称为yso.ser的序列化文件本地测试没有问题,尝试运行成功执行恶意代码打开计算器
回到环境中尝试运行反弹shell
成功获得shell
发现进来之后20.10的网络权限更高,可以和其他机器通信
通过搭建隧道继续在20.10机器上扫描,发现存在Yapi-RCE使用Nday获取服务器权限
还有捡一些数据库的弱口令啥的
从20.42服务器搭建流量代理隧道即可到30网段
http://10.0.30.42/admin
admin|admin123
查看JPress官网文档,根据官网文档编写插件。
通过插件获取服务器权限
通过查看历史命令查看history,获得10.0.30.50的密码
RDP登陆成功
翻10.0.30.50文件,获取数据库密码
解密即可成功获取数据库密码
MSSQL数据直接执行命令
发现是服务权限,通过potato提权,获得system权限
发现MSSQL服务器在域内,并发现存在管理员的hash,使用mimikatz获取hash
使用上面获取的hash,查询子域sid
再去查询主域sid
使用上面获取的krbtgt hash + 主域sid + 子域sid 构造金票 ,尝试登录dc01 获取 域管理员权限。到达主域
获取dc01管理员权限hash
使用上面获取的hash连接服务器服务器,至此拿下域控
构建代理连接到zabbix发现弱口令
访问http://10.0.40.30/
使用口令Admin|zabbix 登陆成功
通过zabbix对监控的主机尝试命令执行
通过 zabbix 在 10.0.40.22 创建用户rdp连接 发现xshell保存密码,使用工具查看密码
成功连接10.0.40.42服务器,40.42为跳板机网络权限最大
通过构建隧道获取靶标nc权限
写入webshell
http://10.0.10.22/webapps2.jsp
继续扫描发现10.0.10.30:7201 存在2020_2551 直接RCE
直接命令执行
完结到这,已经获取所有靶标,其中涉及了四层隧道绕来绕去实在是有点晕
🤗总结归纳
个人感觉攻防讲求的就是各种思路工具的灵活运用。