May 21, 2012

วิธีการทดสอบเจาะระบบเว็บไซด์ที่ใช้ CMS ชื่อดัง

ดูตัวเต็มได้จาก link download ข้างล่างครับ


วิธีการทดสอบเจาะระบบเว็บไซด์ที่ใช้ CMS ชื่อดัง
โดยสุเมธ จิตภักดีบดินทร์
          ในปัจจุบัน, เว็บไซด์เกิดใหม่ทุกๆ นาที เพราะเหตุผลที่ว่าไม่ว่าใครก็สามารถที่จะเป็นเจ้าของเว็บไซด์ได้อย่างง่ายดาย แต่สิ่งที่เราจะเห็นๆกันอยู่ก็คือ website ส่วนใหญ่มักจะหน้าตาหรือโครงสร้างของเว็บคล้ายๆกัน ต่างกันแค่สีสันหรือโลโก้ของเว็บเท่านั้น เหตุผลที่เว็บไซด์เหล่านั้นคล้ายๆกันเป็นเพราะเว็บไซด์แต่ละเว็บไซด์นั้นถูกสร้างจาก CMS อันเดียวกัน ซึ่ง CMS (Content Management System) เป็นระบบเว็บแอพพลิเคชั่นที่มีเครื่องมือคอยช่วยผู้ใช้งานในด้านต่างๆมากมายเช่น การเขียนข้อมูลหรือข่าวลงบนเว็บ, ปรับแต่งรูปแบบและสีสันของเว็บ, การจัดการดูแลผู้ใช้งานภายในเว็บและอื่นๆอีกมากมาย อีกทั้งเรายังสามารถเพิ่มความสามารถต่างๆให้กับเว็บไซด์ได้ผ่านการติดตั้ง add-on ของ CMS นั้นๆเพิ่มเติมได้อีกด้วย โดย Web Master ไม่จำเป็นต้องมีความรู้เรื่อง programming แต่อย่างใดเพราะหน้าต่างในการจัดการ CMS นั้นจะทำผ่าน web interface ทำให้ web master เพียงแค่ click, click และ click ก็สามารถทำเว็บไซด์ให้สวยหรือดูดีได้ แต่การที่ CMS นั้นเป็นที่นิยมใช้มาก ก็มีผลเสียเช่นกันคือ หากมีใครก็ตามที่พบช่องโหว่ในส่วนหลักของ CMS หรือ add-on ที่เป็นที่นิยม ก็อาจจะทำให้ผู้ค้นพบช่องโหว่ดังกล่าวสามารถเจาะเข้าเว็บไซด์ได้เป็น 10000-100000 เลยทีเดียว ซึ่งในบทความนี้จะเน้นไปที่ CMS ที่เป็นนิยมอย่าง Joomla, Drupal และ Wordpress ครับ
*** หมายเหตุการทดสอบทั้งหมดทำโดยการใช้ Backtrack 5 R2
การตรวจสอบเว็บไซด์
            อย่างแรกที่เราต้องรู้เกี่ยวกับการทดสอบเจาะระบบเข้าไปในเว็บไซด์ที่เป็น CMS ต่างๆ เราจำเป็นต้องรู้ก่อนว่า CMS นั้นคือ CMS อะไร เพราะในแต่ละ CMS ก็มีโครงสร้างไฟล์หรือ URL ที่แตกต่างกันออกไป วิธีการที่เราจะสามารถตรวจสอบ CMS สามารถทำได้โดย
