一次成功打击赌博集团后的思考
2022-8-21 22:34:17 Author: 蓝极战队(查看原文) 阅读量:42 收藏

事情是这样的,在通过一个入口点打入赌博集团的一台服务器后,提权,找到VNC服务器,然后各种渗透,拿下一台台服务器,最终脱库,一切看似都很顺利,但当我把成果移交给执法部门后,却在短短几小时内,所有的后门木马全部被清除,而且所有发现的漏洞全部被修复。

一些黑产团队,他们的安全意识是相当的高的,开句玩笑的话,单说安全运维这块,找个正规工作也是年薪不低各大公司抢的那种。

正常针对我国的诈骗赌博平台的云服务器都喜欢租在台湾或者香港等地,因为既可以被大陆访问,又可以不受大陆网络安全法的管控。

而且他们的服务器集群一般采用一台类似VNC的运维服务器管理所有服务器。

以这次的目标为例,集群十多台服务器,一半在台湾,一半在香港,用的是google云提供的服务。

所有服务器的ssh以22***为端口,***为每台服务器公网IP的A段,防火墙均采用白名单模式,严格过滤所有流量,因为运维需要,只有一台类似VNC的运维服务器可以ssh到各个服务器,并且每台分工不同的服务器所有服务均是最小化权限的配置·......反正一句话就是乍一看无懈可击。

但是一般情况类似的黑产集群防火墙出网是不控制的,所以很多时候,大多数人拿下资产不管什么权限,先来一波反弹木马上线。

后来我复盘了一下,前面我潜伏控制了一周为什么都没被发现,我移交的时候给他种了一个反弹木马就立刻被发现了?对,一定是TCP长连接的异常。

简述一下攻击过程以及一些黑产集群的常规套路,方便下面更好的找到应对措施。

一般情况下,拿下了类似VNC的运维服务器后,提权成功,都会找到下图类似的很多自动脚本,主要用于方便批量给其他不同服务器发送指令或者统一运维管理。

这样我们可以很快的锁定集群资产,然后通过在运维服务器上创建代理路由,从而连接其他的服务器。

但是一般情况下,这里的权限都是500+很低很低的权限,几乎只能最低权限的去操作对应的服务,这个时候提权就非常重要了。

一般linux的提权我的大思路就两点,第一就是系统自带的权限提升,第二就是以root运行的第三方程序的权限提升。当然还有系统漏洞,这个去挖掘需要耗费大量的时间,按下不表。

说到系统自带的权限提升,这次集群的提权过程中,我发现了一个sudo的骚操作,不知道是不是google云的centos默认配置是这样,还是该黑产团队的配置疏忽,估计是后者可能性更大。这里就不多说了,很多公开的方法一堆,还有很多靠你的发散思维以及对每一个操作系统的了解深度。

说一下第三方的提权,常规的太多了,原理无非就是能否通过root运行的第三方程序去执行我想让他执行的系统命令。比如redis,黑产上尤为多见,但是都是有密码的,密码从哪里来呢?运维服务器的脚本里来。

其实黑产里面他们最看重的就是数据库,所以在数据库这块的保护可以说是刀枪不入,油盐不进。

比如,即便你翻找到数据库连接的配置文件,也是如下图一样

不光一库一权限,而且一库一白名单。

你说我去分析他的算法,没用,私钥得不到,唯一的办法只能拿下数据库服务器。

一般情况,黑产都不会把鸡蛋放在同一个篮子里面,所以,数据库服务器也有很多台,这种时候,也唯有一台台的拿到root权限。

拿到了数据库服务器的root还不算,通常你直接mysql是不行的。

这个时候两种方式脱库,第一,直接把mysql的data直接打包带走,第二种就是开启本机无授权访问,然后mysqldump成.sql文件。

至此一切都很顺利吧~~~~~

然而,今天本文讨论的不是怎么去干掉黑产然后脱库,而是研究的是如何长时间的潜伏控制不被发现。

有小伙伴问了,你特么不是潜伏控制了一周吗?

对咯,还真得感谢我十多年来养成的“良好习惯”,就是坚决不跟目标建立长时间的连接,需要的时候再去“打扰”别人[手工狗头.jpg]。

这个时候有小伙伴就会说了,那我本地监听一个端口,需要的时候我再主动去连接他啊。

前文就说了,这些黑产的防火墙入口都是完全过滤的,不是防火墙允许的端口,流量根本进不去。

其实我这么长时间的潜伏,完全是每拿到一台服务器后,在root的autorized_keys下面追加上我的公钥,然后sshd.config里面配置启用,最后运维服务器上用一个500+权限的webshell来创建代理路由,用完之后,全部恢复~~~~

首次创建单独的webshell很快就被干掉了,后来发现一个脚本是定期检查文件的,最后只能分段写在已有的文件内~~~~(真特么专业···)

但是这种方法也是基于有一个触发点的webshell,如果没有呢?本地监听端口肯定是不可行了,但是又要我们主动去触发,ICMP嘛~~~~

才写过一篇ICMP木马编写的文章

C语言写另类绕墙弹shell之ICMP协议(上)

C语言写另类绕墙弹shell之ICMP协议(下)

但是文章里面还是传统的反弹木马方式,也就是client创建交互shell,然后通过ICMP不断的与server交互,当时为了实现的目的是突破防火墙。

这里我们可以再拓展一下思路:

1、server种植在目标上

2、server接管ICMP包,也就是ping请求

3、server创建shell管道

4、server创建白名单,只有指定host才能进行shell交互,如果是其他host,则正常返回ping的数据(这样才能高度隐蔽不被发现)

5、client创建ICMP套接字

6、client与server进行shell交互

这样我们需要连接目标的时候,直接通过ICMP就能够获得交互的shell,用完了,断开即可,绝不建立长时间的连接!

------可爱的分割线------

别看了,我还没开始写,最近太忙了,等有空闲了,我一定出一篇文章详细分析一遍代码再附上成品

································


文章来源: http://mp.weixin.qq.com/s?__biz=MzkwMDMyOTA1OA==&mid=2247484036&idx=1&sn=2b936d84660165cf96fb910d963e98ed&chksm=c044f989f733709f930a3c58b8863c101515b698ce98bdf58d4d725b8c73a60e90fe12b37d5e#rd
如有侵权请联系:admin#unsafe.sh