วิธี Backup PSU Email ด้วย Thunderbird

เนื่องจาก PSU Email ให้พื้นที่ปัจจุบัน 1GB ซึ่ง อาจจะไม่เพียงพอต่อความต้องการของผู้ใช้บางท่าน หรือ บางท่านต้องการสำรองข้อมูล Email เก็บไว้ในเครื่องคอมพิวเตอร์  ซึ่งสามารถทำได้ โดยใช้งานผ่านโปรแกรม Mozilla Thunderbird เชื่อมต่อกับ PSU Email ด้วย IMAP อีกทั้ง สามารถส่ง Email ออกได้จากทั่วโลกผ่าน smtp2.psu.ac.th และ ตัวอย่างต่อไปนี้ จะสร้างพื้นที่จัดเก็บบนเครื่องคอมพิวเตอร์ ไว้ใน D:\MyBackup (รายละเอียดของ PSU Email สามารถอ่านได้ที่ http://www.cc.psu.ac.th/staffemail) มีวิธีการดังนี้ 1. Download Mozilla Thunderbird (รุ่นล่าสุด 24.3.0) จาก http://www.mozilla.org/en-US/thunderbird/   คลิกที่ Thunderbird Free Download แล้ว Save File ลงเครื่อง 2. Double Click ไฟล์ ที่ Download มา (Thunderbird Setup 24.3.0.exe) 3. จากนั้น ใช้ Next Technology คือ Yes, Next, Next, Install และ Finish 4. จากหน้านี้ คลิก Set as Default  5. คลิก Skip this and use my existing email 6. กรอกข้อมูล ให้ครบ แล้ว คลิก Continue แล้ว คลิก Manual Config 7. กรอกข้อมูลตามนี้ แล้ว คลิก ปุ่ม Advanced Config 8. คลิกที่ Local Folder, คลิก Browse แล้ว เลือก D:\MyBackup (แล้วแต่จะสร้าง Folder) 9. หน้าต่างนี้ คลิก Restart 10. ด้านขวามือ คลิกขวา ที่ Local Folders แล้ว คลิก New Folder ….   11. ตั้งชื่อ PSUEmail แล้วคลิก Create Folder  12. เมื่อต้องการ เก็บสำเนา (Copy) หรือ ย้าย (Move) จดหมายจาก INBOX ของ PSU Email มาเก็บไว้ใน Local Folders บนเครื่องคอมพิวเตอร์ของเท่าน ก็ให้ทำการเลือกจดหมายที่ต้องการ แล้ว คลิกขวา (Right Click) แล้ว เลือก Copy To หรือ Move To ไปยัง Local Folder > PSUEmail เท่านี้ ก็ สามารถ เก็บจดหมายที่ต้องการไว้ในเครื่องได้แล้ว และสามารถทำการ สำรอง D:\MyBackup เอาไว้ใน Handy Drive, DVD หรือ External Hard disk ได้ 13. เมื่อต้องการนำมาใช้งาน ก็เพียงแค่ Copy ลงไปในเครื่อง แล้ว ทำตามขั้นตอน ข้อ 8 และ 9

Read More »

เทคนิคการเขียน Shell Script #1

เมื่อต้องการเขียน Shell Script เพื่อรับ Argument และ Option เช่น เขียน myscript.sh ซึ่งแบ่งเป็น 3 แบบ 1) $ sh myscript1.sh myfirstname mylastname 16 2) $ sh myscript2.sh -f myfirstname -l mylastname -a 16 3) $ sh myscript3.sh –firstname myfirstname –lastname mylastname –age 16 [บทความนี้ ใช้งานบน Ubuntu 12.04 Server และ ใช้ Bash Shell] 1) วิธีแรก คือ การรับตัว Argument เรียงตามลำดับ โดยใช้ เครื่องหมาย $ ตามด้วยลำดับของตัวแปร เช่น $1, $2, $3 ดัง Script myscript1.sh มีรายละเอียด ต่อไปนี้ firstname=$1 lastname=$2 age=$3 echo “Firstname=$firstname” echo “lastname=$lastname” echo “age=$age” วิธีนี้ ข้อดีคือ สร้างง่าย แต่ ข้อเสียคือ ต้องใส่ Argument ตามลำดับเท่านั้น 2) วิธีที่สอง คือ มีการใช้ Option แบบชื่อสั้น เช่น -f, -l ,-a โดยต้องใช้คำสั่ง getopts ดังตัวอย่าง Script myscript2.sh getopts “f:l:a:” opt while [ “$opt” != “?” ] do case $opt in f) echo “Firstname: $OPTARG” ;; l) echo “Lastname: $OPTARG” ;; a) echo “Age: $OPTARG” ;; esac getopts “f:l:a:” opt done อธิบายเพิ่มเติม getopts “f:l:a:” opt คำสั่งนี้ บอกว่า getopts จะรับ Option คือ f, l และ a และ เมื่อรับมาแล้ว จะใส่ในตัวแปร opt ส่วนใน “f:l:a:” นั้น เป็นการกำหนด Short Option Name โดยที่ เป็นอักษรตัวเดียว และ ค่า Option ใด ไม่มี เครื่องหมาย “:” แสดงว่า ไม่ต้องการใส่ค่า Option ใด มี     เครื่องหมาย “:” แสดงว่า ต้องการมีการใส่ค่า Option ใด ไม่มี เครื่องหมาย “::” แสดงว่า จะใส่ค่า หรือไม่ใส่ค่า ก็ได้ while [ “$opt” != “?” ] … done วนลูป ทุก Options จนเจอค่า “?”

