安全矩阵

 找回密码
 立即注册
搜索
查看: 2849|回复: 0

[有手就行]半天打穿某高校

[复制链接]

65

主题

65

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2022-5-2 15:48:37 | 显示全部楼层 |阅读模式
[有手就行]半天打穿某高校 (qq.com)
前言记录下某年某省HW期间,一个上午“打穿”某还算不错的高校的经历。
过程中只用到很简单的方法,所以加了个标题“有手就行”。
文中内容已做脱敏处理,渗透过程已获得授权, 相关漏洞也已经修复。
所介绍方法请勿用于非法用途!本文请勿转载。
外网打点这一块涉及一些隐私问题,就不展开说了,只说下可行的思路吧。可以去看下其他师傅的文章。

           
  •         构造SSL VPN用户名(学号)及密码(默认密码格式可以在学校某些通知中检索到)

           
  •         同上换成Web VPN

           
  •         某宝购买该校的图书馆VPN资源

           
  •         在公网找未加密/弱口令的socks/frp代理(学校的服务器一般没独立公网IP,会有学生图方便开代理,这也方便了攻击者)

横向1-寻找内网跳板用VPN等方式总归是不稳定,需要找到稳定的跳板机来进行后续的渗透。对重点的网段进行扫描,如信息中心、财务处、学校官网主站等所在的网段。我当时用的是inscan,但现在inscan好像不维护了,最新的release也有问题,现在一般用轻量的fscan。直接扫重要的C段即可,扫的时候弱口令根绝学校名和缩写适应性地加一些。
某公司物理机/虚拟机弱口令(数十台)探测到该校购买了大量的华为物理机部署在机房内,但其Web管理密码及KVM的连接用户密码均为出厂时的密码。我们可以通过Web管理平台直接执行系统命令,或者用华为官网提供的工具KVM连接(到虚拟机?)后执行命令。

可以看到root和远程控制

