Kerberos Attacks: উইন্ডোজ অথেনটিকেশন প্রোটোকলের দুর্বলতা কাজে লাগিয়ে নেটওয়ার্ক হ্যাকিং!
Kerberos প্রোটোকলের বিরুদ্ধে Golden Ticket, Silver Ticket, AS-REP Roasting এবং অন্যান্য উন্নত আক্রমণের পূর্ণাঙ্গ বিশ্লেষণ।
Active Directory পরিবেশের সর্বত্র অথেনটিকেশনের কেন্দ্রবিন্দু হিসেবে Kerberos প্রোটোকল গত কয়েক দশক ধরে কাজ করে আসছে। MIT-তে ১৯৮০-এর দশকে ডিজাইন করা এই প্রোটোকল মাইক্রোসফট উইন্ডোজ ২০০০-এ এসে এন্টারপ্রাইজ জগতের ডিফল্ট অথেনটিকেশন মেকানিজমে পরিণত হয়। Kerberos তার ক্রিপ্টোগ্রাফিক ভিত্তির কারণে অত্যন্ত শক্তিশালী, কিন্তু এর জটিলতা এবং বাস্তবায়নের সূক্ষ্মতার কারণে এটি বিভিন্ন আক্রমণের জন্য উন্মুক্ত হয়ে পড়ে।
Red Team এবং বাস্তব APT অভিনেতাদের অস্ত্রাগারে Kerberos আক্রমণগুলো শ্রেষ্ঠ স্থান অধিকার করে। Golden Ticket, Silver Ticket, AS-REP Roasting, Kerberoasting, Pass-the-Ticket, Skeleton Key, এবং সাম্প্রতিক Diamond Ticket—প্রতিটি কৌশল আক্রমণকারীকে domain-level dominance অর্জনে সাহায্য করে। এই ব্লগে আমরা এই আক্রমণগুলোর প্রযুক্তিগত ভিত্তি, কার্যপদ্ধতি, ব্যবহৃত টুল এবং প্রতিরক্ষা কৌশল বিস্তারিতভাবে আলোচনা করব।
Kerberos প্রোটোকল রিভিজিট
Kerberos অথেনটিকেশন প্রক্রিয়া বুঝতে কয়েকটি মৌলিক উপাদান চিহ্নিত করতে হবে। KDC বা Key Distribution Center দুটি সাব-সার্ভিস ধারণ করে—Authentication Service (AS) যা প্রাথমিক লগইন পরিচালনা করে, এবং Ticket Granting Service (TGS) যা পরবর্তী সার্ভিস টিকেট জারি করে।
প্রতিটি ডোমেইন কন্ট্রোলারে একটি বিশেষ অ্যাকাউন্ট থাকে—krbtgt। এই অ্যাকাউন্টের পাসওয়ার্ড hash থেকে derived কী দিয়ে সকল TGT এনক্রিপ্ট ও স্বাক্ষরিত হয়। অর্থাৎ, krbtgt-এর hash পেলে আক্রমণকারী যেকোনো ব্যবহারকারীর TGT তৈরি করতে পারেন—এটিই Golden Ticket আক্রমণের ভিত্তি।
Kerberos প্রোটোকলের ক্রিপ্টোগ্রাফিক বিনিময় সাধারণত পাঁচটি বার্তায় বিভক্ত—AS-REQ, AS-REP, TGS-REQ, TGS-REP এবং AP-REQ/AP-REP। প্রতিটি ধাপে নির্দিষ্ট ক্ষেত্র এনক্রিপ্ট থাকে, এবং প্রতিটি ধাপে নির্দিষ্ট নিরাপত্তা অনুমান রয়েছে। এই অনুমানগুলোর কোনো ভঙ্গ হলে আক্রমণ সম্ভব।
AS-REP Roasting
AS-REP Roasting Kerberoasting-এর সমতুল্য একটি আক্রমণ, কিন্তু এটি Pre-Authentication বন্ধ থাকা অ্যাকাউন্টকে লক্ষ্য করে। স্বাভাবিকভাবে, AS-REQ-এর সঙ্গে Client পাসওয়ার্ড-derived কী দিয়ে এনক্রিপ্ট করা টাইমস্ট্যাম্প পাঠায়—এটিই Pre-Authentication। এটি অফলাইন bruteforce থেকে রক্ষা করে।
কিন্তু কিছু অ্যাকাউন্টে (লিগ্যাসি অ্যাপ্লিকেশন কম্প্যাটিবিলিটির জন্য) "Do not require Kerberos pre-authentication" পতাকা সেট করা থাকে। এ ধরনের অ্যাকাউন্টের জন্য আক্রমণকারী directly AS-REQ পাঠাতে পারেন এবং AS-REP রিটার্ন পেতে পারেন, যার এনক্রিপ্টেড অংশ ব্যবহারকারীর পাসওয়ার্ড হ্যাশ দিয়ে এনক্রিপ্ট করা। এই অংশটি অফলাইনে Bruteforce করা যায়।
impacket-এর GetNPUsers.py এই আক্রমণের জন্য জনপ্রিয় টুল। কমান্ড উদাহরণ—GetNPUsers.py domain.local/ -no-pass -usersfile users.txt -dc-ip 192.168.1.10। Hashcat-এ mode ১৮২০০ ব্যবহৃত হয়।
Golden Ticket আক্রমণ
Golden Ticket Active Directory আক্রমণের সবচেয়ে শক্তিশালী প্রকার। যদি আক্রমণকারী একবার krbtgt অ্যাকাউন্টের NTLM hash অর্জন করতে পারেন, তবে তিনি নিজে যেকোনো ব্যবহারকারীর জন্য বৈধ TGT তৈরি করতে পারেন—এমনকি নন-এক্সিস্ট্যান্ট ব্যবহারকারীর জন্যও। এই TGT সাধারণত ১০ বছরের জন্য বৈধ সেট করা হয়।
Golden Ticket তৈরির জন্য Mimikatz-এর বিখ্যাত কমান্ড—kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-... /krbtgt:<NTLM_HASH> /id:500 /groups:512,513,518,519,520 /ptt। এই টিকেট ব্যবহার করে আক্রমণকারী যেকোনো সার্ভিসে যেকোনো ব্যবহারকারী হিসেবে অ্যাক্সেস পেতে পারেন।
Golden Ticket-এর ভয়ংকর দিক হলো এর persistence—krbtgt পাসওয়ার্ড পরিবর্তন না করা পর্যন্ত আক্রমণকারী domain dominance বজায় রাখতে পারেন। এমনকি প্রতিটি ব্যবহারকারীর পাসওয়ার্ড রিসেট, প্রতিটি কম্পিউটার পুনরায় ইমেজ করার পরও আক্রমণকারী ফিরে আসতে পারেন।
krbtgt hash অর্জন সাধারণত DCSync আক্রমণ বা ডোমেইন কন্ট্রোলারে সরাসরি অ্যাক্সেসের পর সম্ভব। প্রতিরক্ষা—krbtgt পাসওয়ার্ড নিয়মিত (অন্তত বছরে দুবার) রোটেট করা, এবং প্রতিবার দুটি ধাপে (টেকনিক্যাল কারণে)।
Silver Ticket আক্রমণ
Silver Ticket Golden Ticket-এর তুলনায় কম বিধ্বংসী কিন্তু stealthier আক্রমণ। এখানে আক্রমণকারী একটি নির্দিষ্ট সার্ভিস অ্যাকাউন্টের NTLM hash দিয়ে সরাসরি forged TGS (Service Ticket) তৈরি করেন—KDC-র সঙ্গে কোনো যোগাযোগ ছাড়াই।
যেহেতু KDC জড়িত নয়, ডোমেইন কন্ট্রোলারে কোনো লগ থাকে না, যা ডিটেকশন কঠিন করে। উদাহরণ—যদি CIFS সার্ভিসের hash থাকে, আক্রমণকারী যেকোনো ফাইল শেয়ারে যেকোনো ব্যবহারকারী হিসেবে অ্যাক্সেস তৈরি করতে পারেন।
Mimikatz কমান্ড—kerberos::golden /user:Administrator /domain:domain.local /sid:... /target:server.domain.local /service:CIFS /rc4:<HASH> /ptt। এর সুযোগ একটি নির্দিষ্ট সার্ভিসে সীমিত, কিন্তু সেই সার্ভিসে পূর্ণ নিয়ন্ত্রণ।
Pass-the-Ticket ও Pass-the-Hash
Pass-the-Ticket আক্রমণে আক্রমণকারী একটি বৈধ TGT বা TGS চুরি করে অন্য সিস্টেমে ব্যবহার করেন। মেমোরি থেকে টিকেট এক্সট্রাক্ট করতে Mimikatz-এর sekurlsa::tickets /export ব্যবহার করা হয়। এক্সপোর্টেড .kirbi ফাইল অন্য মেশিনে আমদানি করে সংশ্লিষ্ট ব্যবহারকারীর সম্পূর্ণ পরিচয় গ্রহণ করা যায়।
Pass-the-Hash একটু ভিন্ন—এখানে NTLM hash সরাসরি অথেনটিকেশনে ব্যবহৃত হয়, পাসওয়ার্ড না জেনেই। যদিও এটি কঠোরভাবে Kerberos আক্রমণ নয় (NTLM প্রোটোকলের সঙ্গে সম্পর্কিত), অনেক পরিবেশে Kerberos ব্যর্থ হলে NTLM fallback হয়, ফলে এটি প্রাসঙ্গিক।
CrackMapExec, impacket-এর secretsdump.py, এবং psexec.py এই আক্রমণগুলোর জন্য বহুল ব্যবহৃত। ডিটেকশনে Microsoft Defender for Identity, Splunk, এবং Sysmon গুরুত্বপূর্ণ ভূমিকা পালন করে।
DCSync আক্রমণ
DCSync একটি গুরুতর আক্রমণ যেখানে আক্রমণকারী একটি ডোমেইন কন্ট্রোলার হওয়ার ভান করে এবং রেপ্লিকেশন প্রোটোকল MS-DRSR ব্যবহার করে অন্য DC থেকে hash ডেটা চায়। এটি সম্ভব হওয়ার কারণ—যেসব অ্যাকাউন্টে "Replicating Directory Changes" এবং "Replicating Directory Changes All" পারমিশন আছে, তারা যেকোনো ব্যবহারকারীর hash পেতে পারে।
ডিফল্টভাবে Domain Admin, Enterprise Admin এবং Domain Controller অ্যাকাউন্টগুলোর এই পারমিশন আছে। কিন্তু অনেক প্রতিষ্ঠানে ভুল কনফিগারেশনের কারণে অন্য অ্যাকাউন্টগুলোও এই পারমিশন পেয়ে যায়।
Mimikatz-এর lsadump::dcsync /user:domain\krbtgt কমান্ড দিয়ে এটি execute করা যায়। অর্জিত krbtgt hash দিয়ে Golden Ticket তৈরি করা যায়—এই দুটি আক্রমণ পরস্পরের পরিপূরক। BloodHound এই ধরনের attack path দৃশ্যমান করতে অমূল্য।
Kerberos Delegation আক্রমণ
Kerberos Delegation হলো এমন একটি ফিচার যেখানে একটি সার্ভিস ব্যবহারকারীর হয়ে অন্য সার্ভিসে অ্যাক্সেস করতে পারে। তিনটি প্রকার রয়েছে—Unconstrained, Constrained, এবং Resource-Based Constrained Delegation। প্রতিটিতে নিজস্ব আক্রমণ ভেক্টর আছে।
Unconstrained Delegation চালু থাকা সার্ভারে যদি Domain Admin লগইন করেন, তার TGT সেই সার্ভারের মেমোরিতে সংরক্ষিত হয়। আক্রমণকারী সেই সার্ভার compromise করে TGT এক্সট্রাক্ট করে সম্পূর্ণ ডোমেইন নিয়ন্ত্রণ পেতে পারেন। Constrained Delegation-এ "Protocol Transition" অপব্যবহার করে S4U2Self এবং S4U2Proxy বার্তা manipulate করা যায়।
Resource-Based Constrained Delegation বা RBCD আধুনিক ফিচার, কিন্তু এতে যদি একজন আক্রমণকারী একটি কম্পিউটার অ্যাকাউন্টে msDS-AllowedToActOnBehalfOfOtherIdentity প্রপার্টি লিখতে পারেন, তবে তারা সেই কম্পিউটারে যেকোনো ব্যবহারকারী হিসেবে অ্যাক্সেস তৈরি করতে পারেন।
Diamond ও Sapphire Ticket
সাম্প্রতিক বছরগুলোতে গবেষকরা নতুন আক্রমণ আবিষ্কার করেছেন। Diamond Ticket Golden Ticket-এর বিবর্তন—এখানে একটি বৈধ TGT সংগ্রহ করে তা decrypt, modify, এবং re-encrypt করা হয়, ফলে এটি Golden Ticket-এর তুলনায় কম সন্দেহজনক প্যাটার্ন দেখায়।
Sapphire Ticket আরও পরিশীলিত, যেখানে S4U2Self এবং PAC manipulation ব্যবহার করা হয়। SpecterOps এবং অন্যান্য রিসার্চ গ্রুপ এসব নতুন কৌশল ডকুমেন্ট করছেন। প্রতিটি নতুন আক্রমণের সঙ্গে প্রতিরক্ষা টুলগুলোকেও আপডেট করতে হয়।
প্রতিরোধ ও Best Practices
Kerberos আক্রমণ থেকে রক্ষা পেতে বহুস্তরবিশিষ্ট কৌশল প্রয়োজন। প্রথমত, Tier Model—Active Directory অ্যাকাউন্ট ও সম্পদগুলোকে Tier 0 (Domain Controller এবং Tier 0 ম্যানেজমেন্ট), Tier 1 (Server), এবং Tier 2 (Workstation) তে আলাদা করা।
দ্বিতীয়, Privileged Access Workstation বা PAW—Domain Admin শুধু শক্তভাবে নিয়ন্ত্রিত নির্দিষ্ট ওয়ার্কস্টেশন থেকে কাজ করবেন, যা ইন্টারনেট অ্যাক্সেস বা ইমেইল ক্লায়েন্ট থেকে বিচ্ছিন্ন। তৃতীয়, krbtgt পাসওয়ার্ড নিয়মিত রোটেশন—Microsoft একটি অফিসিয়াল স্ক্রিপ্ট প্রদান করেছে এই উদ্দেশ্যে।
চতুর্থ, Unconstrained Delegation সম্পূর্ণ মুছে ফেলুন বা শুধু একান্ত প্রয়োজনে রাখুন। উচ্চ-প্রিভিলেজ অ্যাকাউন্টে "Account is sensitive and cannot be delegated" পতাকা সেট করুন এবং Protected Users গ্রুপে যুক্ত করুন।
পঞ্চম, Domain Controller-এ Microsoft Defender for Identity ডিপ্লয় করুন, যা Kerberos আক্রমণের নির্দিষ্ট প্যাটার্ন সনাক্ত করতে বিশেষভাবে ডিজাইন করা। ষষ্ঠ, advanced auditing—Event ID 4768, 4769, 4624, 4672, 4776 পর্যবেক্ষণ এবং অস্বাভাবিক প্যাটার্নে অ্যালার্ট।
সপ্তম, AES enforcement—RC4 এনক্রিপশন বন্ধ করুন যেখানে সম্ভব। GPO-এর মাধ্যমে "Network security: Configure encryption types allowed for Kerberos" সেট করুন। অষ্টম, LAPS (Local Administrator Password Solution) ব্যবহার করে লোকাল অ্যাডমিন পাসওয়ার্ড স্বয়ংক্রিয়ভাবে রোটেট।
নবম, নিয়মিত BloodHound ব্যবহার করে আক্রমণ পথ চিহ্নিত করুন এবং সংশোধন করুন। দশম, Incident Response পরিকল্পনায় Kerberos compromise-এর জন্য নির্দিষ্ট playbook রাখুন—Golden Ticket সন্দেহ হলে দুবার krbtgt পাসওয়ার্ড পরিবর্তন (২৪ ঘন্টা ব্যবধানে) করা।
প্রশিক্ষণ ও সিমুলেশন
Red Team এবং Blue Team উভয়ের জন্য Kerberos আক্রমণ চর্চা গুরুত্বপূর্ণ। GOAD (Game of Active Directory), HTB Pro Labs, এবং OffSec-এর OSEP কোর্স বাস্তবধর্মী পরিবেশ প্রদান করে। ডিফেন্ডারদের জন্য Microsoft-এর Attack Simulator এবং Atomic Red Team-এর Kerberos atomics পরীক্ষার সুযোগ দেয়।
Kerberos আক্রমণ আধুনিক এন্টারপ্রাইজ সাইবার নিরাপত্তার সবচেয়ে গুরুত্বপূর্ণ ক্ষেত্রগুলোর একটি। Active Directory অধিকাংশ প্রতিষ্ঠানের পরিচয় ব্যবস্থার মেরুদণ্ড, এবং একবার Kerberos compromised হলে পুরো ডোমেইন আক্রমণকারীর নিয়ন্ত্রণে চলে যেতে পারে। Golden Ticket, Silver Ticket, AS-REP Roasting এবং Delegation আক্রমণগুলো প্রতিটি Active Directory প্রশাসকের জ্ঞানের পরিধিতে থাকা উচিত।
ভাল খবর হলো, সঠিক কনফিগারেশন, নিয়মিত পর্যবেক্ষণ, এবং আধুনিক প্রতিরক্ষা টুল ব্যবহার করে এই আক্রমণগুলো প্রায় সব ক্ষেত্রেই সনাক্ত ও প্রতিরোধ করা সম্ভব। Tier Model, Protected Users, gMSA, এবং Defender for Identity—এই উপাদানগুলো একসঙ্গে একটি শক্তিশালী প্রতিরক্ষা স্তর তৈরি করে। Kerberos নিরাপত্তা একটি চলমান যাত্রা, যেখানে প্রতিরক্ষা ও আক্রমণ পরস্পরের সঙ্গে বিবর্তিত হতে থাকে।
আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Kerberos Attacks MCQ Quiz-টি দিন!
Related articles
Active Directory: Why the Heart of the Corporate Network is the Ultimate Hacker Target
11 min
AD Exploitation: Advanced Tactics Hackers Use to Conquer Active Directory
10 min
ADCS Exploitation: How Hackers Hijack Networks Using Fake Digital Certificates
10 min
Deep Dive into Active Directory Exploitation
9 min

