วิธีตรวจสอบเว็บไซต์ที่โดน 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 mathtex.cgi ubuntu 12.04

ติดตั้ง texlive-full , dvipng,  imagemagick $sudo apt-get install -y texlive-full dvipng imagemagick ดาวน์โหลด mathtex.zip $wget http://www.forkosh.com/mathtex.zip สร้างไดเร็คทอรี่ mathtex $mkdir mathtex cd mathtex unzip ../mathtex.zip compile mathtex.c ด้วยคำสั่ง $cc mathtex.c -DLATEX=\”$(which latex)\” -DDVIPNG=\”$(which dvipng)\”  -o mathtex.cgi sudo mv mathtex.cgi /usr/lib/cgi-bin sudo chown :www-data /usr/lib/cgi-bin sudo chmod g+w /usr/lib/cgi-bin เพิ่มข้อความต่อไปนี้ในแฟ้ม /etc/apache2/sites-enabled/000-default ภายใน Directive VirtualHost ถ้าใส่ตามนี้คืออนุญาติเครือข่ายภายในมหาวิทยาลัยเท่านั้นเข้าถึงได้ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory /usr/lib/cgi-bin>     Options +ExecCGI     Order deny,allow     Deny from all     Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 </Directory> restart apache $sudo service apache2 restart ทดสอบเรียกใช้งานได้ที่ http://yourhostname/cgi-bin/mathtext.cgi?x texlive เป็นโปรแกรมที่ทดแทน latex ใช้สร้างสมาการทางคณิตศาสตร์ ใน WordPress มีปลั๊กอินชื่อ Youngwhan’s Simple Latex สามารถเรียกใช้ mathtex นี้ได้ทันที โดยปกติจะเซ็ตไว้ให้ใช้ shared host ภายนอกมหาวิทยาลัย ทดสอบเรียกใช้งาน E=mc^2 ได้ผลเป็น ตัวอย่างอื่นๆ สำหรับสมการแปลกๆ Example จบ…. ขอให้สนุกครับ ที่มา https://help.ubuntu.com/community/LaTeX http://www.forkosh.com/cgi-bin/weblist.cgi?-t=weblist&-o=php&-f=sources/mimetexquickstartweb.php

Read More »

vvisit_counterDShelpe rDSvvisit_counter.php: failed to open stream: No such file or directory in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18

Joomla 3.1.5 เมื่อวันนี้ตอนเช้าทดลองเปิดหน้าเว็บหน่วยงานภายในคณะดูปรากฏว่าเว็บไม่ปรากฏอะไรเลย  ได้หน้าขาวโล่งๆ ซึ่งผมก็ตกใจครับนึกว่าอะไรจะพังอีก เลยโทรไปสอบถามอาการของผู้ดูแลเว็บ บอกว่าเปิดไม่ได้ตั้งแต่เมื่อวาน  จึง ssh เข้าไปตรวจสอบ /var/www/student-affairs  ตามปกติ permission file ก็เรียบร้อยดีไม่มีไรหาย จากนั้นจึงไปเปิด log ของ apache2 ดู /var/log/apache2/error.log แล้วลอง  tail error.log | grep student-affairs ดูปรากฏว่า เจอ error ดังนี้ root@Internal-Webhost:/var/log/apache2# tail error.log | grep student-affairs [Fri Nov 01 10:00:19 2013] [error] [client 192.168.74.90] PHP Notice:  Use of undefined constant DS – assumed ‘DS’ in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18 [Fri Nov 01 10:00:19 2013] [error] [client 192.168.74.90] PHP Notice:  Use of undefined constant DS – assumed ‘DS’ in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18 [Fri Nov 01 10:00:19 2013] [error] [client 192.168.74.90] PHP Warning:  require_once(/var/www/student-affairs/plugins/system/vvisit_counterDShelperDSvvisit_counter.php): failed to open stream: No such file or directory in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18 [Fri Nov 01 10:00:19 2013] [error] [client 192.168.74.90] PHP Fatal error:  require_once(): Failed opening required ‘/var/www/student-affairs/plugins/system/vvisit_counterDShel perDSvvisit_counter.php’ (include_path=’.:/usr/share/php:/usr/share/pear’) in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18 [Fri Nov 01 10:00:21 2013] [error] [client 192.168.74.90] PHP Notice:  Undefined index: th-TH in /var/www/student-affairs/plugins/system/languagefilter/languagefilter.php on line 61 [Fri Nov 01 10:00:21 2013] [error] [client 192.168.74.90] PHP Notice:  Trying to get property of non-object in /var/www/student-affairs/plugins/system/languagefilter/languagefilter.php on line 61 [Fri Nov 01 10:00:21 2013] [error] [client 192.168.74.90] PHP Notice:  Use of undefined constant DS – assumed ‘DS’ in /var/www/student-affairs/plugins/system/vvisit_counter/vvisit_counter.php on line 18 [Fri Nov 01 10:00:21 2013] [error] [client

