成果概述 😎
- 外网打点,先拿到
JeecgBoot 权限,再骚操作对若依系统 GetShell
- 获取到某某有限公司多个主机权限和后台权限
- 后台权限:
10.0.***.***:8848/nacos/#/
10.0.***.***(服务器权限)
10.0.**.**(服务器权限)
10.0.***.**(服务器权限)
10.0.***.***(服务器权限)
- FTP:
10.0.***.***:21
- MySQL:
10.0.***.***:3306 root/123456(数据库权限)
- SSH:
10.0.***.** root 123456(服务器权限)
- Redis:
10.0.***.***:6379 *****(数据库权限)
- MySQL:
10.0.***.***:3306 root/****(数据库权限)
- 内网邮箱接管
外网打点阶段
整体思路:通过 JeecgBoot 的相关漏洞,成功获取若依系统的权限。
对 JeecgBoot 进行漏洞利用,URI 如下:
/jeecg-boot/actuator/httptrace
拿到了 JeecgBoot 登陆账户和相关记录等信息,成功获取身份凭证:

通过构造身份凭证,如下 😏:
X-Access-Token: eyJ0eXAiOiJKV1QiLCJhbG*************************JleHAiOjE2O****************VzZXJuYW1lIjoiUTM0OTUifQ.Ly8Ql0GK**************************hDoncrd684
通过该凭证去访问对应接口,成功获取大量敏感信息:

在敏感信息当中,还包括了数据库配置和相关账号密码等等 😮:

最后通过测试,发现管理员用户的相关凭证 😲:

切换到 JeecgBoot 登陆页面,尝试对上面获取到的管理员账户进行登录 🤔:

通过数据包构造,成功登陆管理员账号,登陆返回数据包构造如下:
{"success":true,"message":"登录成功","code":200,"result":
{"token":"eyJ0eX************TEwMjYsInVzZXJ***********Ql0G************mHazZ-SrWV*****d684","userInf********************************************}}
进入 JeecgBoot 后台管理界面进行查看,寻找可利用的功能点:

JeecgBoot 后台泄露了三千多条敏感信息(不放截图了,放了也都是马赛克)。
最后还创建了一个管理用户:
test/*********

通过前期的信息搜集,发现 8080 端口还有个 RuoYi 系统。若依系统默认使用 MySQL 数据库,我这里猜测它用的是本地数据库 😎。
于是通过 JeecgBoot 的后台功能(JeecgBoot 和 RuoYi 都部署在同一个服务器上)进行查询,发现 wechat 库为 RuoYi 系统的数据库。

通过 JeecgBoot 后台的 SQL 增强功能,成功对数据库进行写入:添加了一个 RuoYi 系统后台管理员账户。

成功通过刚才添加的管理员账户,登录了 RuoYi 系统的后台:

发现 RuoYi 系统为高版本,默认高版本无法使用网上现有的攻击链,但遇到这种情况的时候,也可以“柳暗花明又一村” 🤔:
RuoYi 系统的计划任务是插入到数据库的,于是可以再次通过 JeecgBoot 修改 RuoYi 系统对应的数据库,写入计划任务进行 GetShell!!!
请问你学废了吗?😏

成功拿下,接下来就进入内网渗透的阶段了!
内网渗透阶段
内网渗透阶段,整体成果如下 😲:
- 获取到某某有限公司多个主机权限和后台权限
- 后台权限:
10.0.***.***:8848/nacos/#/
10.0.***.***(服务器权限)
10.0.**.**(服务器权限)
10.0.***.**(服务器权限)
10.0.***.***(服务器权限)
- FTP:
10.0.***.***:21
- MySQL:
10.0.***.***:3306 root/123456(数据库权限)
- SSH:
10.0.***.** root 123456(服务器权限)
- Redis:
10.0.***.***:6379 *****(数据库权限)
- MySQL:
10.0.***.***:3306 root/****(数据库权限)
- 内网邮箱接管

首先,利用边界机直接扫描内网 B 段(10.0.***.**/16),发现内网多处资产存在漏洞,成功获得多个主机权限、FTP 权限和数据库权限。
账号密码弱口令登录:
root/123456

