Tuesday, November 22, 2011

การลบ user แปลกปลอมใน CentOS เนื่องจากดูเหมือนถูกบุกรุก hosting


วันนี้ ไล่ตรวจสอบระบบ hosting พบว่า hoting เครื่องหนึ่งมี process แปลก ๆ เข้ามา run (ตรวจสอบด้วยคำสั่ง top ปกตินี่แหละครับ) ซึ่ง process แปลก ๆ นั้นมักจะมี pid เหมือน process ทั่ว ๆ ไป แต่ตรงส่วน command จะเป็นตัวเลขแปลก ๆ ครับ จากนั้นก็ไล่ตรวจสอบต่อไปว่า path shell อยู่ที่ไหน ด้วยคำสั่ง
vi /etc/passwd
ให้ค้นหาชื่อ user ที่เป็นปัญหา เช่นหาก user ชื่อ noto จะเจอ path ประมาณนี้ครับ
noto:x:1023:1023:/var/www/vhost/noto:/bin/bash (กรณีนี้ของ hosting แน๊กซ่าเครื่องนี้ใช้ PLESK เป็นระบบ control panel ครับ)
พอลอง cd เข้าไปดูพบไฟล์แปลก ๆ เพียบเลยครับ รวมถึงไฟล์พวก .ssh .ssh2 .shosts .rhosts หรือ folder พวก eggdrop ก็เป็นอันสรุปได้ว่า น่าจะถูกเจาะระบบเข้ามาที่ hosting ครับ วิธีการแก้ไขก็ทำดังนี้ครับ
passwd -l noto (ทำการ lock password ไว้ก่อนครับ)
จากนั้นหากเรารู้ตำแหน่งของ home directory ของ shell จากไฟล์ /etc/passwd แล้วเราก็เข้าไปลบทิ้งทั้ง directory เลยครับ ในกรณีนี้คือ /var/www/vhosts/noto ก็ใช้คำสั่ง
rm -Rf /var/www/vhosts/noto
จากนั้นแก้ไข path shell ใหม่ เพื่อป้องกันการเข้ามาระบบอีกครั้งของผู้บุกรุกครับ
vi /etc/passwd โดยแก้ช่องสุดท้ายเปน /dev/null ครับ
เช่นแก้ไขจาก noto:x:1023:1023:/var/www/vhost/noto:/bin/bash เป็น noto:x:1023:1023:/var/www/vhost/noto:/dev/null
จากนั้นให้ kill process ที่ยังคงทำงานอยู่ของ user ดังกล่าว ซึ่งจะทำการเป็น backdoor ไว้ค่อยติดต่อกับภายนอก
ps aux | grep -i ^noto (ตรง ^noto คือชื่อ user ครับ)
ก็จะพบ process หลายตัวครับก็ให้ทำการ kill -9 pid นั้น ๆ ออกครับ
kill -9 13958
เท่านี้ก็เป็นการลบ user ที่ไม่ต้องการออกไปแล้วครับ และป้องกันการโจมตีอีกครั้งด้วครับ ส่วนสาเหตุอาจจะมีบาง user เปิดช่องโหว่ให้สามารถเข้ามาสร้างไฟล์ได้ ซึ่งก็ต้องตรวจสอบดูกันต่อไปครับ

0 comments:

Post a Comment

 
Design by GURU