DNSEnum VS DNSMap ต่างกันอย่างไร

          วันนี้ได้มีโอกาสมาเขียนบทความแชร์กันในเรื่องของ Tool ที่ใช้สำหรับทำ Information Gathering ประเด็นเกิดจากอาจารย์ให้ไปศึกษาบทความเกี่ยวกับเครื่องมือที่ใช้ในการโจมตีระบบเครือข่ายตามหลัก Penetration Testing Method ผมก็คิดอยู่ว่าจะทำไรดี มันมีหลายอย่างมาก ๆ เพื่อนก็เลือกของดี ๆ ไปหมดแล้ว ตอนแรกว่าจะทำ SQLMap แต่ก็มีเพื่อนเลือกแล้ว จะไปทำ Metasploit ก็เนื้อหาเยอะไปไม่รู้จะทำบทความไหนดี บวกกับตอนนั้นต้องทำเรื่อง DNS เลยคิดว่าเอา DNS นี่แหละมาทำ แต่จะใช้เครื่องมืออะไรดีดูแล้วมีหลายตัวเลือก ตอนแรกก็จะทำแค่ DNSEnum แต่ว่ามันก็จะดูน้อยเกินไป เลยคิดว่าไม่เอาละ ไปทำ DNSMap ดีกว่า แต่ก็นะ น้อยไม่แพ้กัน ความช้าเร็วก็ต่างกัน ก็เลยคิดขึ้นมาได้ว่าเอ้าไหน ๆ ก็จะทำเรื่อง DNS ละแล้วไอ้ Tools สองอย่างนี้มันต่างกันยังไงล่ะเนี่ย เลยเอาหัวข้อนี้มาทำซะเลย อิอิ เพื่อไม่ให้เป็นการเสียเวลา จัดเลยแล้วกันนะครับ

DNS คืออะไร

          เนื่องจากโดยปกติแล้วคอมพิวเตอร์นั้นเวลาติดต่อสื่อสารกับโลกภายนอกมันไม่รู้จักชื่อของเครื่องคอมพิวเตอร์ปลายทางหรอกครับ เวลามันติดต่อกันมันก็จะใช้ชื่อในทางตรรกศาสตร์ (Logical Name) เรียกให้เข้าใจง่าย ๆ คือ มันจะใช้หมายเลข IP ในการติดต่อสื่อสารกัน แล้วลองนึกดูนะครับว่าถ้าหากเราต้องการติดต่อสื่อสารกับเว็บไซต์สักที่นึง คงไม่มีใครมานั่งจำว่าเว็บไซต์นี้หมายเลข IP อะไรหรอกใช่มั๊ยครับ ถ้าใช้แค่เว็บสองเว็บก็ไม่มีอะไร แต่เว็บไซต์ในโลกมีหลายพันล้านเว็บไซต์ หรืออาจไปถึงหมื่นล้านแล้วก็ได้ ย้อนกลับไปในยุค ARPANET ประมาณปี 1972 - 1989 ยุคแรกที่มีการสร้างสิ่งที่เรียกว่าระบบเครือข่ายขึ้น โดยรัฐบาลของประเทศสหรัฐอเมริกา ตอนนั้นระบบเครือข่ายเริ่มเปิดกว้างขึ้น คนทั่วไปที่มีเครื่อง PC (Personal Computer) สามารถที่จะยื่นเรื่องขอหมายเลข IP มาใช้กันตามบ้านเรือนได้แล้ว ในยุคนั้นไม่ได้หมายความว่าคุณจะสามารถใช้งานอินเทอร์เน็ตได้ตลอดเวลาเหมือนทุกวันนี้นะครับ ถ้าหากว่าเลย 18.00 น.(California Time)ไปแล้วคุณจะไม่สามารถใช้งานอินเทอร์เน็ตได้นะครับ หรือถ้าเป็นช่วงคริสต์มาสก็จะไม่สามารถใช้งานอินเทอร์เน็ตได้เช่นกัน เนื่องจากมันเป็นเวลาที่สุภาพสตรีท่านนึงเลิกงานครับ สุภาพสตรีท่านนั้นชื่อว่า Elizabeth J. Feinler นั่นเอง คือเจ๊แกเป็นคนแรกที่คอยดูแลจัดการเรื่องของ Directory ใน APRANET สมัยนั้นครับเจ๊แกเป็นคนดูแลเครื่องคอมพิวเตอร์ไฟล์ (Computer File) ซึ่งมีไฟล์ระบบปฏิบัติการที่ชื่อว่า Host ใช้สำหรับ Match ระหว่าง Hostname กับหมายเลข IP Address ที่ Stanford Research Institute(SRI) ครับ

          คือเราแทบจะต้องรู้จักเจ๊แกเลยในช่วงนั้นเพราะถ้าหากว่าเราหมายเลข IP Address ในช่วงยุคนั้นจะต้องขอร้องให้เจ๊คนนี้เค้าช่วย add hostname ให้ครับ คือถ้าจะเอาเครื่องของเรามาเชื่อมต่อกับระบบเครือข่ายของ ARPANET ในช่วงนั้นต้องโทรไป SRI ครับ โทรหาเจ๊เค้าแล้วเค้าจะดำเนินการเพิ่มเครื่องของคุณเข้าไปให้ครับ หลังจากนั้นไม่นานเจ๊แกกับทีมงานก็ได้สร้างสิ่งที่เรียกว่า WHOIS ขึ้นมาเพื่อตรวจสอบข้อมูลต่าง ๆ อย่าง แหล่งที่มี, รายละเอียดของผู้ติดต่อ และ Entities เอาไว้และวางรากฐานของ Domain ขึ้น ในช่วงก่อนปี 1980 ได้มีวิศวกรที่ชื่อ Paul Mockapetris เข้ามารับช่วงในการออกแบบสถาปัตยกรรมระบบ Domain ต่อจากเจ๊แกนะครับ และในเดือนพฤศจิกายน ปี 1983 Paul ก็ทำสำเร็จโดย IETF ได้เผยแพร่ RFC882 และ RC883 ของเค้าออกมาเป็นมาตรฐานสำหรับ DNS ขึ้นจึงทำให้ Paul Mockapetris กลายเป็นบิดาของ Domain Name System (DNS) นั่นเอง


