วันอาทิตย์ที่ ๑๙ สิงหาคม พ.ศ. ๒๕๕๐

DNS Zone Transfer

สวัสดีคับจากที่ผ่านมาผมได้เขียนเกี่ยวกับการแกะรอย (foot printing)
วันนี้ก็เลยอยากจะมาอธิบายเทคนิคที่ผมใช้บ่อยๆในการค้นหา IP และการทำ
network mapping ด้วยวิธีการ DNS Zone Transfer ซึ่งเป็นวิธีที่ค่อนข้าง
classic ซักหน่อยนะคับ (อิอิ เก่าแล้วแต่ยังใช้ได้ดีอยู่คับ)

เริ่มกันเลยแล้วกันคับ สมมุติว่าคุณถูกจ้างให้ทำการทดสอบระบบความปลอดภัยของ
องค์กรใดก็ตาม หลังจากที่ได้ใช้ Google ในการค้นหาข้อมูลที่รั่วไหลแล้ว
step ต่อไปก็คือการทำ network mapping หรือการจำลอง network diagram ของ
เป้าหมายโดยที่คุณต้องหาทางให้ได้ข้อมูลนั้นมา อ้าวแล้วจะทำไงดีล่ะคับคราวนี้?
มาดูตัวอย่างกันดีกว่าคับ

องค์กร citXX มี website ชื่อว่า www.citXX.ABC หลังจากที่เราได้ค้นหาข้อมูล
โดยใช้ Google ด้วยคำสั่ง

site:citXX.ABC –site:www.citXX.ABC


คราวนี้เราก็จะได้ sub domain ที่อยู่ภายใต้ domain citXX.ABC มาหลาย domain เช่น
host, kb, blog, rg และอีกมากคับก็ให้จดไว้เป็นข้อมูลเบื้องต้น
หลังจากนั้นถ้าเราจะทำ DNS Zone Transfer เราจะต้องทราบว่า DNS Server
ของเป้าหมายอยู่ที่ไหน โดยปกติแล้วข้อมูลพวกนี้สามารถหาดูได้จาก website ที่ให้บริการ
whois ทั่วๆไปคับ อย่างเช่น www.checkdomain.com, www.apnic.net
ก็จะปรากฏข้อความแบบนี้



อ้าว!!! เฮ้ย….
ไม่มีข้อมูล ทำไงดีล่ะคับคราวนี้ สิ่งที่เราต้องการคือ dns หรือ ip ของ
name server ที่ map ชื่อ www.citXX.ABC อยู่เพื่อทำ zone transfer
อ่อ…. คิอ่อและ หรือว่า dns นี้ไม่ใช่ .com เลยไม่ได้ถูก registered ใน Global whois
งั้นลองค้นหาใน internic ดูดีกว่า ว่าแล้วก็…





ออกมาแล้วครับ สิ่งที่ต้องการนั่นคือ ns1.citXX.ABC หลังจากนั้นก็ให้ลองใช้ nslookup
ในการค้นหา ip address ดูคับ



(ผมขออนุญาตปิดบังข้อมูลนะคับ ทำให้ดูแทบไม่รู้เรื่อง)
ok คับได้ ip address ของ ns1.citXX.ABC มาแล้วพร้อมจะทำ Zone transfer ซะที
แต่เด๋วก่อนไหนลอง nslookup www.citXX.ABC ดูดิว่ามี ip อะไร….
อ้าวดันเป็น ip เดียวกันกับ ns1.citXX.ABC ซะนี่ เป็นไปได้ว่า เครื่องนี้รัน service
ทั้ง web server และ dns server คับ ว่าแล้วก็จดไว้คับ จดไว้..

