ฉันเพิ่งวิ่งchkrootkit
และได้รับบรรทัดต่อไปนี้:
Searching for Suckit rootkit... Warning: /sbin/init INFECTED
สิ่งนี้หมายความว่าอะไรกันแน่? ฉันได้ยินมาว่านี่เป็นสิ่งที่ผิดพลาดบวกสิ่งที่เกิดขึ้น
กรุณาและขอบคุณ
ฉันเพิ่งวิ่งchkrootkit
และได้รับบรรทัดต่อไปนี้:
Searching for Suckit rootkit... Warning: /sbin/init INFECTED
สิ่งนี้หมายความว่าอะไรกันแน่? ฉันได้ยินมาว่านี่เป็นสิ่งที่ผิดพลาดบวกสิ่งที่เกิดขึ้น
กรุณาและขอบคุณ
คำตอบ:
อาจเป็นไปได้ว่านี่เป็นข้อผิดพลาดเชิงบวกเนื่องจากมีข้อผิดพลาดใน 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
บน 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?
strings /sbin/init | grep HOME
ฉันจะได้รับ XDG_CACHE_HOME and XDG_CONFIG_HOME
มันยังคงเป็นบวกที่ผิด? วัตถุประสงค์ของการค้นหาสตริง "HOME" ใน / sbin / init คืออะไร ทำไมต้องเป็นค่าบวก