Server ถูก hack คร้าบบบบ

สวัสดีคร้าบ ผมมีปัญหา Server ถูกเจาะ เลยมีเรื่องอยากขอคำปรึกษาเพื่อนๆ พี่ๆ ครับ

ผมมีลูกค้าใช้งาน wordpress ครับ ลูกค้าเป็นผู้ใช้ระดับ user ไม่ได้ root password ไม่เคย ssh เข้ามา ปกติผมจะดูแล server ให้ครับ
Server ทำงานมาได้เกือบ 2 ปีแล้วครับ เป็น dedicated server ลง centos 6.x 64bit ตอนนี้เป็น 6.5 ครับ

ข้างในติดตั้ง wordpress ครับ มีอยู่ 5 เว็บไซต๋์
ส่วนใหญ่ขาดการอัพเดท มีปัญหาโดนเจาะบ้างประปรายตลอด 2 ปีที่ผ่านมา แต่ละครั้งที่โดนจะมี phisingsite หรือ spam mail

เตือนลูกค้ายังไงก็ไม่ค่อยอัพเดทซักที
พอโดนทีผมก็จะลบลงใหม่ แบบเก็บฐานข้อมูลเฉพาะ post และไฟล์รูปภาพไว้มาติดตั้งให้ใหม่ครับ ที่ผ่านมาก็ดูแลปกติครับ

จนมาอาทิตย์ที่แล้วจู่ๆ เครื่องส่ง DDoS ออกจนเต็มสายเว็บช้าไปทั้งหมด ผมมาดู process ที่ส่ง DDoS กลับเจอเป็น process
ที่มี user เป็น root @_@

[root@sv1 ~]# lsof -w -n -p 5384
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ifyiptddm 5384 root cwd DIR 9,2 4096 2 /
ifyiptddm 5384 root rtd DIR 9,2 4096 2 /
ifyiptddm 5384 root txt REG 9,2 625718 39324164 /usr/bin/ifyiptddmo
ifyiptddm 5384 root 0u CHR 1,3 0t0 3824 /dev/null
ifyiptddm 5384 root 1u CHR 1,3 0t0 3824 /dev/null
ifyiptddm 5384 root 2u CHR 1,3 0t0 3824 /dev/null
ifyiptddm 5384 root 3u IPv4 185164 0t0 TCP 123.123.123.123:40846->104.223.10.40:opsession-prxy (SYN_SENT)

ลองลูบๆ คลำๆ ไฟล์ดู

  • ลอง cat /usr/bin/ifyiptddmo แต่เปิดไฟล์อ่านไม่ได้ เจอแต่ตัวยึกยือ
  • ลอง execute ไฟล์ดู ./usr/bin/ifyiptddmo พบว่าไฟล์จะหายวับไปเลยครับ แต่มี อีกไฟล์เปลี่ยนชื่อสร้างขึ้่นมาแทนทำ ddos เหมือนกัน
  • ลองเปลี่ยน password root เปลี่ยน ssh port แล้วลบไฟล์ทิ้งไม่ถึง นาทีก็โผล่มาใหม่
  • ตรวจ cronjob ไม่มีอะไรผิดปกติ

ผมถอดใจเลยเคยพอดูว่าเค้ามีสิทธิ์ root ผ่านนี้เครื่องคงพรุนไปไหนถึงไหน
เลย backup ข้อมูลเนื่องจากมี 5 โดเมนไฟล์รวมกันไม่ถึง 5 GB แล้ว format ลบลงใหม่
ระหว่างลบลงใหม่ลูกค้าบอกว่ามีเว็บ 4 โดเมนที่ผู้ชมเข้าเยอะไม่อยากให้ดับ ผมเลยไป restore อีกเครื่องนึง ขอแทนเครื่องนี้ว่าเครื่อง B ครับ

ทีเหลืออีก 1 เว็บพอ format ติดตั้งใหม่กลับมาติดตั้งเครื่องเดิม เครื่อง A แล้วไม่พบอาการอีก ที่เครื่องนี้ สรปุึว่าเครื่อง A หาย

แต่ว่าพอทิ้งไว้ 2 วัน เครื่อง B ที่ย้ายไป 4 เว็บถูกเจาะอาการเดียวกันเลยครับ ตอนเข้าไปดูพบว่ากำลังส่ง ddos กันอย่างเมามันส์
ผมเข้าไปแล้วใช้ iptable drop เอาไว้อยูู่