DNS Zone Transfer
DNS คือ service ที่ให้บริการ map ชื่อ domain กับ ip address เพื่อให้
มนุษย์โลกจำได้ง่ายคับ เช่น ip 58.181.243.6 ชื่อว่า www.sanook.com นะ
พอเวลาที่มนุษย์จะเข้า website หรือใช้บริการอื่นๆก็ไม่จำเป็นใส่ ip address
ก็ให้ใส่ชื่อแทนได้เลยคับ คราวนี้ไอ้เจ้า DNS server นี่แหละที่เป็นตัวเก็บข้อมูลทั้งหมด
ของ Domain และ sub domain ไว้ดังนั้นถ้าเราสามารถเห็นว่ามันเก็บอะไรอยู่บ้าง
เราก็สามารถรู้ได้ว่าชื่อ domain ต่างๆเป็น ip address อะไรรวมทั้งยังเดาได้อีกว่า
ให้บริการอะไรด้วยคับ

ปกติแล้วเราจะใช้คำสั่ง nslookup (name server lookup) เพื่อใช้ในการดูว่า dns นั้น
resolve ออกมาเป็น ip อะไร คราวนี้เราจะมาลองใช้ nslookup เนี่ยแหละทำ
DNS Zone Transfer กันคับโดยพิมพ์คำสั่ง nslookup ใน Terminal ของ windows
จะออกมาเป็นแบบนี้คับ



ให้สังเกตุว่าตอนนี้ Default server ที่ใช้ทำการ dns query นี้คือ ip address router
ของผมเองซึ่งจะไม่มีข้อมูลของเป้าหมายแน่ๆ ดังนั้นเราต้องบอกให้ nslookup ทำการ
query ที่ dns server ของเป้าหมายโดยระบุ ip ที่เราได้ทำการจดไว้ข้างต้น
โดยใช้ทำสั่ง

>server 202.XXX.XXX.XXX



คราวนี้ nslookup ของเราก็จะเข้าใจแล้วว่าจะต้องไปค้นหาข้อมูลต่างๆที่ server ดังกล่าว
หลังจากนั้นเราก็ทำการ set type=any เพื่อบอกว่าเราต้องการทุก record ที่มีนะ
แล้วก็ใช้ทำสั่ง ls –d citXX.ABC. เพื่อเป็นการ list record ทั้งหมดตามรูปนะคับ



ถ้า dns server ไม่ได้ config ไว้อย่างรัดกุมอาจจะทำให้ผลออกมาเป็นแบบนี้คับ



(YES!!! ….ออกมาแล้วคับ)
ให้สังเกตุฝั่งซ๊ายมือนะคับตั้งแต่ blog จนถึง www บอกอะไรเราบ้าง
ส่วน column ข้อมูล record type A, NS, MX, CNAME และ SOA นี้จะเป็นการบอกชนิดของ record นะคับว่าเป็นอะไรลองศึกษาการ config DNS server จะทำให้เข้าใจอย่างโจ่งครึ่ม(แจ้ง) ข้อมูลที่ได้มาคือ เครื่องนี้มี name server ชื่อว่า ns1.citXX.ABC ให้บริการ
blog à Web Server
db à Database Server
ftp à FTP Server
mail à Mail Server
ns1 à DNS Server
pop à POP Mail Server
smtp à SMTP Mail Server
www à Web Server
ข้อมูลที่ได้มานี่เป็นทำให้เราสามารถเดาได้ในระดับนึงนะคับว่าเครื่องใดให้บริการอะไรบ้าง
คราวนี้เราลองเอาข้อมูลที่ได้มาวาดรูปดูนะคับว่า network จะเป็นยังไง



นี่คือตัวอย่าง diagram ที่ได้ข้อมูลมาจาก DNS server ที่เราทำ Zone Transfer มาคับ
จริงๆแล้ว services ที่ list ไว้อาจจะตรงหรือไม่ตรงก็ได้เราต้องทำการ check อีกที
โดยการใช้ tools scanner เช่นพวก nmapในการตรวจสอบอีกทีนะคับ

การป้องกันการทำ DNS Zone Transfer นั้นสามารถทำได้โดยการจำกัด host
ที่จะจำเป็นต้องเข้ามาทำ zone transfer เท่านั้นอย่างเช่นพวก DNS secondary server
เท่านั้นที่จะอนุญาตให้เข้ามา query ข้อมูลโดยระบุ ip เครื่องไปเลยคับ
ถ้าอยากทราบวิธี config อ่านที่นี่ คับ

tag:google hack, Pen Test, Penetration Test, Penetration testing