พอดีได้อ่าน post เกี่ยวกับสรุปการทำงานของ Kerberos Authentication Protocol แล้วเห็นว่ามันเข้าใจง่ายดีเลยเอามาโพสต์ดูครับ
Active Directory (AD)
ก่อนที่จะทำไปถึง Kerberos เรามาทำความเข้าใจเรื่อง Active Directory กันซักหน่อย Active Directory คือ Enterprise Server ที่คอย control คนทั้งองค์กร หรือก็คือ “Domain Controller” (DC) โดยมีการจัดการโครงสร้างของผู้ใช้งานและหน่วยงานต่างๆเป็นแบบ hierarchcical structure
AD จะทำตามมาตรฐาน x.500 และทำงานในระดับ Application Layer (OSI Model) ทำให้ admin สามารถควบคุม user และ resouse ทั้งหมด โดย AD จะเก็บข้อมูลทั้งหมดไว้ใน database และใช้งาน “Kerberos protocol” สำหรับการ authentication และใช้ LDAP สำหรับการรับข้อมูล โดย user ทั้งหมดต้อง authentication กับ DC ก่อนที่จะเข้าถึง resource ใดๆหรือ service ใดๆใน Domain ซึ่ง DC จะสามารถเขียน policy ให้ทุกๆ user ทำสิ่งที่ต้องการได้และกำหนดสิทธิ์ของ user ได้ ทำให้ admin ทำงานได้ง่ายขึ้น โดย AD มีรายละเอียดปลีกย่อยที่สำหรับการควบคุมดังต่อไปนี้
- Object คือ network resource ใดๆใน AD ไม่ว่าจะเป็น computers, users, printers และอื่นๆ
- Domain คือกลุ่มของ object ในองค์กร
- Tree คือ collection ของ domain ตั้งแต่ 1 ขึ้นไป โดย domain ทั้งหมดจะอยู่ภายใต้ tree เดียวกัน แชร์ schema ร่วมกัน
- Forest คือ collection ของ tree ที่แชร์ Directory Schema และ configuration กันข้ามองค์กร
การ Authentication ของ Kerberos

การโจมตีที่อาจเกิดขึ้นได้กับ Kerberos
อย่างที่บอกไปแล้วว่าเครื่องใดๆที่ join AD นั้นจำเป็นต้องใช้งานผ่าน Kerberos ดังนั้นแน่นอนว่าหากโจมตี Kerberos ได้ ก็เรียกได้ว่ายึด Domain ได้เลยก็ว่าได้ ก็เลยมีการโจมตีในหลากหลายรูปแบบขึ้นมา
- Silver Tickets เป็น Ticket Granting Service (TGS) ซึ่งเป็น service tickets สามารถสร้างได้โดย crack account password ในเครื่อง user แล้วนำมาสร้าง fake authentication ticket ซึ่ง Kerberos อนุญาตให้ใช้ services login เข้าสู่ระบบโดยไม่มีการ check ว่า token นั้น valid หรือไม่ โดย ticket ดังกล่าวทำให้เราสามารถเข้าถึง service บาง service ที่ใช้ Kerberos เป็นส่วน authenticate
- Golden Tickets KRBTGT account ซึ่งใช้ในการ encrypt และ sign Kerberos ticket ทั้งหมด โดย Account นี้ password จะไม่มีหมดอายุ และ KRBTGT จะไม่มีการเปลี่ยนชื่อใน domain ใดๆ จะเหมือนเดิมตลอด สิ่งที่ต้องทำให้ได้คือเอา KRBTGT password hash มาให้ได้ก่อน ซึ่งเป็นส่วนสำคัญสุด โดยการจะได้มาซึ่ง password hash นั้นเราต้องเข้าถึง AD และใช้สิทธิ์ admin ให้ได้ก่อน โดยสามารถดูวิธีการสร้าง Golden Ticket ได้จากในนี้ครับ