How to fingerprint the web server

บทนำ (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”

  1. การใช้โปรแกรม “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
    
  2. จากข้างต้นจะเห็นได้ว่าระบบได้ใช้
    Server: Apache/2
  3. แต่อย่างไรก็ตามวิธียังมีข้อจำกัดอยู่เพราะผู้ดูแลระบบสามารถที่จะเปลี่ยน หรือปลอมชื่อ (obfuscation) ได้
    403 HTTP/1.1 Forbidden
    Date: Fri, 11 Sep 2015 03:30:24 GMT
    Server: Unknown-Webserver/1.0
    Connection: close
    
  4. จาก “Response” ข้างต้นพบว่าไม่สามารถระบุ “Server” ได้
    Server: Unknown-Webserver/1.0
    

 ตรวจสอบ “Server” โดยใช้ “Wappalyzer”

  1. เป็น “Plug-in” สำหรับ “Fire-Fox” และ “Opera” สามารถดาวน์โหลดและติดตั้งได้ที่  (https://wappalyzer.com/download) Wappalyzer1
  2. จากนั้นลองคลิกที่ icon จะแสดงรายละเอียดเพิ่มเติม Wappalyzer2

ตรวจสอบ “Server” โดยใช้ “httpprint”

  1. ดาวน์โหลดโปรแกรมได้ที่ (http://net-square.com/httprint.html)
  2. โปรแกรมไม่จำเป็นต้อง Install แต่ส่วนสำคัญคือ Signature สามารถดาวน์ได้จากหน้าเดียวกัน
  3. เมื่อแตก “Zip” แล้วให้เลือก “httprint_gui.exe” จะมีหน้า “Graphic User Interface” ใช้งานง่าย httprint1
  4. ให้กรอก “URL” และ “Port” ที่ต้องการทดสอบ จากนั้นกดปุ่ม “Play”httprint2
  5. โดยผลการทดสอบสามารถเลือกได้ 3 แบบ คือ “HTML” “XML” และ “CVS” อ่านแบบ “HTML” น่าจะอ่านง่ายสุดและไฟล์จะถูกสร้างอยู่ในโฟลเดอร์เดียวกับ “Application” จากภาพในข้อ 3 ชื่อว่า “httprintoutput.html”
  6. จากข้อ 4 เราจะพบว่าไม่สามารถมีผลตอบกลับ อาจเป็นไปได้ว่าระบบไม่ตอบกลับการ “Ping” หรือการใช้ “ICMP Protocol” โปรแกรมจึงไม่ทำงานต่อดังนั้นเราสามารถปิดการทำงาน “ICMP” ได้โดยไปที่ “Options” httprint3
  7. จากนั้นลองกดปุ่ม “Play” อีกครั้ง และลองตรวจสอบรายงาน httprint4

ใส่ความเห็น