จากการที่ VPS ของเจียถูก hack เมื่อวันก่อน ซึ่งใช้เวลาหลายวันเหมือนกัน กว่าจะแก้ไขได้ วันนี้ไปอ่านเจอวิธีการแก้ไข-ค้นหา cgi ทำงาน จาก THT ขอบันทึกไว้ก่อน
หา cgi ทำงานหรือfind /home/*/domains/*/public_html/cgi-bin/ -iname \*.cgi -ls find /home/*/domains/*/public_html/cgi-bin/ -iname \*.pl -ls find /home/*/domains/*/private_html/cgi-bin/ -iname \*.cgi -ls find /home/*/domains/*/public_html/cgi-bin/ -iname \*.pl -lsเสร็จแล้วps aux|grep cgiโดยใช้ process ID ที่เราได้มาจากคำสั่ง ps aux ครับ เราจะได้รู้ว่า script ที่ถูกฝังนั้น มาจาก virtual host ไหน จากนั้นก็เข้าไปทำการปิด cgi ซะlsof -p process_id
VPS ที่เจียเช่าจากคุณเสกถูก hack เมื่อเดือนที่แล้ว (มิ.ย.) ซึ่งคาดว่าจะถูกขโมยรหัสผ่านของ ftp แล้วมีการแก้ไขไฟล์ index.html , index.php ซึ่งจากการตามหารายละเอียด ขั้นตอนน่าจะเป็น
มีโทรจันมาฝังอยู่ในเครื่องที่ใช้สำหรับ upload file ด้วย ftp
โทรจันส่งรหัสผ่านของ ftp ไปให้คนเขียน
เมื่อได้รหัสผ่านของ ftp ไป ก็จะใช้ script ในการเข้าไปค้นหาไฟล์ที่ชื่อขึ้นต้นด้วย index.* จากทุก ๆ folder ใน server
ทำการ download ไฟล์ index.* มาแล้วทำการแก้ไขโดยแทรกคำสั่ง tag iframe ไว้หลัง tag body ให้ไปดึง script มาจาก server ของตนเองให้มา run ในเครืองที่เปิดเข้าไปดูเว็บนั้น โดยกำหนด style ให้ visibility:hidden ซึ่งจะทำให้มองไม่เห็นใน browser
ทำการ upload ไฟล์ที่ได้แก้ไขกลับขึ้นไปที่ server เหมือนเดิม
วิธีสังเกตุว่าเว็บเราติดเข้าไปแล้ว
ตอนเปิดเว็บสังเกตุที่ status bar จะมีการ request ไปยังเว็บไซท์อื่นที่เราไม่เคยใส่ code ไว้
ลอง view source ดู จะเจอคำสั่ง iframe ที่ src เป็นเว็บที่ต้องสงสัย ซึ่งที่เจอจะระบุหมายเลข port เป็น 8080
หาก ssh เข้าไปที่ server แล้วสั่ง
find /home/*/domains/*/public_html/ -maxdepth 100 -name *index* -exec grep -H "iframe" {} ";" > iframe.txt
ลองดูผลลัพท์ในไฟล์ iframe.txt
ถ้าจะให้ดีก็ตั้งคำสั่งนี้ให้เป็น cron job ให้ค้นหาทุกวัน หากต้องการค้นหาเฉพาะไฟล์ที่มีการเปลี่ยนแปลงภายใน 24 ช.ม. ให้เพิ่ม option -mtime -1 ไปด้วย
ผลกระทบอีกอย่างที่ผมก็คาดว่ามันน่าจะเกิดขึ้น คือถ้ามีการ hack เข้ามา server ได้ ก็น่าจะมีการส่งโปรแกรมอะไรมาไว้ที่ server ด้วย เพื่อวัตถุประสงค์อื่น ๆ ที่อาจจะเป็นไปได้ เช่นการส่ง spam mail , การขโมยรหัสหรือข้อมูลอื่น ๆ ซึ่งช่วงก่อนผมหาไม่เจอ
3-4 วันที่ผ่านมา ก็สังเกตุเป็นว่ามี process ของ apache run perl และใช้ cpu เยอะมาก ลอง kill precess แล้ว ไม่นานก็มี process กลับมาใหม่
วันนี้ลองค้นหาดูใน cgi-bin ปรากฎว่ามี perl script อยู่จริง ๆ ด้วย อยู่ใน /home/ * /domains/ * /public_html/cgi-bin/ จึงลบมันทิ้งไป และ stop service apache กับ proftpd ไว้ก่อน
วิธี kill perl ทุก process ใช้คำสั่ง
for pl in `ps -A | grep perl | cut -c 1-6`; do kill -9 $pl;done
หลังจาก kill httpd ทั้งหมดแล้ว สักพัก process httpd ก็มาอีก คาดว่าน่าจะมาจาก crontab เลยลองเช็ค crontab ของทุก user ดูด้วยคำสั่ง
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done
ก็ไม่เจออะไรผิดปกติ คงมีตัวไหนสักตัวที่สั่ง run httpd ขึ้นมา แต่ยังหาไม่เจอ
ตอนนี้ก็หลายนาทีแล้ว เจ้า perl script ยังไม่มา ไม่รู้ว่าจะหายไปตลอดกาลหรือเปล่า พรุ่งนี้เข้าค่อยมาดูอีกที
บาย... ไปนอนก่อนครับ.
Update 2009-07-18 08.28 PM process ของ perl มาอีกแล้ว มาเพียบด้วย สรุปว่ายังแก้ไม่ผ่าน
Update 2009-07-19 10.20 PM วันก่อนลืมเปลี่ยนรหัสผ่าน เข้ามาดูอีกทีปรากฎว่ามีการส่งไฟล์ .pl เข้ามาอีก แถม run script สัก 400 process ได้ กว่าจะ ssh เข้าไปได้ นานมาก ๆ เลยเปลี่ยนรหัสผ่านของทุก user (เท่าที่หาเจอ) เสียเลย
Update 2009-07-20 06.43 PM เข้าไปค้นหาใน log ยังคงมีการ upload ไฟล์เข้ามาในชื่อ sator4u (ไม่แน่ใจว่าได้เปลี่ยนรหัสผ่านหรือยัง) จึงเปลี่ยนรหัสผ่านใหม่ ดูเหมือนกับว่าจะมีไฟล์ .pl อยู่ในโฟลเตอร์ของ sator4u ด้วย จึงทำการเปลี่ยนชื่อ home folder เป็นชื่ออื่น ไปก่อน ป้องกันไม่ให้เรียก script มาทำงาน (ยังไม่ได้ลบทิ้ง)
Update 2009-07-21 06.36 AM หลังจากตามดูอยู่ 2 วัน ตอนนี้เหตุการณ์ทุกอย่างเป็นปกติแล้ว
ฐานข้อมูลของ wintesla2003 บางตารางหายไปเฉย ๆ ไม่มีข้อมูลเหลืออยู่เลย เป็นฐานข้อมูลของหัวข้อพร้อมรายละเอียด
ความเสียหาย :
- หัวข้อทุกหัวข้อสูญหาย
- รายชื่อไฟล์อัพโหลดสูญหาย แต่ไฟล์ที่อัพโหลดไว้ยังคงอยู่
ปรับปรุง
- กำลังทำการสำรองข้อมูลมาเก็บไว้ก่อน
- ฐานข้อมูลดาวน์โหลดมาได้ไม่หมด
Update 2009-07-16
ได้ลองค้นหาบันทึกจาก log file พบว่าน่าจะพอนำข้อมูลมาจับคู่กันได้พอสมควร สิ่งที่ขาดหายไปคือการเชื่อมโยงระหว่าง fkey กับชื่อไฟล์ ได้ลองเขียนโปรแกรมเพื่อเชื่องโยงกัน ปรากฎว่าได้กลับมาประมาณ 230 records จากทั้งหมดประมาณ 600 กว่ารายการ และไม่แน่ใจด้วยว่าจะถูกต้องหรือเปล่า
คิดว่าอาจจะต้องใช้วิธีจับคู่ด้วยมือ โดยดูจากรายชื่อไฟล์+วันที่ของแต่ละ user แล้วนำไปจับคู่กับบันทึกของ logfile+watchdog ซึ่งแต่ละ user ก็มีไฟล์ไม่มากนัก น่าจะได้ผลดีกว่า
Update 2009-08-06
ใช้วิธีให้โปรแกรมช่วยจับคู่ให้ได้มา 200 กว่ารายการ ส่วนที่เหลือจับด้วยมือ จนเสร็จเรียบร้อย โดยส่วนที่จับด้วยมือจะได้ file key เป็นเลขใหม่
เหตุเริ่มเกิดมาได้สัก 2-3 วันแล้ว แรก ๆ ก็เกิดกับบางเว็บ เช่น www.psu.ac.th แล้วก็เริ่มหลายเว็บมากขึ้น จนมาวันนี้ ping ไปทุกเว็บก็เป็นเหมือนกันหมด แม้กระทั่ง google.com
อาการ : เวลา ssh ไปที่ Server@CAT-HY แล้ว ping ไปที่ google.com จะเกิด error ดังนี้
ping: unknown host google.com
ก็พยายามหาทางดู ลอง reboot server แล้วก็ไม่หาย (เสียดายอุตส่าห์เปิดมาตั้ง 30 วันแล้ว) ลอง ssh เข้าไปทุก vps แล้ว ping ดู ก็เป็นเหมือนกัน เลยคิดว่าน่าจะมีปัญหาที่ proxmox-ve เลย ssh ไปที่ proxmox-ve แล้ว ping ดู ก็มีอาการเหมือนกัน
เลยตั้งเป้าว่า น่าจะเกิดจาก DNS ของ CAT (202.129.27.134 , 202.129.27.135) มีปัญหา คิดว่าพรุ่งนี้จะโทรไปหา CAT ให้เขาเช็คดูเสียหน่อยว่ามีปัญหาอะไรบ้างไหม?
ระหว่างนั้นก็คิดว่า หากเราเปลี่ยน DNS ไปใช้ของที่อื่น จะเกิดอะไรขึ้นบ้าง ก็เลยลองเสี่ยงดู โดยเพิ่ม nameserver 208.67.222.222 ซี่งเป็นของ OpenDNS เข้าไปใน /etc/resolv.conf โดยการแก้ไขไฟล์ /etc/resolv.conf เป็น/เพิ่ม
nameserver 208.67.222.222 nameserver 208.67.220.220
It's work!!!!!!
ขอบคุณ OpenDNS แล้วพรุ่งนี้ค่อยโทรไปสอบถาม CAT-HY อีกที.
ปล. Thank for idea from configuring DNS
- Check what is the new hard disk device name with "fdisk -l", it shoul be something like /dev/sdb
- Create a partition on it, supose the disk is /dev/sdb: "echo -ne "n\np\n1\n\n\nw\n" | fdisk /dev/sdb1"
- Make a filesystem on the partition: mkfs.ext3 /dev/sdb1
- Create a directory where to mount the partition: mkdir /newdirectory
- Edit fstab an add at the end of the file:
/dev/sdb1 /newdirectory ext3 defaults 0 0
- now mount:
mount -a
ps. echo -ne part? is
- n -> new partition
- p -> primary partition
- 1 -> number of the partition
- just enter, here you should enter the first block
- just enter, here you should enter the last block
- write the partition table to the disk.

