วิธีตรวจสอบเว็บไซต์ที่โดน Hack #7

คราวนี้ เป็นการตรวจสอบ ที่เป็น Windows Server 2008 32bit ที่ใช้ IIS6 เป็น Web Server และใช้ PHP 5.2.17  เครื่องของหน่วยงานภายในมหาวิทยาลัย ซึ่ง ถูก Google Webmaster Tools ตรวจพบว่า เครื่องดังกล่าวน่าจะโดน Hack และมีการวาง Backdoor เอาไว้ เบื้องต้น พบว่า เครื่องนี้ ใช้ Joomla และรายงานของ Google ก็บอกไฟล์ปัญหา เป็น php ใน images/stories จึง เริ่มจากทำตาม วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3 แต่ ต้องเปลี่ยนไปใช้คำสั่งบน PowerShell แทนที่จะเป็น Shell Script อย่างเดิม พื้นที่ Document Root อยู่ที่ c:\inetpub\wwwroot วิธีการตรวจสอบ 1. ใช้  powershell ด้วยสิทธิ์ administrator privilege 2. ค้นหา ไฟล์ *.php ซึ่งอยู่ใน directory “stories” (ใน PowerShell ทำงานแตกต่างจาก Shell Script มากๆ จึงต้องดัดแปลงบางอย่าง) gci c:\inetpub\wwwroot -rec -include “*stories*” | where {$_.psiscontainer} | gci -Filter “*.php” โดยที่คำสั่งนี้ ใช้ชื่อย่อ และมีความหมายดังนี้ gci = Get-ChildItem : ทำงานเหมือนคำสั่ง find และใช้ option “-rec” ย่อมาจาก Recurse ซึ่งหมายถึง ค้นหาลงลึกไปใน Subdirectory ด้วย และ เอาเฉพาะใน Directory ย่อย “stories” เท่านั้น ส่วนการใช้ ไพพ์ “|” ก็ไม่เหมือนใน Shell Script ที่เป็นการส่ง String หรือข้อความตรงๆ แต่เป็นการส่งต่อ Object gci -Filter “*.php” หมายถึง เมื่อค้นหาลึกไปใน Subdirectory “stories” แล้ว ให้กรองเอาเฉพาะไฟล์ แบบ *.php ผลที่ได้คือ พบว่ามี php file จำนวนมาก ใน images/stories จริงๆ ดังภาพ 3. ตรวจสอบ Log ซึ่งอยู่ที่ c:\inetpub\logs และค้นหาไฟล์ในนั้น ดูว่า มี “BOT.*JCE” บันทึกหรือไม่ ด้วยคำสั่ง gci c:\inetpub\logs -rec  | where {$_.psiscontainer} | gci -rec -filter “*.log” | get-content | select-string -pattern “BOT.*JCE” ผลที่ได้คือ ซึ่งพบว่า มีการโจมตีมาเป็นจำนวนมาก 4. หา Backdoor อื่นๆ ที่อาจจะเกิดขึ้น หลังจาก Backdoor ใน images/stories เหล่านั้น โดยทดลองดูว่า มีไฟล์ใหม่เกิดขึ้น หลังจากแต่ละ Backdoor นั้นๆ 2 วันหรือไม่ ด้วยคำสั่ง $backdoor=gci C:\inetpub\wwwroot\sticorner\images\stories -filter “*.php” foreach ($f in

Read More »

วิธีตรวจสอบเว็บไซต์ที่โดน Hack #6

วันนี้ได้รับรายงาน ร้องเรียนจากองค์กรภายนอก ว่ามีเครื่องคอมพิวเตอร์จาก Domain ของ PSU ส่งข้อมูลจำนวนมาก ไปโจมตี ระบบเครือข่ายที่ต่างประเทศ จึงทำการสืบสวน เบื้องต้น พบว่า มาจากเครื่อง Web Server ของคณะหนึ่ง ซึ่งเพิ่งย้ายจากเครื่องเดิมซึ่งโดน Hack มาก่อน หวังขึ้นเครื่องใหม่ แล้วทุกอย่างคงจะดีขึ้น … แต่ก็ยังไม่ใช่ จึงขออนุญาต ผู้ดูแลระบบของคณะ เข้าตรวจสอบ โดยการสร้าง Account แยกต่างหาก และรายงานทุกขั้นตอนการทำงานให้ทราบ สิ่งที่พบคือ เป็น Ubuntu และใช้ Apache + PHP + MySQL มีการใช้งาน CMS เป็น WordPress เป็นส่วนใหญ่ แต่มี Joomla แค่หนึ่งเดียว นอกจากนั้น ยังพบว่ามี phpMyAdmin ด้วย เริ่มต้นจาก ตรวจสอบตามกระบวนการใน วิธีตรวจสอบเว็บไซต์ที่โตน Hack #4 ก็ไม่พบความผิดปรกติใด ผู้ดูแลระบบแจ้งว่า หลังจากทราบข่าว ก็ตรวจสอบทันที มีข้อสังเกต ว่า มี Process แปลกๆ ทำงาน ซึ่งตรวจสอบด้วยคำสั่ง ps aux ได้ผลว่ามีโปรแกรมแปลกๆ ทำงานในพื้นที่ /tmp และพยายามติดต่อไปภายนอก ดังนี้ ซึ่งทำงานด้วย User ชื่อ www-data ซึ่ง เป็น Web User ซึ่งผิดปรกติ โดยชื่อโปรแกรมที่ทำงาน ชื่อ /tmp/php /tmp/pnscan ดูจากคำสั่ง สงสัยได้ว่า จะมีการติดต่อไปยังภายนอก เพื่อทำการบางอย่าง … จึงตรวจสอบ พบว่าไฟล์ ด้วยคำสั่ง stat /tmp/php stat /tmp/pnscan  ได้ผลดังนี้ /tmp/php ไฟล์สร้างเมื่อประมาณ         2013-12-13 20:22:51 /tmp/pnscan ไฟล์สร้างเมื่อประมาณ     2013-12-13 20:22:35  จึงตรวจสอบต่อ ด้วยคำสั่ง top แล้วเลือกดู เฉพาะ Process ที่ทำงานด้วย www-data โดยกดปุ่ม u แล้ว พิมพ์ www-data ได้ผลดังนี้  จึงเห็น Process แปลกๆ คือ .xx มีเลข PID คือ 24813  จึงไปดูรายละเอียดว่าไฟล์ดังกล่าว อยู่ที่ใด ด้วยคำสั่ง ls -l /proc/24813 ได้ผลดังนี้  จึงทราบว่า Process ดังกล่าว ไปเรียกไฟล์จาก /dev/shm/.xx ซึ่งเป็นส่วนพื้นที่ของ Share Memory จึงลองใช้คำสั่ง ls -la /dev/shm/  ได้ผลดังนี้  พบว่า ไฟล์ดังกล่าว สร้างเมื่อเวลาประมาณ 2013-12-13 22:45 และ มีความพยายามจะสร้างอีกไฟล์ ชื่อ .x เมื่อเวลาประมาณ 2013-12-14 11:47  เพื่อให้เห็นการทำงาน ของ Process ID 24813 ให้ละเอียดยิ่งขึ้น จึงปรับคำสั่ง จาก ps aux เป็น (เพิ่ม we เข้าไป) ps auxwe | grep 24813 เพื่อให้แสดงผล แบบ Wide Output (w) และ แสดง Environment Variable (e) ที่เกี่ยวข้องด้วย ได้ผลดังนี้  จากคำสั่งนี้ ทำให้ทราบว่า Hacker เรียกมาจาก  REMOTE_ADDR=193.51.237.2

Read More »

วิธีตรวจสอบเว็บไซต์ที่โดน Hack #4

(ตอนนี้ จะเน้นการตรวจสอบ Joomla เป็นหลักครับ) จาก “วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3” ซึ่ง เป็นการตรวจสอบเบื้องต้นว่า มีการบุกรุกผ่านช่องโหว่ต่างๆของ Web Server เข้ามาวาง Backdoor หรือไม่ ซึ่ง ตั้งสมมุติฐานว่า Hacker จะเอาไฟล์ .php มาวางไว้ในไดเรคทอรี่ images/stories เท่านั้น แต่ความจริงแล้ว … ไม่ใช่เช่นนั้น เพราะ Hacker ต้องคิดต่อไปอีกขั้นหนึ่ง คือ ต้องวางไฟล์ Backdoor ไว้ในที่อื่นๆด้วย รวมถึง พยายามแก้ไขไฟล์ .php ของ Joomla เพื่อไม่ให้ผิดสังเกต และเป็นช่องในการกลับเข้ามาในภายหลัง ในบทความนี้ เป็นแนวทางปฏิบัติที่พึงดำเนินการ เพื่อการสืบสวน ค้นหา และทำลาย Backdoor ที่อื่นๆ รวมถึง เสนอแนวทางปฏิบัติ เพื่อผู้ดูแลระบบจะได้ทราบว่า มีไฟล์ใดบ้างที่เปลี่ยนแปลง ในอนาคต ภาพรวมขั้นตอนการปฏิบัติ 1. ทำการตรวจสอบไฟล์ .php ใน images/stories แล้วเก็บเป็น List เอาไว้ 2. ดึงไฟล์ Backdoor ที่พบ มาเก็บไว้ก่อน ด้วยคำสั่ง tar 3. ค้นหาไฟล์ ที่เกิดขึ้นหรือถูกแก้ไข ในเวลาใกล้เคียงกันกับ Backdoor นั้นๆ แล้วเก็บเป็น List เอาไว้ 4. ดึงไฟล์ ต้องสงสัย มาเก็บไว้ก่อน แล้ว ตรวจสอบ เป็นรายไฟล์ 5. ลบไฟล์ Backdoor จาก List ในข้อ 1. 6. ลบไฟล์ ต้องสงสัย หลังจากการตรวจสอบในข้อ 4. 7. ตรวจสอบ Web User คือใคร 8. ค้นหา Directory ที่ Web User จากข้อ 7. ที่สามารถเขียนได้ 9. ค้นหา Backdoor พื้นฐานเพิ่มเติม รายละเอียดการปฏิบัติ คำสั่งต่อไปนี้ อยู่บนพื้นฐานที่ว่า Document Root ของ Web Server อยู่ใน /var/www/ ของแต่ละผู้ใช้ ดังนั้น ขอให้ปรับเปลี่ยนตามระบบของท่าน 1. ทำการตรวจสอบไฟล์ .php ใน images/stories แล้วเก็บเป็น List เอาไว้ ใช้คำสั่งต่อไปนี้ find /var/www/ -name “*.php” -type f | grep ‘images/stories’ > /tmp/backdoor.txt 2. ดึงไฟล์ Backdoor ที่พบ มาเก็บไว้ก่อน ด้วยคำสั่ง tar เพื่อให้ในการตรวจสอบ และภายหลัง cat /tmp/backdoor.txt | xargs tar -cvf /tmp/backdoor.tar ลองตรวจสอบว่า คำสั่งดังกล่าว เก็บไฟล์ได้จริงหรือไม่ ด้วยคำสั่งต่อไปนี้ tar -tvf /tmp/backdoor.tar 3. ค้นหาไฟล์ ที่เกิดขึ้นหรือถูกแก้ไข ในเวลาใกล้เคียงกันกับ Backdoor นั้นๆ แล้วเก็บเป็น List เอาไว้ ให้สร้างไฟล์ ชื่อ findbackdoor.sh แล้วใส่เนื้อหาตามนี้ #!/bin/sh BD=”/tmp/backdoor.txt” TMP01=”/tmp/otherbackdoor.txt” DMROOT=”/var/www/” for f in $(cat $BD) ; do     echo “:: $f ::”

Read More »

How to: install Owncloud (Easy method)

สำหรับ Ubuntu 12.04 เท่านั้น เปิด terminal พิมพ์คำสั่ง (ไม่ต้องพิมพ์ $) $wget -q -O – http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key|sudo apt-key add – wget -nv https://download.owncloud.org/download/repositories/stable/xUbuntu_12.04/Release.key -O Release.key apt-key add – < Release.key ต่อด้วย $sudo sh -c “echo ‘deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /’ >> /etc/apt/sources.list.d/owncloud.list” sh -c “echo ‘deb http://download.owncloud.org/download/repositories/stable/xUbuntu_12.04/ /’ >> /etc/apt/sources.list.d/owncloud.list” apt-get update apt-get install owncloud ปิดท้าย $sudo apt-get update $sudo apt-get install -y owncloud ต่อด้วยคำสั่ง $sudo /etc/init.d/apache2 restart เปิดเว็บ http://localhost/owncloud เพื่อสร้าง user ที่เป็น admin ชื่ออะไรก็ได้ตามสะดวก และตั้งรหัสผ่านให้เรียบร้อย คลิก Advanced เพื่อดูค่าอื่นๆ เช่น โฟลเดอร์ที่ใช้เก็บข้อมูล การตั้งค่าฐานข้อมูลว่าจะใช้อะไร แบบง่ายนี้ขอใช้ sqlite ไปก่อนเพื่อความรวดเร็ว คลิก Finish Setup ระบบจะล็อคอินเป็น user ที่สร้างให้คนแรกโดยอัตโนมัติ ที่เหลือ … ขอให้สนุกครับ ที่มา http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud https://download.owncloud.org/download/repositories/stable/owncloud/

Read More »

ทำไม PSU Webmail ส่ง email ที่มีไฟล์แนบเป็น Microsoft Word ง่ายๆ ไปให้คนอื่น แล้วเขาไม่ได้รับ

วันนี้ มีผู้ใช้โทรศัพท์มาสอบถามปัญหา : ทำไมส่ง email ที่มีไฟล์แนบเป็น Microsoft Word ง่ายๆ ไปให้คนอื่น แล้วเขาไม่ได้รับ ตรวจสอบเบื้องต้น พบว่าส่งไม่ได้จริงๆ จึง เดินไปดูหน้างาน (คณะทันตะ) พบว่า ผู้ใช้ใช้ Firefox ในการใช้งาน PSU Webmail, เมื่อผู้ใช้ Compose จดหมายใหม่ แล้วเลือก Browse เพื่อเลือกไฟล์ นามสกุล .doc แล้วกดปุ่ม Add เพื่อแนบไฟล์ ก็จะได้ผลว่า ระบบมองเป็น text/xml ดังภาพ เป็นผลให้ ระบบกรอง email ทำงานผิดพลาด และไม่ยอมให้ส่ง ทดลองเปลี่ยนไฟล์ สร้างไฟล์ใหม่ ปิด Antivirus แล้ว ก็ยังเป็นเหมือนเดิม, เปลี่ยนไป Login ด้วย Account อื่นแล้ว ก็ยังเป็นเหมือนเดิม จึงทดลองส่ง email แบบไม่แนบไฟล์ ก็พบว่า ส่งได้ จากนั้น จึงเอาไฟล์เดียวกัน แต่ใช้งานผ่าน PSU Webmail ด้วย IE แล้วทำการแนบไฟล์แบบเดิม พบว่า ระบบมองเป็น application/msword ถูกต้อง ดังภาพ ลองทดสอบกับ Chrome แล้ว ก็ได้ผลถูกต้องเช่นกัน จึงน่าจะเป็นปัญหาอะไรสักอย่างของ Firefox จึงลองดูการตั้งค่าต่างๆ พบว่า ใน Firefox ที่เมนู Tools > Options > Application มีการตั้งค่า “เอกสาร Microsoft Word 97-2003” มีอยู่ 3 บรรทัด และบรรทัดสุดท้าย บอกว่า text/xml เปิดด้วย Use XML Editor อยู่ ซึ่งต่างกับการตั้งค่าใน IE ที่ใช้ Word อยู่ ดังภาพ วิธีการแก้ไข: จึงตั้งค่าดังกล่าวเป็น “Use Microsoft Word” เช่นกัน แล้วทดสอบใหม่ ปรากฏว่า ส่งได้ถูกต้อง แก้ปัญหาได้

Read More »