Read More »

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

บทความนี้ แสดงให้เห็นการโจมตีช่องโหว่ของ PHP แบบ CGI  ทำให้สามารถ แทรกคำสั่งต่างๆไปยังเครื่องเป้าหมายได้ ดังที่ปรากฏใน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #6 โดย PHP Version ที่ต่ำกว่า 5.3.12 และใช้แบบ php5-cgi จะมีช่องโหว่นี้ ก่อนอื่น ขออธิบายคร่าวๆ ว่า การใช้งาน PHP นั้น มีวิธีที่นิยมใช้กัน 3 วิธี [1] ได้แก่ 1. Apache Module 2. CGI 3. FastCGI 1. Apache Module (mod_apache) เป็นวิธีการที่ใช้งานอยู่กันโดยทั่วไป ได้รับความนิยม เพราะติดตั้งง่าย ข้อดี: – PHP ทำงานร่วมกับ Apache – เหมาะกับงานที่ใช้ PHP เยอะๆ ข้อเสีย: – ทุก Apache Process จะมีการโหลด PHP เข้าไปด้วย แสดงว่า จะใช้ Memory มากขึ้น ยิ่งมีการโหลด Module เพิ่ม ก็ยิ่งใช้ Memory เพิ่มอีก ทั้งนี้ ไม่ว่าจะเป็นการเรียก ภาพ หรืออะไรที่ไม่ใช้ PHP ก็ตาม – สิทธิ์ในการสร้าง/แก้ไขไฟล์ จะเป็นของ Web User เช่น Apache/httpd เป็นต้น ทำให้ มีปัญหาด้านความปลอดภัย ในกรณีใช้พื้นที่ร่วมกัน 2. CGI เป็นวิธีการใช้ PHP Interpreter เฉพาะที่จำเป็น ข้อดี – แก้ไขปัญหาด้านความปลอดภัย ในการใช้พื้นที่ร่วมกัน เพราะสิทธิ์ในการสร้าง/แก้ไขไฟล์ จะแยกเป็นของผู้ใช้แต่ละคน ดังนั้น เมื่อเกิดการเจาะช่องโหว่ ก็จะไม่กระทบกับผู้อื่น – Apache Process จะทำหน้าที่เฉพาะให้บริการ HTTP แต่เมื่อต้องการใช้ PHP จึงจะไปเรียกใช้ ข้อเสีย – เป็นวิธีดั้งเดิม ไม่มีประสิทธิภาพนัก, การตอบสนองช้า 3. FastCGI เป็นการแยก Web Server กับ PHP ออกจากกัน ทำให้ การใช้งาน HTTP ที่มีต้องใช้ PHP ก็จะใช้งาน Memory น้อย แต่เมื่อต้องการใช้ PHP ก็จะส่งไปทาง Socket ทำให้สามารถกระจาย Load ไปยังเครื่องต่างๆได้ ข้อดี – ให้ความปลอดภัยในการใช้พื้นี่ร่วมกัน แบบ CGI แต่ทำงานเร็วขึ้น – สามารถ Scalability ได้ดี – Apache Process ที่ไม่ใช้ PHP ก็จะใช้ Memory น้อย ข้อเสีย – การตั้งค่าค่อนข้างยุ่งยาก จะใช้ .htaccess แบบเดิมไม่ได้ แต่ต้องใช้ php.ini แยกแต่ละผู้ใช้ ทำให้ดูแลยากขึ้น ปัญหาอยู่ที่ว่า บาง Web Server ที่ใช้งานกันอยู่ ใช้งาน PHP แบบ Apache Module อย่างเดียว แต่ ไปติดตั้ง PHP แบบ CGI ด้วย (php5-cgi package) แล้ว อาจจะไม่ได้ตรวจสอบให้ดี จึงทำให้มีช่องโหว่ได้ ตัวอย่างนี้ เป็น Web Server ที่ทำงานบน Ubuntu 10.04 Server + Apache 2.2.4