DNSEnum กับ DNSMap คืออะไร

          ทั้งสองตัวเป็นเครื่องมือที่ใช้สำหรับค้นหาข้อมูลเกี่ยวกับ Domain Name ของเป้าหมาย คือต้องเกริ่นแบบนี้ ในการทำการทดสอบเจาะระบบ การที่เราจะโจมตีเครื่องเป้าหมายเพื่อยึดเครื่องเป้าหมายได้นั้นจำเป็นอย่างยิ่งที่จะต้องรู้ข้อมูลของเป้าหมายให้ได้มากที่สุด ถ้าหากว่าเราต้องทำการทดสอบแบบ Black Box (การทดสอบเจาะระบบแบบเสมือนบุคคลภายนอกหน่วยงานของลูกค้า จะไม่ทราบข้อมูลภายในใด ๆ เลย ไม่ทราบโครงสร้าง ส่วนใหญ่จะได้มาแค่หมายเลข IP ของเครื่องเป้าหมาย หรือให้มาแค่ชื่อเว็บไซต์นั่นเอง) หนึ่งในเครื่องมือที่จะทำให้เราบรรลุเป้าหมายนั้นได้คือ เครื่องมือสำหรับการค้นหาข้อมูล Domain Name นั่นเอง ซึ่งจะมีตัวแปรอยู่ข้างในหลายตัวเช่น A, CName, MX หรือ NS เป็นต้น ซึ่งในที่นี้ผมได้เลือกเอาเครื่องมือที่มีความคลาสสิคมาสองด้วยนั่นคือ DNSEnum และ DNSMap ครับ



          จากรูปข้างบนผมได้ทำตารางเปรียบเทียบความแตกต่างทางด้านวัตถุประสงค์ของเครื่องมือทั้งสองไว้คร่าว ๆ ตามรูปเลยครับจะสังเกตได้ว่าข้อแตกต่างหลัก ๆ คงจะหนีไม่พ้นในเรื่องของการค้นหา Sub-Domain นั่นเองโดยในส่วนของ SQLMap นั้นจะเน้นหนักไปที่การ Brute Force เพื่อค้นหา Sub-Domain ในขณะที่ DNSEnum จะเน้นหนักไปที่การค้นหา DNS Record กับ Zone Transfer ซะเป็นส่วนใหญ่ จะเห็นได้ว่าเครื่องมือทั้งสองอันแม้จะทำงานในทิศทางเดียวกันแต่ต่างกันที่จุดหมายปลายทางนะครับ ส่วนตัวอย่างในการทำนั้นผมขอให้อ่านจาก help เอาก็ได้นะครับโดยดูจากตัวอย่างด้านล่างนะครับ
$sudo dnsenum --help
แต่ในส่วนของ DNSMap สามารถพิมพ์คำสั่ง
$sudo dnsmap
...

ผมเขียนบทความนี้ขึ้นเพื่อเป็นการแบ่งปันความรู้ในการศึกษาเท่านั้นนะครับ ไม่แนะนำให้นำความรู้ที่ได้ไปใช้ในทางที่ผิดกฏหมายนะครับ

No comments:

Post a Comment

วิธีการติดตั้ง และตั้งค่า Apache2 พร้อมเปิดใช้งาน HTTPS ด้วยวิธี Self-Sign บน Ubuntu 18.04.1 LTS

ดีจร้า วันนี้ช่วงเช้าว่างเลยมาเขียนบทความเพิ่มเติมเกี่ยวกับการติดตั้ง และตั้งค่า Apache2 ให้สามารถใช้งานผ่าน HTTPS ได้กันมาเริ่มกันเลยครับ ...