บทนำ (Overview)
การรู้ว่า “Server” ยี่ห้ออะไร เวอร์ชั่นอะไร ส่งผลให้ทราบถึงช่องโหว่ที่อาจจะเกิดขึ้นได้ หรือภาษาที่ถูกใช้ในการเขียนเว็บอาจถูกคาดเดาได้ง่ายขึ้น เพื่อนำไปสู่การโจมตีที่เหมาะสม (Exploit) หลายท่านบอกว่าไม่เห็นจำเป็นต้องรู้ “version” เลยเราก็เอา “Tool” มา “Scan” เลยเดี๋ยวก็รู้ช่องโหว่ บางครั้งในการทดสอบแบบ “Black-Box” เจ้าของระบบไม่อนุญาตให้ใช้ “Tool” ใด ๆ ในการ “Scan” หรือต้องทำให้เงียบที่สุดเพื่อใม่ให้หน่วยงานตรวจจับได้ หรือบางครั้งอาจไม่แน่ใจว่า “Tool” ดังกล่าวอาจส่งผลกระทบของระบบแม้ว่าจะปิดการทำงานพวก “Denial Of Service” แล้ว
ข้อมูลของ “Web Server” สามารถถูกส่งมาจาก “Server” ได้โดยใช้คำสั่งบางอย่างและเราจะมาวิเคราะห์ผลตอบกลับเหล่านั้น ซึ่งถ้ามี Version ที่แตกต่างกันจะมีผลตอบกลับที่แตกต่างกันเช่นกัน ซึ่งเราจะเอามาเปรียบเทียบกับ “Web serve fingerprint database”
ขั้นตอน (Steps)
ตรวจสอบ “Response” โดยใช้ “Burp” หรือ “NC”
- การใช้โปรแกรม “NC” กับคำสั่ง “HEAD” เพื่อวิเคราะห์ “Web Server”
root@kali:~# nc xxxtest.co.th 80 HEAD / HTTP1.1 HTTP/1.1 200 OK Date: Fri, 11 Sep 2015 03:30:24 GMT Server: Apache/2 Last-Modified: Sun, 18 Mar 2012 09:16:06 GMT ETag: "4120003-2c-4bb80e4392180" Accept-Ranges: bytes Content-Length: 44 Vary: Accept-Encoding,User-Agent Connection: close
- จากข้างต้นจะเห็นได้ว่าระบบได้ใช้
Server: Apache/2
- แต่อย่างไรก็ตามวิธียังมีข้อจำกัดอยู่เพราะผู้ดูแลระบบสามารถที่จะเปลี่ยน หรือปลอมชื่อ (obfuscation) ได้
403 HTTP/1.1 Forbidden Date: Fri, 11 Sep 2015 03:30:24 GMT Server: Unknown-Webserver/1.0 Connection: close
- จาก “Response” ข้างต้นพบว่าไม่สามารถระบุ “Server” ได้
Server: Unknown-Webserver/1.0
ตรวจสอบ “Server” โดยใช้ “Wappalyzer”
- เป็น “Plug-in” สำหรับ “Fire-Fox” และ “Opera” สามารถดาวน์โหลดและติดตั้งได้ที่ (https://wappalyzer.com/download)
- จากนั้นลองคลิกที่ icon จะแสดงรายละเอียดเพิ่มเติม
ตรวจสอบ “Server” โดยใช้ “httpprint”
- ดาวน์โหลดโปรแกรมได้ที่ (http://net-square.com/httprint.html)
- โปรแกรมไม่จำเป็นต้อง Install แต่ส่วนสำคัญคือ Signature สามารถดาวน์ได้จากหน้าเดียวกัน
- เมื่อแตก “Zip” แล้วให้เลือก “httprint_gui.exe” จะมีหน้า “Graphic User Interface” ใช้งานง่าย
- ให้กรอก “URL” และ “Port” ที่ต้องการทดสอบ จากนั้นกดปุ่ม “Play”
- โดยผลการทดสอบสามารถเลือกได้ 3 แบบ คือ “HTML” “XML” และ “CVS” อ่านแบบ “HTML” น่าจะอ่านง่ายสุดและไฟล์จะถูกสร้างอยู่ในโฟลเดอร์เดียวกับ “Application” จากภาพในข้อ 3 ชื่อว่า “httprintoutput.html”
- จากข้อ 4 เราจะพบว่าไม่สามารถมีผลตอบกลับ อาจเป็นไปได้ว่าระบบไม่ตอบกลับการ “Ping” หรือการใช้ “ICMP Protocol” โปรแกรมจึงไม่ทำงานต่อดังนั้นเราสามารถปิดการทำงาน “ICMP” ได้โดยไปที่ “Options”
- จากนั้นลองกดปุ่ม “Play” อีกครั้ง และลองตรวจสอบรายงาน