1.     By Manual
โดยปกติแล้ว เมื่อผู้ใช้งานทำการติดตั้ง CMS สำเร็จ ส่วนใหญ่มักจะลืมที่จะลบไฟล์ที่ไม่จำเป็นต่อระบบออกไป ซึ่งไฟล์เหล่านั้นเป็นการบ่งบอกถึงลักษณะของ CMS ต่างๆหรือใช้ configuration ที่เป็น default ทำให้เราสามารถรู้ได้ว่า CMS นั้นๆคืออะไรได้เช่นกัน ซึ่งสามารถยกตัวอย่างได้ตาม CMS ดังนี้
Joomla
-          ไฟล์ที่มักพบหลังจากการติดตั้งเช่น ‘joomla.xml’, ‘README.txt’, ‘htaccess.txt’ เป็นต้น
-          Configuration file’s path: <web-app-path>/configuration.php
-          Administrator login path: <web-app-path>/administrator
-          Plugin path: <web-app-path>/index.php?option=<plugin-name>
Wordpress
-          ไฟล์ที่มักพบหลังจากการติดตั้งเช่น ‘readme.html’, ‘license.txt’ เป็นต้น
-          Configuration file’s path: <web-app-path>/wp-config.php
-          Administrator login path: <web-app-path>/wp-login.php
-          Plugin path: <web-app-path>/wp-content/plugins
Drupal
-           ไฟล์ที่มักพบหลังจากการติดตั้งเช่น‘CHANGELOG.txt’, ‘UPGRADE.txt’,‘README.txt’ เป็นต้น
-          Configuration file’s path: <web-app-path>/sites/default/settings.php
-          Plugin path: <web-app-path>/?q=<plugins-name>
จากที่กล่าวมาจะเห็นว่าใน CMS แต่ละตัวมีความแตกต่างทางด้านโครงสร้างอย่างชัดเจน เราจึงสามารถแยก CMS ต่างๆได้อย่างง่ายดายเช่นกัน
2.     By Tools
หากต้องการประหยัดเวลาในการตรวจสอบ CMS เราสามารถใช้ tool ที่จะช่วยในการตรวจสอบได้คือ CMS Explorer และ Wappalyzer
2.1  CMS Explorer
CMS Explorer เป็น tool สำหรับใช้ในการตรวจสอบและค้นหา Plugin, Modules, component และ theme ที่ถูกนำมาใช้งานบนเว็บไซด์นั้นๆโดยเฉพาะ ซึ่งมี options หลายอย่าง แต่ในที่นี้เราต้องการเพื่อประเภทของตรวจสอบ CMS โดยเฉพาะ ซึ่งจะใช้คำสั่งเป็น
$ ./cms-explorer.pl –url <target-website> -type <cms-type>
            เช่น
            หากต้องการใช้เพื่อตรวจสอบ Joomla ให้ใช้คำสั่งเป็น
                        $ ./cms-explorer.pl –url <target-website> -type joomla
*** เว็บไซด์อย่างเป็นทางการของ cms-explorer: http://code.google.com/p/cms-explorer/
2.2  Wappalyzer
Wappalyzer เป็น add-on ตัวหนึ่งของ Firefox และ Chrome ซึ่งใช้สำหรับในการแสดงรูปแบบ technology ที่ถูกใช้บนเว็บไซด์ มันสามารถตรวจจับได้ทั้ง CMS, JavaScript frameworks, web servers และอื่นๆอีกมากมาย
            ซึ่งเราสามารถติดตั้งโดยเข้าไปดาวโหลด wappalyzer ได้ที่ http://wappalyzer.com/download
            เมื่อติดตั้งเรียบร้อยแล้วให้ทำการ restart web browser หลังจากนั้นเมื่อคุณเข้าเว็บไซด์ใดๆก็แล้วแต่ Wappalyzer ก็จะบอกที่ด้านขวาของ address bar ว่าเว็บไซด์นั้นใช้เทคโนโลยีอะไรบ้าง

Pentest the CMS
            วิธีที่ง่ายในการทดสอบเจาะระบบ CMS นั้นเราสามารถใช้เครื่องมือในการทดสอบเจาะระบบตามประเภทของ CMS นั้นๆได้ดังต่อไปนี้