可见服务器配置还是挺高的,不挖矿可惜了(bushi
部分机器内还跑着OpenStack的服务,我们可以构造环境变量来管理这些虚拟机。
  1. # 首先初始化环境变量
  2. export OS_PASSWORD=***
  3. export OS_AUTH_URL=https://identity.az1.dc1.domainname.com:443/identity-admin/v2.0
  4. export OS_USERNAME=***
  5. export OS_TENANT_NAME=***
  6. export OS_REGION_NAME=***
  7. export NOVA_ENDPOINT_TYPE=internalURL
  8. export OS_ENDPOINT_TYPE=internalURL
  9. export CINDER_ENDPOINT_TYPE=internalURL
  10. export OS_VOLUME_API_VERSION=2
  11. export BASE_BOND=brcps
  12. # 旧版本
  13. nova server list
  14. # 新版本
  15. openstack server list
复制代码

此外还找到一些该公司其他云服务的默认密码,这里跟上边的一块,统一列几个吧
  1. root / Huawei12#$
  2. root / FusionSphere123
  3. root / Huawei@CLOUD8!
复制代码


这些默认密码在华为官方的文档其实都有~
Hadoop unauthorized-yarn RCE (十台)通过扫描,还发现某IP的80服务开着未授权的Hadoop,且存在RCE漏洞。

EXP不放了,可以参考Vulhub链接。
有趣的是每次弹回来的机器的host和IP会变,多次开端口监听,获得了node001-node010十台高配置物理机的shell。

新中新网关Shiro-550

shiro还没修完也是离谱,java我谢谢你。
横向2-接口安全探测中心(数据安全)在上面我们得到稳定的跳板后,继续是用inscan对该校重点网段进行简单的扫描。
发现某IP的80端口有个安全设备需要登录,但5001端口可直接访问。





如图,会对所有的接口双向数据进行检测,记录其中的敏感信息。但这网站自带的搜索功能太鸡肋了,我无法快速筛选到需要的信息。我直接抄起Python对该网站的API进行一个的爬,然后存到本地的mongo数据库中(因为数据量大且字段不固定)。注:该数据库在授权测试后已删除。
然后使用mongo对应的SQL查找我想要的信息。以下为部分代码,不解释了,大家肯定能看懂是在找什么。
  1. db.event.find({"req.args.password":{"$exists":true}},{ host: 1, req: 1,_id:0} )
  2. db.event.find({"req.args2.password":{"$exists":true}},{ host: 1, req: 1,_id:0} )
  3. db.event.find({"req.body":{$regex:'admin'}},{ host: 1, req: 1,rsp:1,_id:0} )
  4. db.event.find({"rsp.header.set-cookie":{$regex:'(?i)rememberMe'}},{ host: 1, req:1,rsp:1,_id:0} )
  5. db.event.find({"host":{$regex:'itc'}},{ host: 1, req: 1,rsp:1,_id:0})
  6. db.event.find({"apiUrl":{$regex:'login'}},{ host: 1, req: 1,rsp:1,_id:0})
  7. db.event.find({"host":{$regex:'xxx'}},{ host: 1, req: 1,rsp:1,_id:0})
  8. db.event.find({"net.dst_ip":{$regex:'xxx'}},{ host: 1, net:1,req:1,rsp:1,_id:0})
  9. db.event.find({"net.src_ip":{$regex:'xxx'}},{ host: 1, net:1,req:1,rsp:1,_id:0})
  10. db.event.find({"referer":{$regex:'edr'}},{ host: 1, req: 1,rsp:1,_id:0})
  11. db.event.find({"rsp.body":{"$regex":"password"}},{ host: 1, req: 1,_id:0} )
  12. db.event.find({"req.args2.pwd":{"$exists":true}},{ host: 1, req: 1,rsp:1,_id:0} )
复制代码

横向3-一些内网资产使用上面我们筛到的管理员用户名、密码、甚至是Cookie,收获下一步的资产。
XX大学网络安全管理平台这个平台还是蛮有意思的,可以进行学校的资产管理、安全通报、应急处置、安全监测、安全预警、安全管理、威胁情报、态势分析等,其中安全通报可以看到教育部(上交平台)、工信部、手动添加的学校漏洞信息。


比如别人提交的报告,好多还没修复呢~


XX大学数栈大屏
从上边mongo里筛出来的token,构造并访问,可以获取admin管理权限。



可以看到很多数据,比如保卫处的门禁数据~

这个系统背后对接的数据库连接方式也找到了一些,在后边统一说。
某厂商超融合云弱口令+VNC未授权(14台)这个就不写是哪个厂商了。看起来是魔改了一个OpenStack来管理的几台物理机,托管一些安全设备。数据库审计、日志审计、堡垒机、云WAF等。不过我都打到这个程度了,就不搞这些安全设备了。

此外一些虚拟机可以vnc直接访问,没有密码。部分已登录的可以直接获取root的shell,剩下的我们可以重启进入恢复模式强制改root的密码(怕影响业务,未进行)。可以参考下重启改密码

OA任意用户登录发现了一个接口,URL的PATH是一串很长的随机字符串,在这里可以输入OA账户的ID,用统一的密码来登录。我们简单遍历一下就可以登上校长和书记的OA。还可以看到一些涉密,当然我没瞎看啊。


XX大学接口管理平台可以查很多信息,不过对我来说也都是塞牙缝了。



其他系统还有一些系统,不是不重要,只是我懒得再写了。包括几十个学院官网的管理员、学术数据管理平台、广电专用网络存储平台、学校网络管理与性能监测系统、阿X云混合云All In One管理平台等等的管理权限。
横向4-统一数据集成管道-所有核心库这是一个很重要的系统。该系统对学校一些核心的数据库进行了进程,每晚会同步数据,比如将业务库的数据同步到核心库,我们有时候补办校园卡第二天才能生效刷开门禁就是这个道理。
该系统集成的数据库有:X大主数据仓库,X大主数据缓存库,人事中间库,研究生中间库,本科生教务中间库,校园卡中间库,科研中间库,房产和教师公寓管理库,财务系统中间库,数据中心共享库,x大通行码,安保处人行通道中间库,数据中心机构库,校园网实时在线系统,后勤中间库,设备资产系统,流程平台,通讯录,执行标准库,教学资源系统中间库,图书系统,OA系统,XX学院中间库,后勤集团中间库,数栈安保大屏,财务中间库,图书馆人员中间库,工会人员中间库等等等等。
各个数据库的IP地址、端口、连接方式、用户名等是明文的,但抓包显示密码是加密的,我解了半天发现只要检查元素将类型改成text就可以显示了。省去了我逆向JS的过程,这也太安全了。


获得了几十个库,上万个schema的管理权限,基本上该校的核心数据都在这里。

接下来简单展示几个:
身份信息人脸照片、教师科研成果信息、财务信息、房产信息;学生家庭住址、父母职业等,共十万条。
打卡定位近几千万条带经纬度的健康打卡定位信息。

校园网校园网实时在线信息,包括某个师生的IP地址和MAC地址。不展示了。
财务处财务收费信息。不展示了。
反正就是挺危险的,理论上我啥也能干了,包括但不限于改成绩、改学费、改校园卡金额(当然对账系统很复杂,我改了肯定能被发现哈哈,只是口嗨下)。
总结一套走下来,还是很顺利的,学校没有企业那种的域管生产网,还是数据重要~
提一些众所周知的安全建设方法吧。

           
  •         重要网段要隔离

           
  •         弱口令修一修

           
  •         安全设备到底方便谁?领导还是黑客?

           
  •         VPN的权限可以管控再严格些

           
  •         学校可以鼓励学生进行众测渗透,给一定的奖励

这边还有不少之前渗透的有趣经历,最近找暑期实习整得身心俱疲,等有机会再接着分享:


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-30 09:57 , Processed in 0.018051 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表