成功突破业务内网的网络边界(突破内网逻辑隔离):
通过边缘机获得内网机器(10.0.***.***)权限,当作跳板机在内网 B 段(10.0.***.***/16)网络中扫描,发现内网堡垒机以及多个漏洞,证明突破网络边界和内网逻辑隔离。

内网中有多个重要资产站点,截图如下:
1、内网 Nacos 弱口令
nacos/nacos

2、FTP 匿名登录
10.0.***.***:21
成功获得 FTP 权限(经测试,可上传下载文件)。

3、SSH 弱口令登录
10.0.***.**
root/******
通过 SSH,获得内网服务器的多个 Root 权限。

4、多个永恒之蓝漏洞利用
10.0.***.***
利用 MS17-010 漏洞,登录远程桌面并获得 Administrator 权限。

发现机器上存在多个涉密文件:

其他机器:
10.0.***.***
10.0.***.**
均利用 MS17-010 漏洞,成功获得 Administrator 权限。


5、拿到 Redis 数据库权限
密码:**********(mimikatz dump 超级弱口令撞库)

6、接管企业邮箱
通过相关机器上的文件和内容,成功接管企业邮箱。

邮箱内,泄露了非常多的机密文件,这里就不截图了。
内网化身姜子牙钓鱼(另类红队技战法)
拿到了邮箱,就可以进入钓鱼环节了~ 对个人 PC、工作机进行钓鱼,证明能通内网就有分数刷,而且肯定会有数据分(你懂的)😏。
结合 ChatGPT 大语言模型,针对性设计话术进行姜子牙进攻:

生成的相关邮件内容如下:

实战中常用的权限维持
在攻防演练时必然会有防守方,那么做好隐蔽免杀工作与权限维持则是必须的,以下是常见的权限维持思路:
1、隐藏系统用户
- 使用
net 命令创建,在用户名后添加 $,可以创建隐藏账户,这时使用 net user 无法发现隐藏用户,但是可以从控制面板查看
- 通过注册表克隆用户:通过注册表克隆用户,那么使用命令和控制面板查看都无法发现此类用户
2、启动项权限维持
Windows 下有很多自动启动程序的方法,可以利用这些方法来进行权限维持。例如可以运行 gpedit.msc 进入本地组策略,通过 Windows 设置的脚本(启动/关机/登录/注销)来设置权限维持脚本启动,也可以通过修改注册表自启动键值添加维权脚本路径,从而实现自启动。或者直接将权限维持脚本放入开机启动文件夹来实现自启动。
3、计划任务
在 Windows 中通常用 at 和 schtasks 命令添加计划任务,计划任务可以使系统管理员在特定的日期和时间执行程序或脚本,因此可以通过计划任务来运行权限维持脚本。例如运行以下命令每天自动执行 exp.exe:
at 22:00 /every:M,T,W,Th,F,S,Su C:exp.exe
4、隐藏文件
上传的木马后门为了避免被发现,可以使用 attrib 命令将文件隐藏:
5、创建服务
通过 sc 命令创建新的服务来进行权限维持,也是一种比较经典的方式。结合 PowerShell 还可以实现无文件后门。
6、隐藏运行窗口
Start-Process -WindowStyle hidden -FilePath "运行的内容"
7、PowerShell 设置定时启动程序
使用 PowerShell 设置定时启动程序,样例如下:
Register-ScheduledTask -TaskName "OpenCalculator" -Trigger (New-ScheduledTaskTrigger -Once -At "2023-08-04 18:00") -Action (New-ScheduledTaskAction -Execute "calc.exe")
怎么样,你学废了吗?