1.     Joomscan
Joomscan (OWASP Joomla Security Scanner) เป็นหนึ่งในเครื่องมือของ OWASP ซึ่งสิ่งที่ Joomscan ทำนั้นจะเริ่มตั้งแต่การตรวจสอบ web server, ตรวจสอบ version ของเว็บไซด์ที่เป็น Joomla ไปจนถึงการค้นหา module ต่างๆที่ถูกใช้งานในเว็บไซด์ดังกล่าว เมื่อได้ list ของ module มาก็เริ่มทำการทดสอบการโจมตีในรูปแบบต่างๆเช่น SQL Injection, File Inclusion, Command Execution เป็นต้น เว็บไซด์หลักของ Joomscan อยู่ที่ http://sourceforge.net/projects/joomscan/
ตัวอย่างการใช้งาน Joomscan
Update Joomscan
$ ./joomscan.pl update
ใช้ Joomscan scan www.example.com
$ ./joomscan.pl -u www.example.com
ใช้ Joomscan scan www.example.com ผ่าน proxyIP: 117.121.222.222:3128
$ ./joomscan.pl -u www.example.com -x 117.121.222.222:3128
ใช้ joomscan เว็บไซด์ www.example.com โดยใช้ user agent เป็น “Mozilla/5.0 (Windows NT 6.1; rv:6.0.1) Gecko/20110101 Firefox/11.0.1”
$ ./joomscan.pl -u www.example.com -g “Mozilla/5.0 (Windows NT 6.1; rv:6.0.1) Gecko/20110101 Firefox/11.0.1”

2.     WPscan
WPScan (Wordpress Security Scanner) เป็นเครื่องมือสำหรับการตรวจสอบและทดสอบเจาะระบบเว็บไซด์ที่เป็น Wordpress ซึ่ง WPscan สามารถทำได้หลายอย่างมากมายเช่น ค้นหา user จากเว็บไซด์, Brute Force หน้า administrator, ตรวจสอบ version ของเว็บไซด์ เป็นต้น เว็บไซด์หลักของ wpscan อยู่ที่ http://code.google.com/p/wpscan/
ตัวอย่างการใช้งาน WPScan
Update WPScan
$ ./wpscan.rb --update
ใช้ WPScan scan www.example.com
$ ./wpscan.rb --url www.example.com
ใช้ WPScan scan www.example.com ผ่าน proxyIP: 117.121.222.222:3128
$ ./wpscan.rb --url www.example.com --proxy 117.121.222.222:3128
ใช้ wpscan ค้นหา list user และเวอร์ชั่นของ Wordpress ภายในเว็บไซด์ www.example.com
$ ./wpscan.rb --enumerate uv --url “www.example.com”

3.     Dpscan
DPScan(Drupal Security Scan) เป็นเครื่องมือสำหรับในการค้นหา module ต่างๆที่ถูกใช้ในเว็บไซด์ที่เป็น Drupal เท่านั้น เมื่อได้ข้อมูล module ต่างๆแล้ว Pentester ต้องมาศึกษารายละเอียดในแต่ละ module เองนั้นอีกทีหนึ่ง จะไม่สะดวกสบายเหมือนกับ wpscan และ joomscan เว็บไซด์หลักของ DPScan อยู่ที่ https://github.com/Rorchackh/Blue-Sky-Information-Security/blob/master/DPScan.py
ตัวอย่างการใช้งาน DPscan
ใช้ DPScan ไปยังเว็บไซด์ www.example.com
$ ./DPScan.py www.example.com

Summary
            จากที่กล่าวมาทั้งหมด จะเห็นว่าการทดสอบเจาะระบบ CMS ต่างๆไม่ได้ยากอย่างที่คิด ซึ่งในบางครั้ง module ต่างๆที่เว็บไซด์เป้าหมายใช้อาจจะยังไม่มี public vulnerability ออกมา แต่ก็ไม่ได้หมายความ module เหล่านั้นจะไม่มีช่องโหว่ เมื่อได้ list module ดังกล่าวมาแล้ว เราควรสร้างสภาพแวดล้อมให้เหมือนกับเครื่องเป้าหมายขึ้นมา จากนั้นนำ module ต่างๆมาติดตั้งกับเว็บไซด์ที่สร้างขึ้น แล้ววิเคราะห์การทำงานรวมถึงช่องโหว่ของระบบ เพื่อให้การทดสอบเจาะระบบนั้นมีประสิทธิภาพสูงสุดครับ





If you like my b log, Please Donate Me

No comments:

 

Sponsors

lusovps.com

Blogroll

About

 Please subscribe my blog.

 Old Subscribe

Share |