PaloAltoNetworksUnit42安全研究人员发现了一个基于Linux的加密货币挖矿僵尸网络,它利用PostgreSQL远程代码执行(RCE)漏洞来破坏数据库。据PaloAltoNetworksUnit42的研究人员称,PGMiner利用PostgreSQL(也称为Postgres)中的CVE-2019-9193漏洞发起攻击。这可能是有史以来第一个针对PostgreSQL的加密货币挖矿僵尸网络。漏洞利用Unit42研究人员在文章中写道:“攻击者正在利用的PostgreSQL特性是‘copyfromprogram’,它在2013年9月9日的9.3版本中引入”,“早在2018年,针对CVE-2019-PostgreSQL社区一直高度怀疑的9193漏洞也被标记为“有争议”。他们补充说:“值得注意的是,恶意软件攻击者不仅开始将已确认的漏洞武器化。并且还开始将有争议的漏洞武器化”。此功能允许shell脚本在服务器上本地或远程运行。但是,只要超级用户和不受信任的用户都没有远程权限,并且访问控制和身份验证系统配置正确,没有风险,另一方面,如果配置不正确,还可以利用PostgreSQL通过暴力破解或者SQL注入的方式获取超级用户权限,也可以在PostgreSQL以外的服务器上远程执行代码。研究人员表示:“攻击者会扫描PostgreSQL使用的5432端口(0x1538)”,“恶意软件会随机选择一个网络地址段(如190.0.0.0、66.0.0.0)开始扫描,以尝试执行远程代码在PostgreSQL服务器上。同时,112233和1q2w3e4r等内置密码列表使用数据库的默认用户postgres进行暴力破解以破坏数据库身份验证。”报告称,恶意软件以超级用户身份入侵服务器后,利用“从程序复制”功能的CVE-2019-9193漏洞下载并开始挖矿。挖矿程序采用无文件方式,启动后立即删除PostgreSQL的abroxu表,重新创建abroxu表填充Payload,执行后清空创建的表。安装后,恶意软件会使用curl执行任务。curl是一个命令行工具,用于向服务器传输数据和从服务器传输数据。如果受害者机器上不存在curl,恶意软件会尝试多种方法来下载curl二进制文件并将其添加到执行路径中。更有趣的是目标C&C地址:94.237.85.89。该地址绑定了域名newt.keetup.com。虽然其父域keepup.com似乎是一个合法网站,但这个特定的子域将端口80重定向到443,该端口用于托管名为newt的couchdb。虽然端口8080不对外开放,但我们认为它配置为允许跨域资源共享(CORS)。下一步是通过SOCKS5代理连接到命令和控制服务器(C&C)。PGMiner然后收集系统信息并将其发送到C&C服务器以识别受害者,以确定应该下载哪个版本的矿工。解析SOCKS5代理服务器的IP地址后,PGMiner循环遍历文件夹列表以找到有权创建新文件并更新其属性位置的文件夹”,“以确保下载的有效负载可以在受感染的服务器上成功执行”。最后,删除了Aegis等云安全监控工具和云景等Qcloud监控程序。检查虚拟机,终止所有其他CPU密集型进程和竞争矿工。PGMiner的C&C服务器不断更新。不同的模块分布在不同的C&C服务器上,这一切都表明PGMiner仍在快速迭代发展,目前的攻击针对Linux平台,但也可以很容易地修改为针对Windows和macOS平台。检查清理PostgreSQL用户可以解除非信任用户的pg_execute_server_program权限,使得攻击者无法利用该漏洞。此外,可以终止跟踪路径进程。参考来源:ThreatPostPaloAltoNetwork