ที่มั่นใจคือ backdoor ต้องอยู่ใน 4 เว้บที่ย้ายไปแน่ๆ แต่ก่อนย้ายลองใช้ maldet clamav กับ abuseseat findbot.pl scan ดูก่อนย้าย
พบไฟล์เข้ารหัส base64 อยู่ไม่กี่ไฟล์แต่ลบออกหมดแล้วครับ

เลยอยากสอบถามว่า hacker ยกระดับมาเป็น root ได้ไงอะครับ ทั้ง 2 เครื่อง ที่ผมทำตั้งแต่ติดตั้งครั้งแรก

  • รหัสผ่าน ssh และ directadmin random สุ่มยาก

  • ติดตั้ง clamav ตั้ง auto scan เคยเจอตัวอื่น แต่ไม่เจอตัวนี้

  • ติดตั้ง Maldet (LMD) ตั้ง auto scan เคยเจอตัวอื่น แต่ไม่เจอตัวนี้

  • ทำ secure /tmp

  • ทำ php disable_functions = exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source

  • yum update ทุกๆ 3 เดือน

  • คอมไพปิด cgi ให้กับ httpd

  • นอกเหนือจากด้านบนผมลืมทำอะไรไปรึเปล่าครับเนี่ย

  • มีคำสั่ง หรือวิธีหาต้นตอที่สร้างไฟล์ /usr/bin/fzyrabrclw ขึ้นมาทำงานรึเปล่าครับ

[root@sv1 bin]# find /usr/bin/ -type f -printf ‘%TY-%Tm-%Td %TT %p
’ | sort -r | head -n 5
2016-01-26 18:05:08.8891505330 ./fzyrabrclw
2015-08-17 22:57:15.0000000000 ./snmpwalk
2015-08-17 22:57:15.0000000000 ./snmpvacm
2015-08-17 22:57:15.0000000000 ./snmpusm
2015-08-17 22:57:15.0000000000 ./snmptrap

[root@sv1 bin]# rm fzyrabrclw
rm: remove regular file `fzyrabrclw’? y

[root@sv1 bin]# find /usr/bin/ -type f -printf ‘%TY-%Tm-%Td %TT %p
’ | sort -r | head -n 5
2016-01-26 18:47:35.6281488540 /usr/bin/gqwnnjrqun
2015-08-17 22:57:15.0000000000 /usr/bin/snmpwalk
2015-08-17 22:57:15.0000000000 /usr/bin/snmpvacm
2015-08-17 22:57:15.0000000000 /usr/bin/snmpusm
2015-08-17 22:57:15.0000000000 /usr/bin/snmptrap

[root@sv1 bin]# rm gqwnnjrqun
rm: remove regular file `gqwnnjrqun’? y

[root@sv1 bin]# find /usr/bin/ -type f -printf ‘%TY-%Tm-%Td %TT %p
’ | sort -r | head -n 5
2016-01-26 18:48:14.4471487420 /usr/bin/stsmddhyyw
2015-08-17 22:57:15.0000000000 /usr/bin/snmpwalk
2015-08-17 22:57:15.0000000000 /usr/bin/snmpvacm
2015-08-17 22:57:15.0000000000 /usr/bin/snmpusm
2015-08-17 22:57:15.0000000000 /usr/bin/snmptrap

ได้ปิด ip/~user ไหมครับ
แล้ว php รันโหมดไหนครับ

ถ้าเครื่องโดนเจาะถึงระดับสามารถรันโพรเซสภายใต้ root ได้แล้วก็ควร format ลงใหม่ดีกว่าครับ เพราะคุณไม่อาจจะรู้ได้ว่าไฟล์อื่นๆรวมถึงไฟล์ของระบบได้ถูกแก้ไขแล้วหรือไม่
ตามที่คุณแจ้งไว้ คือการป้องกันที่ถูกต้องแล้ว แต่ต้องแน่ใจว่า ที่คุณได้ติดตั้งแล้ว ทำงานตามที่กำหนดไว้จริงหรือปล่าว

ถ้าเครื่องนั้นใช้แค่เพียง wordpress การกำหนดการเข้าถึงไฟล์ต่างๆในตัว web server ก็สามารถป้องกันได้ http://www.wpexplorer.com/htaccess-wordpress-security/