Specification
Processors Intel® Atom™ Processor A330 1.60GHz, 533MHz FSB, 1MB L2 Cache)
Operating system DOS
Memory 2GB DDR2 SDRAM
Hard disk 320GB SATA HDD
Optical device Dual Layer Multiburner Drive (DVD-RW)
Graphics ATI Mobility Radeon™ HD 4530 with 512MB
Display 20" LCD
Warranty 1-year On-site Warranty
Port 10/100 LAN , 6 USB , 1394 mini , mic , line-out
WIFI 54G
Price ฿16,900. (not inclode VAT)

เห็นข่าวว่ากำลังทำอยู่นานพอสมควรแล้ว คราวนี้ก็เป็นการประกาศว่ากำลังมีการวางจำหน่ายปลายเดือนนี้ (กค.52) ราคาไม่เกิน $300. น่าสนใจ
หากเข้าเมืองไทย ก็อยากได้สักเครื่อง เอามาใช้แทน Notebook น่าจะดีกว่าแบกเครื่อง 4 กก.มากเลย...
ที่มา blognone.com via GottaBeMobile via SlashGear
มีการรวบรวมคำสั่ง(เครื่องมือ)สำหรับผู้ดูแล server/website ควรรู้เอาไว้ พร้อมทั้งรายละเอียดและตัวอย่างการใช้งาน บางคำสั่งก็สามารถใช้งานได้เลย บางคำสั่งต้องติดตั้งเพิ่มเติม
คำสั่งทั้งหมดคือ
- top - Process Activity Command
- vmstat - System Activity, Hardware and System Information
- w - Find Out Who Is Logged on And What They Are Doing
- uptime - Tell How Long The System Has Been Running
- ps - Displays The Processes
- free - Memory Usage
- iostat - Average CPU Load, Disk Activity
- sar - Collect and Report System Activity
- mpstat - Multiprocessor Usage
- pmap - Process Memory Usage
- netstat - Network Statistics
- ss - Network Statistics
- iptraf - Real-time Network Statistics
- tcpdump - Detailed Network Traffic Analysis
- strace - System Calls
- /Proc file system - Various Kernel Statistics
- Nagios - Server And Network Monitoring
- Cacti - Web-based Monitoring Tool
- KDE System Guard - Real-time Systems Reporting and Graphing
- Gnome System Monitor - Real-time Systems Reporting and Graphing
ดูรายละเอียดการใช้ได้จากที่มานะครับ
ที่มา 20 Linux System Monitoring Tools Every SysAdmin Should Know
เพื่อป้องกันปัญหาโดน hack จากต่างประเทศ มีคำแนะนำให้ block การเข้าถึงจากต่างประเทศด้วยการ block IP จากต่างประเทศไม่ให้เข้าใช้บริการบางอย่างเช่น FTP , SSH
วิธีการดูได้จาก ThaiHostTalk นะครับ
ขออนุญาตคุณ icez และ ems นำมาเก็บไว้ก่อนนะครับ แล้วจะหาเวลามานั่งศึกษาดูอีกที
วันก่อนมี 50+ PHP optimisation tips revisited วันนี้ก็มีเทคนิคในการทำเว็บไซท์ให้เร็วขึ้นด้วยหลากหลายวิธีจาก Google เป็นการรวบรวมไอเดียดี ๆ จากนักพัฒนาถึงเทคนิควิธิการในการทำเว็บให้เร็วขึ้น
ไปดูกันได้ที่ Let's make the web faster มีทั้ง บทความ ดีๆ และ โปรแกรมให้ ดาวน์โหลด ไปลองศึกษากัน