一个由外网渗透到CNKI内网和获取敏感数据的过程。
整个渗透过程大致分为四部分:
一、弱点刺探:打开通向内网之门
一次偶然的机会接触到了CNKI的“大学生论文管理系统”,发现了这个系统的一个注入点。一切从这里开始……
http://xynu.check.cnki.net/ 用户名为学号,密码为身份证后8位,通过信息搜集获取到了一堆账号,登录一个测试:学号:20115151013 密码:12027623
很幸运的是这个注入点数据库账户为DBA、支持多行执行,且可以使用xp_cmdshell/mssqlagent执行命令。
然而非常不幸的是虽然可以执行系统命令,但是经过一番测试,发现服务器不能连接外网,且站库已分离对外网不开放端口。那么要实际控制这台服务器就变的非常困难了,总不能每次都使用这个注入点去做事情。经过考虑,决定从其它方面着手。于是先使用两条语句添加了个sa权限账户备用:
为了缩短渗透时间,就先Google一下看看有没有一些已知漏洞可以方便快速的打入CNKI内网:
经过筛选,找到了两个Struts2命令执行的站点:esafety.cnki.net和www.dangshi.cnki.net:8080,成功上传Webshell后以备后用。
从IP地址可以看到,服务器也处于CNKI的内网中。使用net view命令获取到了工作组中的所有计算机名:
经过比对得知计算机名是和IP对应的,比如IP为10.1.80.201,计算机名就为CNKI-1-80-201。这对下一步的渗透起了很大的作用。
esafety.cnki.net只开放了80端口,而www.dangshi.cnki.net开放了80和8080端口。因为这两个服务器也无法连接外网,所以不能使用reverse_tcp来反弹meterpreter,只能考虑使用bind_tcp的方式。
经过考虑,决定停掉www.dangshi.cnki.net的一个服务80/8080端口来做为bind_Tcp的端口。于是使用Webshell执行iisreset /stop命令来停掉IIS,但结果却出乎意料。IIS并未停止,反而工作于8080端口的Apache却Duang了……因为CNKI内网各服务器之间并未限制各个端口的通迅,所以在esafety.cnki.net上执行以下两条命令来获取www.dangshi.cnki.net(内网IP:10.1.93.14已抓取管理的登录密码)bind_tcp的Meterpreter(已上传PsExec和Bind_Tcp payload到esafety.cnki.net的D:\bak\目录):
连接211.151.247.54(www.dangshi.cnki.net外网IP)的8080端口,成功获取到了Meterpreter。至此内网的大门已经洞开。(后面的一些截图并非是第一时间的;只是为了说明问题和原理后补上来的,所以有一些误差,请不要在意!)
二、内网初探:扫描弱口令、攻击弱点服务、扩大信息收集面
1、构建可快速连接的内网渗透环境
使用Meterpreter和portfwd命令可以方便地转发内网端口到本地:
在10.1.93.14的IIS管理器中发现服务器上还运行着其它站点,于是找一个留下Webshell。这样就不用在10.1.201.84使用psexec来运行bind_tcp payload了,且上传文件会方便很多。
2、扫描一些包含弱口令的服务
由于我使用的网络不稳定且Meterpreter扫描一些服务的弱口令较慢,所以部分扫描任务直接放到了内网服务器上去完成。
可以看到这个网段服务器大部分使用的是IIS,那么扫描一下MSSQL弱口令会如何呢?
下面这个截图:10.1.202.10是之前存在注入点的那个数据服务器,入内网之后轻易便拿到了管理权(数据库中有不少高校老师和学生的信息哦)。上面的Kbase企业管理器连接着同网段的几台数据服务器(密码为空),内含信息没有去查看。
篇幅有限,其它网段同样的扫描就不截图说明了。经过前期简单的扫描,大致获取到了以下几台主机的管理权(仅扫描了10.1.201.0/24和10.1.202.0/24):
从已获得权限的几台服务器的管理密码上能解读什么信息呢?①.可以看到,Administrator的密码都为9位,非常复杂且毫无规律。可以猜测服务器密码一定有一个统一的管理或是分派到各管理员/部门管理,当然也有可能服务器上安装有管理类的软件来负责密码的统一管理工作。这里仅仅是猜想。②.CNKI内网似乎已有人扫描过了,可以看到不同段MSSQL弱口令的服务器已被添加了aa账号(经过辨明这不是管理添加的)。
三、交叉口令验证:通过已有账号信息获取其它服务器管理权
通过下图可以解析交叉口令的验证原理(仅仅一个方面):
通过MSF使用已获得的账号密码信息来对整个网段进行检测:
交叉口令的来源很多,包含已有任何服务的口令。数据库口令、服务器登录口令、FTP口令、远程控制类软件口令(VNC、TeamViewer、Radmin、pcanywhere、向日葵等),其它服务类软件口令等。
验证账号:MI_Viewer 密码:MIOrchid#1 这组账号密码应该是某软件创建的。
交叉验证的工作模式:
四、总结过程查缺补漏
在整个渗透过程中总结是不可少的。成功目标的多少和信息收集的多少成正比。总结整个过程如下:
1、在整个过程中仅仅对10.1.201.0/24和10.1.201.0/24这两个子网做了检测,如果扩大攻击范围是不是可以获取更多服务器的权限?
2、在整个过程中仅仅针对MSSQL、Windows口令做了扫描,如果将扫描对象扩大到每个已知服务是不是可以收获更多?(已发现数个服务器安装了Serv-u、pcanywhere等软件)
3、一些专用软件了解不够,是不是要花些时间也对这些软件加以了解?(数个服务器安装了Kbase且为空口令,对这总数据库不了解就少了一条路)
4、一些备份服务器上留有某些站点的源码,是否应该花些时间来对这些代码做一次审计以便获取现在提供服务的服务器的权限?
5、通过查看某几个服务器的日志,发现有一个共同的IP登录过,是管理吗?知道了管理IP能干些什么呢?
6、内网的一些服务器,发现安全漏洞的机率是不是更高些呢?
附:net view后整理IP如下: