Information Gathering คืออะไร

สวัสดีครับวันนี้ผมจะมาพูดถึงเรื่อง Information gathering for website และ tool ที่ใช้ในการทำ Information gathering for website ก่อนอื่นผมต้องขออธิบายก่อนว่า Information gathering นั้นหมายความว่าอะไร

Information gathering หมายถึง การเก็บรวบรวมข้อมูลต่างๆของเว็บไซต์เป้าหมายที่เราต้องการจะทดสอบ เช่น domain ของเว็บไซต์นี้จดที่ไหน อยู่ประเทศอะไร ใครเป็นคนจด domain และเว็บไซต์นี้มี sub domain หรือ path อะไรบ้าง

โดย information gathering ได้มีการแบ่งเป็น 2 ประเภทหลักๆคือ

  1. Passive information gathering คือ การค้นหาข้อมูลเเบบทางอ้อมโดยผ่านตัวกลางต่างๆ เช่น การใช้ Search engine ในการหาข้อมูลของเว็บไซต์ที่ต้องการทดสอบ
  2. Active information gathering คือ การค้นหาข้อมูลผ่านเว็บไซต์ที่ต้องการทดสอบโดยตรง เช่น การทำ Directory scanning บนเว็บไซต์นั้นๆ

หลังจากที่เรารู้ความหมายกันคร่าวๆแล้ว ผมจะขอแนะนำ tool ที่เราจะได้ใช้กันบ่อยๆในขั้นตอนการทำ information gathering for website

Whois

whois คือ tool ที่ใช้ในการค้นหาข้อมูลต่างๆของเว็บไซต์ โดยจะมีการใช้งานง่ายๆแค่เพียงใช้ command “whois <domain name>” หรือจะใช้ผ่านเว็บไซต์ https://whois.domaintools.com/ ก็ได้ ข้อมูลที่เราจะได้มาก็จะมีดังนี้


  • Domain: ชื่อ domain name ที่เราค้นหา
  • Registrar: ข้อมูลของผู้ให้บริการจดทะเบียน domain
  • Registration Date: วันแรกที่จดทะเบียน domain
  • Expiration Date: วันที่ domain จะหมดอายุ
  • Updated Date: วันล่าสุดที่ข้อมูลได้รับการอัปเดตจาก WHOIS
  • Status: แสดงสถานะของ domain
  • Name Servers: ข้อมูลของ nameservers ที่ถูกใช้โดย domain
  • Registrant Contact: ข้อมูลของต่างๆของผู้ลงทะเบียน domain

จากข้อมูลที่เราได้มาเราจะได้เห็นข้อมูลต่างๆของ domain นั้น โดยข้อมูลในส่วนของ Registrant Contact นั้นเป็นข้อมูลส่วนตัว ซึ่งหากผู้ไม่หวังดีได้ไปก็อาจจะนำไปใช่ในการทำ phishing ได้ ดังนั้นหากเราเป็นเจ้าของ domain ก็ควรจะปิดไม่ให้แสดงข้อมูลในส่วนนี้

Google hacking

Google ที่เราใช้กันเป็นประจำนั้นก็สามารถเอามาใช้หาข้อมูลของเว็บไซต์ที่เราต้องการทดสอบได้ โดย google นั้นจะมีคำสั่งในการ query ให้เราสามารถใช้ได้ด้วยและที่จะได้ใช้กันบ่อยๆก็จะมีดังนี้


  • site:<domain name> คือ การแสดง list ของ domain และ subdomain ที่เราระบุ เช่น site:microsoft.com
  • allintext:<word> คือ การค้นหาคำทั้งหมดที่เราใส่ไปบนหน้าเว็บไซต์ เช่น allintext:admin
  • allinurl:<word> คือ การค้นหาคำทั้งหมดที่เราใส่ไปบน url เช่น allinurl:clientarea
  • allintitle:<word> คือ การค้นหาคำทั้งหมดที่เราใส่ไปบน title เช่น allintitle:”Security Companies”
  • filetype:<word> คือ การค้นหาไฟล์ที่มีนานสกุลที่เรากำหนด เช่น filetype:pdf
  • “<word>” คือ การค้นหาคำที่เราใส่ไป เช่น “Malware Hunting”
  • “<word>*<word>” คือ การค้นหาอะไรก็ได้ระหว่างสองคำนี้ แต่รวมทั้งสองคำไว้ด้วย เช่น “Next * Firewalls”
  • +<word> คือ การเชื่อมคำ เช่น Malware +Hunter
  • -<word/query> คือ การไม่เอาคำหรือ query นี้มาแสดง เช่น Advanced Malware -Huntin -beginner -­introduction ­-site:microsoft.com

จากทีได้เห็นว่า google นั้นมี query ให้เราใช้มากมาย เราก็สามารถใช้ query เหล่านั้นในการค้นหาข้อมูลต่างๆของเว็บไซต์ที่เราจะทำการทดสอบได้อย่างละเอียดมากขึ้น

Sublister

Sublister เป็น tool ที่จะช่วยเราในการค้าหา subdomain ของเว็บไซต์ที่เราต้องการจะทดสอบ โดยมี option ที่น่าสนใจดังนี้


-h, — help คือ การแสดงว่ามี option อะไรให้ใช้บ้างพร้อมทั้ง

แสดงคำอธิาย

-d <example.com> คือ การใส่ domain ที่เราต้องการจะค้นหา subdomain

-b คือ การเปิด bruteforce module

-p <number> คือ การสแกนเฉพาะ port ที่กำหนด เช่น -p 80,443

-v คือ การเปิดโหมดการแสดงผลแบบละเอียดและแสดงผลแบบ realtime ให้เราเห็น

-t <number> คือ การกำหนดจำนวน thread ที่ต้องการใช้

-e คือ การเลือก search engine ที่ต้องการใช้ เช่น -e bing,google,yahoo

-o <example.txt> คือ การบันทึกข้อมูลที่ได้ไว้ในไฟล์ที่กำหนด

-n, — no-color คือ การแสดงผลแบบไม่มีสี

ตัวอย่างคำสั่งก็จะประมาณนี้ครับ “sublist3r -v -d example.com -t 5 -e bing,google -o subresult.txt” เพียงเท่านี้เราก็จะได้ list ของ subdomain ของ domain ที่เราสนใจมาอย่างง่ายดาย

FFUF

FFUF เป็น tool ที่ใช้ในการทำ fuzzing ซึ่งสามารถใช้ในการทำสิ่งต่างๆได้มากมาย เช่น การทำ directory discovery, Virtual host discovery, GET parameter fuzzing, POST Data Fuzzing เป็นต้น แต่ในวันนี้ผมจะขออธิบายในส่วนของการใช้ทำ directory discovery นะครับ โดยจะมี option ที่น่าสนใจในการใช้ทำ directory discovery ดังนี้ครับ


-w <wordlists> คือ การใส่ wordlist ที่เราจะใช้ในการหา directory

-u <https://example.com/FUZZ> คือ การใส่เว็บไซต์ที่เราต้องการจะหา directory และ FUZZ จะเป็นตำแหน่งที่เราจะทำการ fuzzing

-recursion คือ การที่เมื่อทำการ fuzzing ไปจนเจอ path แล้วเราทำการ fuzzing ต่อไป เช่น เมื่อเราทำการ fuzzing ที่ www.example.com/FUZZ แล้วเจอ www.example.com/admin หากเราใส่ -recursion FFUF ก็จะทำการ fuzzing ต่อที่ www.example.com/admin/FUZZ

-recursion-depth คือ การบอกตัว FFUF ว่าเราจะทำการ recusion กี่ครั้ง

-e คือ การเพิ่มการหาพวก file extensions เข้าไปด้วย

-rate คือ การกำหนดว่าส่ง requests ไปกี่ครั้งต่อวินาที

-fc คือ การ filter HTTP status ออก เช่น -fc 401,403,404

-fs คือ การ filter HTTP response size ออก

-mc คือ การเลือก HTTP status ที่ต้องการเท่านั้น เช่น -mc 200

ตัวอย่างคำสั่งก็จะประมาณนี้ครับ “ffuf -w <wordlist> -u <https://example.com/FUZZ>” ส่วน wordlist ที่เป็นที่นิยมก็จะมี seclists, payloadallthing และ wfuzz หลังจากที่เรารันคำสั่งไปเราจะสามารถสังเกตุในส่วนของ HTTP status ได้ว่ามี path ไหนบ้างที่น่าสนใจ เช่น เราอาจจะเจอ path /admin, /robots.txt หรือจะเป็น path ที่แสดง index of / ซึ่งก็จะให้เราได้ข้อมูลเกี่ยวกับ path ของเว็บไซต์ที่เราต้องการทดสอบได้

สรุป

ก่อนจบวันนี้ผมก็ข้อสรุปกันสั้นๆนะครับ ในวันนี้เราก็ได้รู้ว่า Information gathering for website ก็คือการหาข้อมูลต่างๆของเว็บไซต์ ไม่ว่าจะเป็นข้อมูลที่เกี่ยวกับ domain หรือการหา subdomain และ path ต่างๆ โดยผมได้มีการแนะนำ tool ที่ใช้ในการทำ Information gathering for website ก็คือ whois ที่ใช้ในการหาข้อมูลต่างๆของ domain, Google hacking ที่ใช้การค้นหาคำหรือข้อมูลต่างๆที่เกี่ยวข้องกับเว็บไซต์ที่เราสนใจ, Sublister ที่ใช้ในการค้นหา subdomain และ FFUF ที่สามารถใช้ในการค้นหา path ต่างๆของเว็บไซต์ที่เราสนใจ สุดท้ายก็หวังว่าบทความนี้จะมีประโยชน์กับเพื่อนๆไม่มากก็น้อยนะครับผม

0
798