ไม่ได้ปิด ip/~user ไว้เลยครับ ลืมอะ เครื่องลูกค้าไม่เคยปิดเลยครับ เดี๋ยวคงต้องไปไล่ปิดแล้วครับ
ส่วน php รัน mode cli + mod_ruid2 ครับ

ขอบคุณมากๆ ครับ ไม่รู้เลยว่ามี htaccess ให้ใช้กับ wordpress เยอะขนาดนี้ครับ

[COLOR=#000000][FONT=verdana]ปิด [/FONT][/COLOR][COLOR=#444444][FONT=Open Sans]http://ip/~user[/FONT][/COLOR][COLOR=#000000][FONT=verdana]
[/FONT][/COLOR][COLOR=#000000][FONT=verdana]
CustomBuild 2.0 now has the option by default:

[/FONT][/COLOR][COLOR=#000000][FONT=courier new]# cd /usr/local/directadmin/custombuild

./build set userdir_access no

./build rewrite_confs

[/FONT][/COLOR]http://help.directadmin.com/item.php?id=344

ตอนนี้กำลังไล่ดู date modify พวกเว็บที่ย้ายมาครับ มันต้องฝังอยู่ตรงไหนซักแห่งหาเจอแล้จะได้ปิดช่องโหว่ format ติดตั้งใหม่ครับ
ไม่งั้นเดี๋ยวพวกตามมาอีก

  1. ลง os เสร็จให้ mount /tmp noexec,nosuid
  2. compile apache disable cgi
  3. disable function ใน php.ini
  4. set upload tmp dir ใน php.ini ไปที่ /tmp
  5. ปิด ~user ใน apache 2.2 (อันนี้แค่อ่านเขียนไฟล์ข้าม user ได้ แต่ถ้า apache 2.4 มันป้องกันมาให้แล้ว)

กรรม ทำหมดแล้วนี่หว่า

ใน my.ini มี local_infile=0 ยัง

ถ้า mode นี้รู้สึกว่า จะเปิด php disable ใน htaccess ได้นะครับ

uname -a ของทั้งสองเครื่องมาหน่อยครับ

สงสัยว่า mount /tmp noexec,nosuid ทำทีหลังได้ไหมครับ พอดีมีเว็บใช้งานอยู่แล้ว แต่ยังไม่ได้ทำ secure /tmp

ทำเมื่อไหร่ การป้องกันก็ให้ผล เมื่อนั้นครับ

เว็บที่ใช้งานอยู่ จะไม่ได้รับผลกระทบใช่ไหมครับ กลัว remount ไปแล้วเว็บเดี้ยง ^ ^

ถ้าทำถูกต้องก็ไม่น่าจะมีปัญหาอะไรครับ

ใน my.cnf มี local_infile=0 แล้วครับพี่แมน

อันนี้เครื่อง B ที่กำลังโดนเล่นงานอยู่ครับ
[root@sv1 ~]# uname -a
Linux sv1.hostname.com 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

อันนี้เครื่อง A ที่เพิ่ง Format ไปครับเมื่อ 3 วันที่แล้วครับ
[root@sv2 ~]# uname -a
Linux sv2.hostname.com 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 21:19:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

กำลังติดตั้งใหม่อีกทีครับ apache ใช้ 2.2 แล้วไม่ได้ปิด ip ~user ครับ
เดี๋ยวคราวนี้ลองปิดดูครับ

ลงใหม่ทั้งที Apache 2.4 ไปเลยดีกว่ามั้ยครับ

ขอบคุณครับน้องหลายเดี๋ยวเอา custmbuild 2 + apache 2.4 เดี๋ยวมารายงานผลอีกทีครับ

เท่าที่ดูน่าจะเป็นบั๊กตัวนี้ครับ https://access.redhat.com/articles/1332213 CVE-2015-0235 remote buffer overflow + code execution
ใช้ร่วมกับอีกสองสามบั๊กจะออกมาเป็นแบบนั้นได้

เท่าที่ดูกระทบถึง centos 6.6 เลย อัพเป็น centos 6.7 ช่วยได้ครับ

เคยเห็นคนโดนและไม่ปิดส่วนนี้อันตรายมากๆ