Post Views:
55
เหตุจากที่ ThaiCert แจ้งว่าพบการฝังโค๊ดดังนี้
ทำการค้นหาโดย find /var/www -name *.php -newermr 2016-06-20 -exec grep www.ดับเปิ้ลยูอีdance.es {} \;
ตรวจสอบแล้ว พบว่าอยู่ในไฟล์ต่อไปนี้มีรายการดังนี้
ทางผู้ดูแลระบบเครือข่ายวิทยาเขตหาดใหญ่คุณคณกรณ์ แจ้งถึงปัญหาที่เครื่องเซิร์ฟเวอร์ webhost.phuket.psu.ac.th ถูกกีดกั้นการเข้าถึงจากภายนอก เนื่องจากสาเหตุมีผู้บุกรุกและได้ใช้เครื่องดังกล่าวเป็นเครื่องแม่ข่ายโจมตีระบบเครือข่ายอื่นๆ ผ่านช่องทางเครือข่ายของมหาวิทยาลัย ทางผู้ดูแลระบบเครือข่ายจึงจำเป็นต้องดำเนินการปิดกั้นเครื่องดังกล่าวจากการเข้าถึงจากภายนอกชั่วคราว และประสานงานให้ดำเนินการแก้ไขถึงปัญหาดังกล่าว
เบื้องต้นได้รับแจ้งถึงเว็บไซต์ http://dorm.phuket.psu.ac.th ถูกบุกรุก ทางผู้ดูแลระบบเครือข่ายจึงได้ทำการประสานงานไปยังผู้ดูแลเว็บไซต์ พบว่าเว็บไซต์ไม่ได้มีการใช้งานแล้ว ณ ปัจจุบัน จึงได้ทำการปิดเว็บไซต์และทำการลบเนื้อหารวมถึงไฟล์ทั้งหมดออก และทำการตรวจสอบเพิ่มเติมไปยังระบบอื่นๆ พบว่ามีการแก้ไขไฟล์ต่างๆ และทำการฝังโค้ดโปรแกรมที่ไม่พึงประสงค์ลงในไฟล์ระบบอีกบางระบบ จึงได้ตรวจสอบหาสาเหตุเพิ่มเติม
เริ่มต้นจากการค้นหาไฟล์ที่ต้องสงสัย พบบางไฟล์ที่ต้องสงสัยบางไฟล์มีลักษณะการฝังโค้ดดังกล่าวและเข้ารหัสไว้
ตรวจสอบเพิ่มเติมเพื่อค้นหาไฟล์ที่มีลักษณะแบบนี้ ด้วยคำสั่ง find /var/www -name “*.php” | xargs grep ‘ eval(‘
ได้ผลลัพธ์ดังนี้
ตรวจสอบเพิ่มเติมพบว่า มีบาง Directory อนุญาตให้ www-data เขียนได้ และบาง Directory กำหนด Permission เป็น 777 ทำให้สามารถเพิ่มไฟล์เข้ามาได้
ตรวจสอบเพิ่มเติมและรวบรวมรายชื่อไฟล์ที่มีลักษณะดังกล่าวได้ทั้งหมดดังด้านล่าง
รวบรวมรายชื่อไฟล์ที่ต้องสงสัยและสร้างไฟล์ใหม่ที่รวบรวมรายชื่อไฟล์เหล่านั้น กรณีนี้ใช้ชื่อไฟล์ c.txt
จากนั้น ทำการสำรองไฟล์ต้นฉบับเก็บไว้ก่อนแก้ไข ด้วยคำสั่ง tar -zcvf suspect.tar.gz –files-from c.txt
ผลลัพธ์ได้ไฟล์ suspect.tar.gz จากนั้นตรวจสอบรายชื่อไฟล์ดังกล่าว ด้วยคำสั่ง tar -ztvf suspect.tar.gz
จากนั้นทำการตรวจสอบทีละไฟล์ จนเสร็จเรียบร้อย
ขั้นตอนต่อไป ทำการตรวจสอบ permission ของ directory ที่อยู่ใน /var/www ด้วยคำลั่ง
find /var/www -user www-data -perm -u+w -type d -exec ls -ld {} \;
เพื่อค้นหา directory ที่ user ชื่อ www-data มีสิทธิ์เขียนได้
ตรวจสอบอีกครั้ง และใช้คำสั่งนี้
find /var/www -user www-data -perm -u+w -type d -exec chmod u-w {} \;
เพื่อไม่ให้ user สามารถ write ได้ ใน directory นั้นๆ
จากนั้นทำการตรวจสอบไฟล์ที่อนุญาตให้ www-data สามารถเขียนได้ด้วยคำสั่ง
find /var/www -name “*.php” -user www-data -perm -u+w -type f -exec ls -l {} \;
และทำการปิด permission ด้วย ปิดด้วยคำสั่ง
find /var/www -name “*.php” -user www-data -perm -u+w -type f -exec chmod u-w {} \;
โดยในระหว่างขั้นตอนค้นหาและแก้ไขปัญหานี้ ได้รับความช่วยเหลือจาก คุณคณกรณ์ ทางทีมผู้ดูแลเครือข่ายวิทยาหาดใหญ่ และภายหลังจากการเปิดอนุญาตให้เข้าถึงจากภายนอกได้เป็นเวลาประมาณ 3 วัน พบว่ามีการบุกรุกเข้ามาอีก โดยเปลี่ยนรูปแบบเป็นเทคนิค Obfuscate PHP แทน Base64 เดิม ทำให้แกะได้ยาก โดยมีจุดเด่นคือใช้ตัวแปร GLOBAL จำนวนมาก
จึงต้องใช้คำสังต่อไปนี้ในการค้นหา
find /var/www/ -name “*.php” -exec egrep -l ‘\$GLOBAL’ {} \; | xargs grep GLOBAL
จากการตรวจสอบ Log ของเว็บไซต์ พบว่า มีความพยายามโจมตี xmlrpc.php ของ WordPress ดังภาพ
***ขั้นตอนการตรวจสอบต่างๆ ได้แนวทางมาจาก https://sysadmin.psu.ac.th/2014/01/10/web-hacking-and-security-workshop
แก้ไขโดยทำการปิดกั้นสิทธิโดยไม่อนุญาตให้ทำงาน โดยขั้นตอนดังนี้
สร้างไฟล์ xmlrpc ใน Directory /etc/apache2/conf.d/xmlrpc
และเพิ่มลงในไฟล์
จากนั้นบันทึกและทำการรีสตาร์ท apache ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
ต่อมาทำการค้นหา permission ของ directory ที่มี permission เป็น 777 ทั้งหมดซ้ำอีกครั้งด้วยคำสั่ง
find /var/www -perm 0777 | xargs ls -l
ในระหว่างนี้ให้รอเครื่องเซอร์เวอร์ทำงานสักครู่… จากนั้นทำการเปลี่ยน permission เป็น 755 ทั้งหมดด้วยคำสั่ง
find /var/www -perm 0777 -type d -exec chmod 755 “{}” \;
ต่อมาทำการค้นหา group ที่อนุญาตให้ www-data สามารถเขียนได้ ด้วยคำสั่ง
find /var/www -group www-data -perm -g+w -type f -exec ls -l {} \;
และทำการปิดด้วยคำสั่ง
find /var/www -group www-data -perm -g+w -type f -exec chmod g-w “{}” \;
ในระหว่างนี้ให้รอเครื่องเซิร์ฟเวอร์ทำงานสักครู่… เป็นอันเสร็จเรียบร้อย รอตรวจสอบความเรียบร้อยทั้งหมดและอนุญาตให้เข้าถึงจากภายนอกได้อีกครั้ง
ในระหว่างรอตรวจสอบ พบว่ามีกาารส่งจดหมายขยะออกเป็นจำนวนมากจากอีเมล์ห้องสมุด
ตรวจสอบแล้วพบว่าจดหมายถูกส่งออกโดยโมดูล contact จากเว็บห้องสมุด และแจ้งผู้ดูแลเว็บไซต์เพื่อเพิ่ม captcha เพื่อแก้ไขปัญหาดังกล่าว การแก้ไขปัญหาในครั้งนี้รับความช่วยเหลือ และร่วมกันแก้ไขปัญหากับคุณคณกรณ์ ตั้งแต่ขั้นตอนการแก้ไขปัญหา รวมถึงแนะนำวิธีการป้องกันปัญหาดังกล่าวจากคุณคณกรณ์ จนกระทั่งสำเร็จเรียบร้อยทุกขั้นตอน ณ ตอนนี้เครื่องได้เปิดอนุญาตให้เข้าถึงจากภายนอกอีกครั้ง
ขั้นตอนในการตรวจสอบและแก้ไขปัญหาต่างๆ ทั้งหมดเหล่านี้ ได้แนวทางมาจากบทความที่คุณคณกรณ์ ได้เขียนบทความไว้ที่
https://sysadmin.psu.ac.th/2014/01/10/web-hacking-and-security-workshop
ขอบคุณครับ
ชยธร วัฒนชาลี
Mr. Chayatorn Wattanachalee
Learning Centre
Information Technology Section,
Prince of Songkla University, Phuket Campus.
E-mail: chayatorn.w@phuket.psu.ac.th
Tel: 0-7627-6514
More Posts - Website
เหตุจากที่ ThaiCert แจ้งว่าพบการฝังโค๊ดดังนี้
ทำการค้นหาโดย find /var/www -name *.php -newermr 2016-06-20 -exec grep www.ดับเปิ้ลยูอีdance.es {} \;
ตรวจสอบแล้ว พบว่าอยู่ในไฟล์ต่อไปนี้มีรายการดังนี้
ทางผู้ดูแลระบบเครือข่ายวิทยาเขตหาดใหญ่คุณคณกรณ์ แจ้งถึงปัญหาที่เครื่องเซิร์ฟเวอร์ webhost.phuket.psu.ac.th ถูกกีดกั้นการเข้าถึงจากภายนอก เนื่องจากสาเหตุมีผู้บุกรุกและได้ใช้เครื่องดังกล่าวเป็นเครื่องแม่ข่ายโจมตีระบบเครือข่ายอื่นๆ ผ่านช่องทางเครือข่ายของมหาวิทยาลัย ทางผู้ดูแลระบบเครือข่ายจึงจำเป็นต้องดำเนินการปิดกั้นเครื่องดังกล่าวจากการเข้าถึงจากภายนอกชั่วคราว และประสานงานให้ดำเนินการแก้ไขถึงปัญหาดังกล่าว
เบื้องต้นได้รับแจ้งถึงเว็บไซต์ http://dorm.phuket.psu.ac.th ถูกบุกรุก ทางผู้ดูแลระบบเครือข่ายจึงได้ทำการประสานงานไปยังผู้ดูแลเว็บไซต์ พบว่าเว็บไซต์ไม่ได้มีการใช้งานแล้ว ณ ปัจจุบัน จึงได้ทำการปิดเว็บไซต์และทำการลบเนื้อหารวมถึงไฟล์ทั้งหมดออก และทำการตรวจสอบเพิ่มเติมไปยังระบบอื่นๆ พบว่ามีการแก้ไขไฟล์ต่างๆ และทำการฝังโค้ดโปรแกรมที่ไม่พึงประสงค์ลงในไฟล์ระบบอีกบางระบบ จึงได้ตรวจสอบหาสาเหตุเพิ่มเติม
เริ่มต้นจากการค้นหาไฟล์ที่ต้องสงสัย พบบางไฟล์ที่ต้องสงสัยบางไฟล์มีลักษณะการฝังโค้ดดังกล่าวและเข้ารหัสไว้
ตรวจสอบเพิ่มเติมเพื่อค้นหาไฟล์ที่มีลักษณะแบบนี้ ด้วยคำสั่ง find /var/www -name “*.php” | xargs grep ‘ eval(‘
ได้ผลลัพธ์ดังนี้
ตรวจสอบเพิ่มเติมพบว่า มีบาง Directory อนุญาตให้ www-data เขียนได้ และบาง Directory กำหนด Permission เป็น 777 ทำให้สามารถเพิ่มไฟล์เข้ามาได้
ตรวจสอบเพิ่มเติมและรวบรวมรายชื่อไฟล์ที่มีลักษณะดังกล่าวได้ทั้งหมดดังด้านล่าง
รวบรวมรายชื่อไฟล์ที่ต้องสงสัยและสร้างไฟล์ใหม่ที่รวบรวมรายชื่อไฟล์เหล่านั้น กรณีนี้ใช้ชื่อไฟล์ c.txt
จากนั้น ทำการสำรองไฟล์ต้นฉบับเก็บไว้ก่อนแก้ไข ด้วยคำสั่ง tar -zcvf suspect.tar.gz –files-from c.txt
ผลลัพธ์ได้ไฟล์ suspect.tar.gz จากนั้นตรวจสอบรายชื่อไฟล์ดังกล่าว ด้วยคำสั่ง tar -ztvf suspect.tar.gz
จากนั้นทำการตรวจสอบทีละไฟล์ จนเสร็จเรียบร้อย
ขั้นตอนต่อไป ทำการตรวจสอบ permission ของ directory ที่อยู่ใน /var/www ด้วยคำลั่ง
find /var/www -user www-data -perm -u+w -type d -exec ls -ld {} \;
เพื่อค้นหา directory ที่ user ชื่อ www-data มีสิทธิ์เขียนได้
ตรวจสอบอีกครั้ง และใช้คำสั่งนี้
find /var/www -user www-data -perm -u+w -type d -exec chmod u-w {} \;
เพื่อไม่ให้ user สามารถ write ได้ ใน directory นั้นๆ
จากนั้นทำการตรวจสอบไฟล์ที่อนุญาตให้ www-data สามารถเขียนได้ด้วยคำสั่ง
find /var/www -name “*.php” -user www-data -perm -u+w -type f -exec ls -l {} \;
และทำการปิด permission ด้วย ปิดด้วยคำสั่ง
find /var/www -name “*.php” -user www-data -perm -u+w -type f -exec chmod u-w {} \;
โดยในระหว่างขั้นตอนค้นหาและแก้ไขปัญหานี้ ได้รับความช่วยเหลือจาก คุณคณกรณ์ ทางทีมผู้ดูแลเครือข่ายวิทยาหาดใหญ่ และภายหลังจากการเปิดอนุญาตให้เข้าถึงจากภายนอกได้เป็นเวลาประมาณ 3 วัน พบว่ามีการบุกรุกเข้ามาอีก โดยเปลี่ยนรูปแบบเป็นเทคนิค Obfuscate PHP แทน Base64 เดิม ทำให้แกะได้ยาก โดยมีจุดเด่นคือใช้ตัวแปร GLOBAL จำนวนมาก
จึงต้องใช้คำสังต่อไปนี้ในการค้นหา
find /var/www/ -name “*.php” -exec egrep -l ‘\$GLOBAL’ {} \; | xargs grep GLOBAL
จากการตรวจสอบ Log ของเว็บไซต์ พบว่า มีความพยายามโจมตี xmlrpc.php ของ WordPress ดังภาพ
***ขั้นตอนการตรวจสอบต่างๆ ได้แนวทางมาจาก https://sysadmin.psu.ac.th/2014/01/10/web-hacking-and-security-workshop
แก้ไขโดยทำการปิดกั้นสิทธิโดยไม่อนุญาตให้ทำงาน โดยขั้นตอนดังนี้
สร้างไฟล์ xmlrpc ใน Directory /etc/apache2/conf.d/xmlrpc
และเพิ่มลงในไฟล์
จากนั้นบันทึกและทำการรีสตาร์ท apache ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
ต่อมาทำการค้นหา permission ของ directory ที่มี permission เป็น 777 ทั้งหมดซ้ำอีกครั้งด้วยคำสั่ง
find /var/www -perm 0777 | xargs ls -l
ในระหว่างนี้ให้รอเครื่องเซอร์เวอร์ทำงานสักครู่… จากนั้นทำการเปลี่ยน permission เป็น 755 ทั้งหมดด้วยคำสั่ง
find /var/www -perm 0777 -type d -exec chmod 755 “{}” \;
ต่อมาทำการค้นหา group ที่อนุญาตให้ www-data สามารถเขียนได้ ด้วยคำสั่ง
find /var/www -group www-data -perm -g+w -type f -exec ls -l {} \;
และทำการปิดด้วยคำสั่ง
find /var/www -group www-data -perm -g+w -type f -exec chmod g-w “{}” \;
ในระหว่างนี้ให้รอเครื่องเซิร์ฟเวอร์ทำงานสักครู่… เป็นอันเสร็จเรียบร้อย รอตรวจสอบความเรียบร้อยทั้งหมดและอนุญาตให้เข้าถึงจากภายนอกได้อีกครั้ง
ในระหว่างรอตรวจสอบ พบว่ามีกาารส่งจดหมายขยะออกเป็นจำนวนมากจากอีเมล์ห้องสมุด
ตรวจสอบแล้วพบว่าจดหมายถูกส่งออกโดยโมดูล contact จากเว็บห้องสมุด และแจ้งผู้ดูแลเว็บไซต์เพื่อเพิ่ม captcha เพื่อแก้ไขปัญหาดังกล่าว การแก้ไขปัญหาในครั้งนี้รับความช่วยเหลือ และร่วมกันแก้ไขปัญหากับคุณคณกรณ์ ตั้งแต่ขั้นตอนการแก้ไขปัญหา รวมถึงแนะนำวิธีการป้องกันปัญหาดังกล่าวจากคุณคณกรณ์ จนกระทั่งสำเร็จเรียบร้อยทุกขั้นตอน ณ ตอนนี้เครื่องได้เปิดอนุญาตให้เข้าถึงจากภายนอกอีกครั้ง
ขั้นตอนในการตรวจสอบและแก้ไขปัญหาต่างๆ ทั้งหมดเหล่านี้ ได้แนวทางมาจากบทความที่คุณคณกรณ์ ได้เขียนบทความไว้ที่
https://sysadmin.psu.ac.th/2014/01/10/web-hacking-and-security-workshop
ขอบคุณครับ
Chayatorn Wattanachalee
ชยธร วัฒนชาลี Mr. Chayatorn Wattanachalee Learning Centre Information Technology Section, Prince of Songkla University, Phuket Campus. E-mail: chayatorn.w@phuket.psu.ac.th Tel: 0-7627-6514
More Posts - Website
Chayatorn Wattanachalee
ชยธร วัฒนชาลี Mr. Chayatorn Wattanachalee Learning Centre Information Technology Section, Prince of Songkla University, Phuket Campus. E-mail: chayatorn.w@phuket.psu.ac.th Tel: 0-7627-6514