Read More »

Web Hacking and Security Workshop

บทความชุด “วิธีตรวจสอบเว็บไซต์ที่โดน Hack” วิธีตรวจสอบเว็บไซต์ที่โดน Hack #1 : เริ่มต้นตรวจพบความผิดปรกติที่ทำให้ Web Server ล่มเป็นระยะๆ และวิธีการตรวจสอบจนพบ Backdoor วิธีตรวจสอบเว็บไซต์ที่โดน Hack #2 : ลักษณะของ Backdoor และวิธีตรวจสอบ Backdoor วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3 : ช่องโหว่ JCE Exploit และวิธีค้นหา Backdoor อื่นๆ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #4 : สรุป ขั้นตอนปฏิบัติ เมื่อตรวจสอบพบว่า Website ถูก Hack วิธีตรวจสอบเว็บไซต์ที่โดน Hack #5 : แนวทางการตรวจสอบช่องโหว่ของ Website ตนเองก่อนถูก Hack, รู้จักกับ CVE, CVSS และ Website cvedetails.com วิธีตรวจสอบเว็บไซต์ที่โดน Hack #6 : รูปแบบการสร้าง Cron เพื่อให้ Hacker สามารถกลับเข้ามาได้ แม้ผู้ดูแลระบบจะลบ Backdoor ออกไปจนหมดแล้ว ! วิธีตรวจสอบเว็บไซต์ที่โดน Hack #7 : การตรวจสอบ Windows Server ที่ถูก Hack ด้วย PowerShell วิธีตรวจสอบเว็บไซต์ที่โดน Hack #8 : รูปแบบการสร้าง Web Server Process ปลอม และการวาง Network Scanner Tools บน Web Server ที่ถูก Hack วิธีตรวจสอบเว็บไซต์ที่โดน Hack #9 : วิธีการ Hack ด้วย SQL Injection และ Cross-Site Scripting วิธีตรวจสอบเว็บไซต์ที่โดน Hack #10 : วิธีการ Hack ด้วย Remote File Inclusion วิธีตรวจสอบเว็บไซต์ที่โดน Hack #11 : เทคนิคการใช้ Incremental Backup เพื่อการตรวจสอบหาไฟล์แปลกปลอม และการกู้ระบบกลับมา วิธีตรวจสอบเว็บไซต์ที่โดน Hack #12 : เทคนิคการตั้งค่า Apache Web Server เพื่อให้ปลอดภัยจากช่องโหว่ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #13 : วิธีการ Hack ผ่าน PHP แบบ CGI-BIN วิธีตรวจสอบเว็บไซต์ที่โดน Hack #14: Heartbleed Bug วิธีตรวจสอบเว็บไซต์ที่โดน Hack #15 : วิธีการปิดไม่ให้ PHP ทำงานในโฟลเดอร์ที่เปิดให้เขียนได้ บน Windows Server ที่ IIS Web Server วิธีตรวจสอบเว็บไซต์ที่โดน Hack #16: ShellShock วิธีตรวจสอบเว็บไซต์ที่โดน Hack #17: Backdoor ในรูปแบบ Obfuscate วิธีตรวจสอบเว็บไซต์ที่โดน Hack #18: Wordpress XMLRPC Vulnerable  

