chkrootkit พูดว่า / sbin / init ติดเชื้อนั่นหมายความว่าอะไร?


30

ฉันเพิ่งวิ่งchkrootkitและได้รับบรรทัดต่อไปนี้:

Searching for Suckit rootkit...                   Warning: /sbin/init INFECTED

สิ่งนี้หมายความว่าอะไรกันแน่? ฉันได้ยินมาว่านี่เป็นสิ่งที่ผิดพลาดบวกสิ่งที่เกิดขึ้น

กรุณาและขอบคุณ

คำตอบ:


34

อาจเป็นไปได้ว่านี่เป็นข้อผิดพลาดเชิงบวกเนื่องจากมีข้อผิดพลาดใน chkrootkit (ได้รับการแก้ไขในเวอร์ชัน 0.50-3ubuntu1 ที่ใหม่กว่า) เห็นได้ชัดว่า chkrootkit ไม่ทำการตรวจสอบอย่างเข้มงวดเพียงพอ

ดู: https://bugs.launchpad.net/ubuntu/+source/chkrootkit/+bug/454566

นอกจากนี้คุณสามารถลอง rkhunter ซึ่งคล้ายกับ chkrootkit

ข้อมูลเพิ่มเติม: โชคดีที่ใช้ไฟล์ `ซึ่ง chkrootkit`แสดงให้เราเห็นว่า chkrootkit เป็นเพียงเชลล์สคริปต์เพื่อให้เราสามารถตรวจสอบได้โดยตรง

Searching for Suckit in the file /usr/sbin/chkrootkit we find:
   ### Suckit
   if [ -f ${ROOTDIR}sbin/init ]; then
      if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
      if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  || \
              cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
        then
        echo "Warning: ${ROOTDIR}sbin/init INFECTED"
      else
         if [ -d ${ROOTDIR}/dev/.golf ]; then
            echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
         else
            if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
         fi
      fi
   fi

กุญแจสำคัญคือ:

cat ${ROOTDIR}/proc/1/maps | ${egrep} "init."

ตั้งแต่ Ubuntu รุ่นล่าสุดการรันคำสั่งนั้นจะสร้างเอาต์พุตบางตัว (จำเป็นต้องเรียกใช้ในฐานะ root หรือ sudo):

# sudo cat /proc/1/maps | egrep "init."
b78c2000-b78db000 r-xp 00000000 08:02 271571     /sbin/init (deleted)
b78db000-b78dc000 r--p 00019000 08:02 271571     /sbin/init (deleted)
b78dc000-b78dd000 rw-p 0001a000 08:02 271571     /sbin/init (deleted)

อย่างไรก็ตามนี่ไม่ใช่การติดเชื้อโดย rootkit ฉันยังดูที่รหัส rkhunter และการตรวจสอบนั้นเข้มงวดกว่ามาก (ทดสอบไฟล์เพิ่มเติมทุกประเภทที่ติดตั้งโดยรูทคิท)

ฉันได้เปลี่ยนสาย 1003,1004 ในไฟล์ chkrootkit ไม่ให้ตรวจสอบดำเนินการตรวจสอบ / proc / 1 / maps (อย่าลืมคัดลอกก่อน)

if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME  ) \
             >/dev/null 2>&1

4
สิ่งนี้ใช้กับ V0.49 ซึ่งติดตั้งโดย apt-get ดูเหมือนว่า chkrootkit 0.50 (หาได้จากchkrootkit.orgโดยตรง) จะช่วยแก้ไขค่าบวกที่ผิดพลาดนี้
Quog

ถ้าคุณต้องการที่จะรู้ว่ารุ่นใดที่มาพร้อมกับอูบุนตูของคุณดูได้ที่: packages.ubuntu.com/search?keywords=chkrootkit
Édouard Lopez

เนื่องจากสิ่งนี้เกิดขึ้นในการค้นหาเมื่อฉันแก้ไขปัญหาฉันต้องการพูดถึงว่ามีการสนทนากับข้อมูลเพิ่มเติมที่นี่: askubuntu.com/questions/597432//
Cody Sharp

2

บน Kubuntu 13.04 ตั้งแต่ 2013-07-31

วิ่ง:

cat /sbin/init | egrep HOME

ผลิต:

Binary file (standard input) matches

และ

วิ่ง:

cat /proc/1/maps | egrep "init."

สร้างเอาต์พุต NO

หมายเหตุ: การลบระยะเวลาสร้างเอาต์พุต (เปลี่ยน "init." เป็น "init")

b7768000-b779f000 r-xp 00000000 08:02 399192     /sbin/init
b779f000-b77a0000 r--p 00036000 08:02 399192     /sbin/init
b77a0000-b77a1000 rw-p 00037000 08:02 399192     /sbin/init

ดังนั้นสำหรับฉันแล้วการตรวจสอบชิ้นส่วน HOME เป็นปัญหา

หากมีใครสามารถสันนิษฐานได้ว่า rkhunter มีการตรวจสอบที่ถูกต้องแล้วบางทีเส้นทางง่าย ๆ ก็แค่ลบส่วนนี้ออกจาก chkrootkit และรันทั้ง rkhunter และ chkrootkit?


1
ฉันมีสิ่งเดียวกันบน Ubuntu 14.04 32 บิต ถ้าฉันลองstrings /sbin/init | grep HOMEฉันจะได้รับ XDG_CACHE_HOME and XDG_CONFIG_HOMEมันยังคงเป็นบวกที่ผิด? วัตถุประสงค์ของการค้นหาสตริง "HOME" ใน / sbin / init คืออะไร ทำไมต้องเป็นค่าบวก
rubo77
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.