Read More »

WordPress theme – responsive web design

WordPress theme มีหลากหลายให้เลือก สำหรับเว็บ sysadmin.psu.ac.th ที่ผ่านมาใช้ Default theme และถัดมาก็เปลี่ยนมาใช้ WordPress theme ชื่อ toothpaste ของ SiteOrigin ซึ่งก็สวยแบบเรียบๆ แต่เมื่อลองเปิดด้วย smart phone พบว่าส่วนเมนูตอนบนจะแสดงผลไม่ดีนัก จึงได้ความช่วยเหลือจากเพื่อนร่วมงาน แนะนำ WordPress Theme: Catch Evolution Theme นี้ เมื่อเปิดดูหน้าเว็บบน notebook จะแสดงผลแบบนี้ Theme นี้ เมื่อเปิดดูหน้าเว็บบน smart phone ของผม ซึ่งเป็น android 2.3.6 จะแสดงเป็นปุ่มให้เลือกเมนู แบบนี้ เมื่อจิ้มไปที่คำว่า Menu มันจะแสดงเป็นรายการให้เลือก แบบนี้ ผมว่ามันดีกว่า theme เดิม จึงได้เปลี่ยน และเพื่อนๆลองเปิดดูด้วย smart phone ดูนะครับ

Read More »

How to install phpmyadmin and joomla 3.1.5 on ubuntu server 12.04.3 lts

สวัสดีครับ ช่วงนี้ผมได้ลองติดตั้งอะไรหลายๆอย่าง ซึ่งได้ทำเป็นไฟล์ pdf แล้วด้วยบางส่วน แต่ยังไม่เรียบร้อย ซึ่งวันนี้ห่างหายไปนานกับการเขียนบล็อกเนื่องจากไม่ว่างแล้วก็งานยุ่งมาก แต่ก็มีความคิดอยากจะเขียนบทความอยู่นะ พอดีขณะนี้ได้โอกาศเลยขอมาจัดซักหน่อยหนึ่งบทความ โดยในบทความนี้ผมก็เขียนขึ้นมาเพื่อตอบโจทย์กับการทำงานในคณะเหมือนเดิม คือ เครื่องเซิร์ฟเวอร์เครื่องเก่าเป็น windows 2003 ซึ่งอายุก็มากกว่า 7 ปีแล้ว สภาพเครื่อง cpu ram part มันหมดอายุการผลิตไม่สามารถซื้อมาอัพเกรดเพิ่มได้ จึงต้องเปลี่ยนที่อยู่ให้เว็บไซต์ภายในเครื่องใหม่ คือ ย้ายโฮสต์นั่นแหละครับ คราวนี้เปลี่ยนมาติดตั้ง virtual แทน โดย OS: Ubuntu Server 12.04.3 LTS i386  ตอนแรกว่าจะโหลดแบบ 64 bit มาใช้งานแต่กลัวมันไม่เข้ากับ software ที่จะติดตั้งตัวอื่นๆเลยใช้แบบนี้ไปก่อน  โดยอันดับแรกผมก็ติดตตั้ง ubuntu 12.04.3 LST นะ โดยไม่ได้ใช้แบบสำเร็จรูป โดยตอนเลือกติดตั้ง ผมเลือก  Package  Openssh-server และ  LAMP เพื่อนำมาทำเป็นเว็บเซิร์ฟเวอร์ โดยเมื่อติดตั้งเสร็จแล้ว ลองทดสอบเรียกหน้า localhost หรือเรียกไปที่ ip เครื่องก็จะแสดงสถานะการทำงานว่า It’s Work   apache2 ทำงานได้ ส่วน service ของ mysql ก็ทำงานได้ตามปกติแต่เวลาจะเข้าไปจัดการมันนี่สิ ถ้าไม่มี tool ก็ลำบากหน่อย จึงได้ไปโหลด script authentication ของ อาจารย์ฉัตรชัย จาก share มาใช้งาน   http://share.psu.ac.th/blog/etc/19218  ซึ่งเขียนตั้งแต่ปี 54 ปัจจุบัน 56 แล้วก็ยังใช้งานได้อยู่นะ (ของแกดีจริง ๕๕๕) จากนั้นมาอัพเกรด ubuntu ของเราก่อนโดย 1.  sudo apt-get update 2. จากนั้น ใช้คำสั่งติดตั้ง  phpmyadmin โดย      sudo apt-get install phpmyadmin  ระบบก็จะให้เราเลือกว่าเราจะใช้ host ตัวใหน ระหว่าง apache2 หรือ lighthttp  ถ้าติดตั้ง LAMP ก็เลือก apache2 นะ จากนั้นระบบจะให้เรากรอกรหัสผ่านของ mysql จากนั้นระบบก็จะให้เราตั้งรหัสผ่านสำหรับ root ของ phpmyadmin  และก็ให้เรายืนยันรหัสอีกครั้ง

Read More »