Read More »

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

บทความนี้ จะกล่าวถึง วิธีการปิดช่องโหว่ของ Apache ที่ให้บริการ Web Hosting เลย เผื่อมีผู้ใช้ ติดตั้ง Joomla และมี JCE รุ่นที่มีช่องโหว่ จะได้ไม่สร้างปัญหา และ แนะนำวิธีสำหรับผู้พัฒนาเวปไซต์เองด้วย ที่เปิดให้มีการ Upload ไฟล์โดยผู้ใช้ผ่านทาง Web ด้วย … เพราะหน้าที่นี้ ควรเป็นของ Web Server Administrator ไม่ใช่ของ Web Master หรือ Web Author ครับ จากปัญหาช่องโหว่ของ JCE Exploited ของ Joomla ที่อธิบายไว้ใน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3 ที่อธิบายขั้นตอนการเจาะช่องโหว่, วิธีตรวจสอบเว็บไซต์ที่โดน Hack #4 ซึ่งเป็นวิธีการตรวจสอบค้นหา และทำลาย Backdoor และ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #11  วิธีการ Incremental Backup ซึ่งสามารถช่วยกู้ไฟล์ได้และรู้ว่า มีไฟล์แปลกปลอมอะไรเกิดบ้าง ซึ่งเป็นการแก้ปัญหาปลายเหตุทั้งสิ้น ส่วน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #5 กล่าวถึงการตรวจสอบว่า Software ที่ใช้งานอยู่มีช่องโหว่อะไรบ้าง ด้วยการตรวจสอบ CVE เป็นต้น สำหรับ JCE Exploited จะพบว่า การวางไฟล์ Backdoor จะเริ่มวางไว้ที่ไดเรคทอรี่ images/stories ที่ แกล้งเป็นไฟล์ .gif แล้วเอาโค๊ด PHP เข้ามาใส่ แล้วเปลี่ยนนามสกุลเป็น .php ภายหลัง ดังนั้น หาก Apache Web Server สามารถ ปิดกั้นตั้งแต่จุดนี้ได้ กล่าวคือ ต่อให้เอาไฟล์มาวางได้ แต่สั่งให้ทำงานไม่ได้ ก็น่าจะปลอดภัย และ หากพัฒนาเวปไซต์เอง หรือ ผู้ใช้ของระบบต้องการให้ Upload ไฟล์ไว้ในไดเรคทอรี่ใดได้ ก็ต้องแจ้งให้ Web Server Administrator รับทราบ และเพิ่มเติมให้ น่าจะทำให้ปลอดภัยมากขึ้นได้ สมมุติฐานคือ ติดตั้ง OS และ Apache Web Server ใหม่ ติดตั้ง Joomla ใหม่ หรือ เอา Web Application ที่ปลอดช่องโหว่อื่นๆ/Backdoor มาลง โดย Joomla ที่มีที่วางไฟล์ภาพไว้ที่ images/stories ส่วน Web Application อื่นๆ ขอสมมุติว่าตั้งชื่อไดเรคทอรี่ว่า uploads สำหรับ Apache2 บน Ubuntu Apache 2.2 นั้น มีโครงสร้างไดเรคทอรี่ดังนี้ /etc/apache2/ |– apache2.conf |       `–  ports.conf |– mods-enabled |       |– *.load |       `– *.conf |– conf.d |       `– * |– sites-enabled         `– * เมื่อ Apache เริ่ม (Start) ก็จะไปอ่าน /etc/apache2/apache2.conf ในนั้น จะกำหนดภาพรวมของระบบ ได้แก่ ใครเป็นคน Start (APACHE_RUN_USER/APACHE_RUN_GROUP), การกำหนดชื่อไฟล์ .htaccess ที่เปิดให้ผู้ใช้ปรับแต่ง Apache ที่แต่ละไดเรคทอรี่ของตนได้, กำหนดว่า จะเรียกใช้ Module อะไรบ้าง โดยการ Include *.load, *.conf

Read More »