HackCert
Intermediate 10 min read May 25, 2026

Kerberoasting: Active Directory-র দুর্বল পাসওয়ার্ড ক্র্যাক করার সাইবার পদ্ধতি!

Kerberoasting আক্রমণ কৌশল, SPN টিকেট এক্সট্রাকশন, অফলাইন ক্র্যাকিং এবং Active Directory সুরক্ষা গাইড।

Rokibul Islam
Red Team Operator
share
Kerberoasting: Active Directory-র দুর্বল পাসওয়ার্ড ক্র্যাক করার সাইবার পদ্ধতি!
Overview

Active Directory আজও বিশ্বের অধিকাংশ এন্টারপ্রাইজ পরিবেশের কেন্দ্রবিন্দু। উইন্ডোজ-ভিত্তিক প্রতিষ্ঠানের ব্যবহারকারী, কম্পিউটার, সার্ভার, ফাইল শেয়ার এবং অ্যাপ্লিকেশন—সবকিছুই Active Directory-র অধীনে পরিচালিত হয়। এই কেন্দ্রীয় নিয়ন্ত্রণ ব্যবস্থা যেমন সুবিধাজনক, তেমনি একটি একক ব্যর্থতা পয়েন্টও বটে। যদি কোনো আক্রমণকারী Domain Admin বা সমতুল্য প্রিভিলেজ অর্জন করেন, পুরো প্রতিষ্ঠানের নিয়ন্ত্রণ চলে যেতে পারে তাদের হাতে।

Active Directory আক্রমণের অস্ত্রাগারে Kerberoasting একটি বিশেষ স্থান অধিকার করে আছে। ২০১৪ সালে Tim Medin DerbyCon-এ প্রথম এই আক্রমণ প্রকাশ্যে প্রদর্শন করেন। তখন থেকে এটি Red Team অপারেশন, পেনিট্রেশন টেস্ট এবং বাস্তব APT আক্রমণে নিয়মিতভাবে ব্যবহৃত হচ্ছে। এর সৌন্দর্য এই যে—একজন সাধারণ ডোমেইন ব্যবহারকারীর ক্রেডেনশিয়াল থাকলেই, কোনো বিশেষ প্রিভিলেজ ছাড়া, সার্ভিস অ্যাকাউন্টের পাসওয়ার্ড অফলাইনে ক্র্যাক করার সুযোগ পাওয়া যায়। এই ব্লগে আমরা Kerberoasting-এর প্রযুক্তিগত ভিত্তি, আক্রমণের ধাপ, ব্যবহৃত টুল এবং কার্যকর প্রতিরক্ষা কৌশল বিশদে আলোচনা করব।

Kerberos প্রোটোকলের সংক্ষিপ্ত বিবরণ

Kerberos হলো একটি নেটওয়ার্ক অথেনটিকেশন প্রোটোকল যা MIT-তে ডিজাইন করা হয় এবং Active Directory এটিকে ডিফল্ট অথেনটিকেশন মেকানিজম হিসেবে ব্যবহার করে। এর মূল উপাদান তিনটি—Client, Service এবং Key Distribution Center বা KDC (Active Directory-তে Domain Controller এই ভূমিকা পালন করে)।

Kerberos অথেনটিকেশনের একটি সরলীকৃত ফ্লো এমন—ব্যবহারকারী লগইন করলে Client KDC-র Authentication Service-এ AS-REQ পাঠায়, এবং সফল হলে একটি Ticket Granting Ticket বা TGT পায়। কোনো সার্ভিসে অ্যাক্সেসের জন্য Client TGT সহ KDC-র Ticket Granting Service-এ TGS-REQ পাঠিয়ে Service Ticket (TGS) চায়। এই Service Ticket সার্ভিসের নিজস্ব পাসওয়ার্ড hash দিয়ে এনক্রিপ্ট করা থাকে।

এই শেষ পয়েন্টটিই Kerberoasting-এর মূল ভিত্তি। যেহেতু Service Ticket সার্ভিস অ্যাকাউন্টের পাসওয়ার্ড (NTLM hash) থেকে derived কী দিয়ে এনক্রিপ্ট করা, এবং যেকোনো ডোমেইন ব্যবহারকারী যেকোনো SPN-এর জন্য TGS অনুরোধ করতে পারেন—আক্রমণকারী এই টিকেট সংগ্রহ করে অফলাইনে পাসওয়ার্ড Bruteforce করতে পারেন।

SPN এবং Service Account

Service Principal Name বা SPN হলো একটি অনন্য আইডেন্টিফায়ার যা Kerberos-কে নির্দিষ্ট সার্ভিস ইন্সট্যান্স চিহ্নিত করতে সাহায্য করে। উদাহরণ—"MSSQLSvc/sqlserver.domain.com:1433" একটি SQL Server-এর SPN। SPN সাধারণত একটি Active Directory অ্যাকাউন্টের সঙ্গে যুক্ত থাকে—হয় Computer Account বা User Account।

Service Account-এ SPN সেট করা হয় যখন SQL Server, IIS, Exchange, SharePoint বা কাস্টম অ্যাপ্লিকেশন একটি Domain User Account-এর অধীনে চলে। সমস্যা হলো অনেক প্রতিষ্ঠান বছরের পর বছর একই দুর্বল পাসওয়ার্ড সেট করে—কারণ এসব অ্যাকাউন্ট নিয়মিত ব্যবহার করা হয় না, এবং পাসওয়ার্ড পরিবর্তন একাধিক সার্ভিসকে ভেঙে দিতে পারে।

এই Service Account-গুলোর প্রায়ই উচ্চ প্রিভিলেজ থাকে—কখনো কখনো Domain Admin গ্রুপের সদস্যও হয়। তাই এদের পাসওয়ার্ড ক্র্যাক করতে পারলে আক্রমণকারী সরাসরি ডোমেইন নিয়ন্ত্রণের পথে পৌঁছাতে পারেন।

Kerberoasting আক্রমণের ধাপ

Kerberoasting একটি পাঁচ-ধাপের প্রক্রিয়া অনুসরণ করে। প্রথম ধাপ হলো প্রাথমিক অ্যাক্সেস—একটি বৈধ ডোমেইন ইউজার ক্রেডেনশিয়াল প্রয়োজন। এটি ফিশিং, পাসওয়ার্ড স্প্রে, ক্রেডেনশিয়াল ফাঁস বা প্রাথমিক compromise থেকে পাওয়া যেতে পারে। উল্লেখযোগ্য যে—কোনো বিশেষ প্রিভিলেজের প্রয়োজন নেই, একটি সাধারণ ব্যবহারকারী অ্যাকাউন্টই যথেষ্ট।

দ্বিতীয় ধাপ SPN Enumeration—ডোমেইনে কোন কোন অ্যাকাউন্টে SPN সেট করা আছে তা খুঁজে বের করা। LDAP কোয়েরি দিয়ে এটি সহজে করা যায়—(&(samAccountType=805306368)(servicePrincipalName=*)) ফিল্টার ব্যবহার করে SPN সহ ইউজার অ্যাকাউন্ট তালিকা পাওয়া যায়। PowerView, BloodHound, ldapsearch বা impacket-এর GetUserSPNs.py এই কাজে ব্যবহৃত হয়।

তৃতীয় ধাপ TGS Request—প্রতিটি লক্ষ্য SPN-এর জন্য Service Ticket অনুরোধ করা। উইন্ডোজ-এ klist কমান্ড এবং Add-Type -AssemblyName System.IdentityModel দিয়ে এটি করা যায়। Linux থেকে impacket-এর GetUserSPNs.py সরাসরি Kerberoastable অ্যাকাউন্টগুলোর জন্য টিকেট সংগ্রহ করে।

চতুর্থ ধাপ Ticket Extraction—সংগৃহীত টিকেট থেকে এনক্রিপ্টেড অংশ বের করে Hashcat-পঠনযোগ্য ফরম্যাটে রূপান্তর করা। GetUserSPNs.py সরাসরি hashcat format-এ output দেয়। পঞ্চম ধাপ Offline Cracking—hashcat -m 13100 spns.txt rockyou.txt কমান্ড দিয়ে বা john the ripper দিয়ে dictionary, rule-based বা mask attack চালানো।

ব্যবহৃত টুল ও কমান্ড

আধুনিক Kerberoasting-এ ব্যবহৃত প্রধান টুলগুলো হলো—Impacket-এর GetUserSPNs.py (Python, ক্রস-প্ল্যাটফর্ম), Rubeus (C#, Windows), PowerView (PowerShell), এবং BloodHound (visualization)। প্রতিটি টুলের নিজস্ব সুবিধা আছে।

GetUserSPNs.py কমান্ডের একটি সাধারণ উদাহরণ—GetUserSPNs.py -dc-ip 192.168.1.10 -request -outputfile hashes.txt domain.local/user:password। এটি স্বয়ংক্রিয়ভাবে SPN enumeration, TGS request এবং hash extraction করে।

Rubeus-এর কমান্ড—Rubeus.exe kerberoast /outfile:hashes.txt। এটি Windows পরিবেশে stealthier কারণ এটি Domain Controller-এ সরাসরি না গিয়ে ডোমেইন-যুক্ত মেশিন থেকে কাজ করে। Rubeus AES বনাম RC4 অ্যালগরিদমের নির্বাচন, নির্দিষ্ট SPN টার্গেটিং এবং opsec মোড সমর্থন করে।

Hashcat-এ mode 13100 RC4-HMAC এনক্রিপ্টেড টিকেট ক্র্যাক করে, mode 19700 AES256-CTS-HMAC-SHA1। RC4 অনেক দ্রুত ক্র্যাক হয়, কিন্তু আধুনিক ডোমেইনে AES ডিফল্ট। আক্রমণকারীরা প্রায়ই tgsrepcrack.py বা hashcat-এ rule-based attack দিয়ে দক্ষতা বাড়ান।

বাস্তব প্রভাব ও কেস স্টাডি

Kerberoasting বহু বাস্তব breach-এ গুরুত্বপূর্ণ ভূমিকা রেখেছে। FIN6, Conti, LockBit-এর মতো ransomware গ্রুপ নিয়মিতভাবে এটি ব্যবহার করে initial foothold থেকে privilege escalation-এ। বাস্তব পেনিট্রেশন টেস্টে দেখা গেছে—মাঝারি থেকে বড় এন্টারপ্রাইজে গড়ে ১০-২০% Kerberoastable অ্যাকাউন্টে দুর্বল পাসওয়ার্ড থাকে।

মাইক্রোসফট সিকিউরিটি রিসার্চাররা রিপোর্ট করেছেন যে Kerberoasting বর্তমানে শীর্ষ ৩টি AD আক্রমণ কৌশলের একটি। MITRE ATT&CK-এ এটি T1558.003 হিসেবে নথিভুক্ত। SolarWinds হামলায়ও আক্রমণকারীরা পার্শ্ব আন্দোলনের জন্য অনুরূপ কৌশল ব্যবহার করেছিল বলে অনুমান।

প্রতিরোধ ও প্রতিকার

Kerberoasting থেকে রক্ষা পেতে একটি বহুমুখী কৌশল প্রয়োজন। প্রথম এবং সর্বাধিক গুরুত্বপূর্ণ—Service Account-এর জন্য শক্তিশালী, দীর্ঘ এবং অনুমান-অযোগ্য পাসওয়ার্ড নিশ্চিত করা। অন্তত ২৫ অক্ষরের র‍্যান্ডম পাসওয়ার্ড সুপারিশ করা হয়, কারণ এত দীর্ঘ পাসওয়ার্ড বাস্তব সময়ে Bruteforce করা প্রায় অসম্ভব।

দ্বিতীয়, Group Managed Service Accounts বা gMSA ব্যবহার করুন। gMSA পাসওয়ার্ড স্বয়ংক্রিয়ভাবে পরিচালিত হয় Active Directory দ্বারা, প্রতি ৩০ দিনে আপডেট হয়, এবং ব্যবহারকারীদের কখনো জানার প্রয়োজন হয় না। মাইক্রোসফট ২০১২-পরবর্তী ডোমেইনে এটি দৃঢ়ভাবে সুপারিশ করে।

তৃতীয়, Service Account-গুলোতে শুধু Required প্রিভিলেজ প্রদান করুন—Principle of Least Privilege। Domain Admin বা Enterprise Admin গ্রুপে Service Account রাখা একেবারে এড়িয়ে চলুন। চতুর্থ, পুরোনো RC4 এনক্রিপশন বন্ধ করুন এবং AES-only প্রয়োগ করুন। RC4 দ্রুত ক্র্যাকযোগ্য, AES অনেক বেশি প্রতিরোধী।

পঞ্চম, ডিটেকশন—Kerberoasting Domain Controller-এর Event ID 4769 (Kerberos service ticket request) উৎপন্ন করে। যদি একটি অ্যাকাউন্ট স্বল্প সময়ে অনেক ভিন্ন SPN-এর জন্য টিকেট অনুরোধ করে, এটি সন্দেহজনক। Microsoft Defender for Identity, Azure AD Identity Protection, এবং কাস্টম SIEM rule এই প্যাটার্ন সনাক্ত করতে পারে।

ষষ্ঠ, Honeypot বা Decoy SPN—একটি ভুয়া SPN সহ অ্যাকাউন্ট তৈরি করুন যা কখনো বৈধভাবে ব্যবহৃত হবে না। কেউ এই অ্যাকাউন্টের জন্য টিকেট অনুরোধ করলে নিশ্চিতভাবে আক্রমণের প্রমাণ। সপ্তম, নিয়মিত Service Account অডিট—কোন অ্যাকাউন্টে SPN আছে, কতদিন পাসওয়ার্ড পরিবর্তিত হয়নি, প্রিভিলেজ কী।

অষ্টম, Tier Model বাস্তবায়ন—Active Directory-তে অ্যাকাউন্টগুলোকে Tier 0 (Domain Controller), Tier 1 (Server), Tier 2 (Workstation) তে আলাদা করা যাতে compromise এক স্তর থেকে অন্য স্তরে ছড়াতে না পারে। নবম, MFA—যেখানে সম্ভব, বিশেষত উচ্চ-প্রিভিলেজ অ্যাকাউন্টে।

অন্যান্য Kerberos আক্রমণের সঙ্গে সম্পর্ক

Kerberoasting Kerberos-ভিত্তিক আক্রমণ পরিবারের একটি সদস্য। অন্যান্য সদস্যদের মধ্যে রয়েছে AS-REP Roasting (ব্যবহারকারীদের জন্য pre-authentication বন্ধ থাকলে), Pass-the-Ticket, Pass-the-Hash, Silver Ticket (নির্দিষ্ট সার্ভিসের forged TGS), Golden Ticket (krbtgt hash দিয়ে forged TGT), এবং Skeleton Key (ডোমেইন কন্ট্রোলারে memory injection)।

এই আক্রমণগুলো প্রায়ই একসঙ্গে chain করা হয়। একজন আক্রমণকারী Kerberoasting দিয়ে initial credentials সংগ্রহ করতে পারেন, তারপর সেটিকে privilege escalation-এর জন্য ব্যবহার করতে পারেন, এবং চূড়ান্তভাবে Golden Ticket তৈরি করে দীর্ঘমেয়াদী domain dominance প্রতিষ্ঠা করতে পারেন।

আধুনিক প্রতিরক্ষা টুল

মাইক্রোসফট এবং তৃতীয় পক্ষের নিরাপত্তা ভেন্ডরগুলো Kerberoasting-এর বিরুদ্ধে বিশেষায়িত টুল প্রদান করছে। Microsoft Defender for Identity (পূর্বে Azure ATP) নেটওয়ার্ক ট্রাফিক ও ইভেন্ট লগ বিশ্লেষণ করে সন্দেহজনক Kerberos অ্যাক্টিভিটি সনাক্ত করে। Splunk, Elastic, Microsoft Sentinel-এ বিল্ট-ইন Kerberoasting ডিটেকশন rule রয়েছে।

CrowdStrike, SentinelOne, Carbon Black-এর মতো EDR সলিউশন endpoint-এ Rubeus বা অনুরূপ টুলের behavior সনাক্ত করতে পারে। BloodHound Enterprise অবিরত AD attack path বিশ্লেষণ করে এবং Kerberoastable অ্যাকাউন্টগুলো হাইলাইট করে।

Key Takeaways

Kerberoasting একটি ক্লাসিক উদাহরণ যেখানে একটি বৈধ প্রোটোকল ফিচার নিরাপত্তা দুর্বলতার কারণ হয়ে দাঁড়ায়। Kerberos নিজে দুর্বল নয়—সমস্যা হলো দুর্বল পাসওয়ার্ড নীতি এবং অযথা প্রিভিলেজযুক্ত Service Account। এই আক্রমণ Active Directory পরিবেশে এতটাই প্রচলিত যে প্রতিটি প্রতিরক্ষাকারীর এটি বোঝা এবং প্রতিরোধ করতে জানা অপরিহার্য।

ভালো খবর হলো, সঠিক অনুশীলন—gMSA, শক্তিশালী পাসওয়ার্ড, AES enforcement, নিয়মিত অডিট, এবং proactive monitoring—মিলে Kerberoasting-এর ঝুঁকি প্রায় শূন্যে নামিয়ে আনা সম্ভব। বাংলাদেশের ক্রমবর্ধমান এন্টারপ্রাইজ পরিবেশে Active Directory নিরাপত্তা একটি গুরুত্বপূর্ণ দক্ষতা, এবং Kerberoasting বোঝা সেই যাত্রার একটি অপরিহার্য পদক্ষেপ।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Kerberoasting MCQ Quiz-টি দিন!

Related articles

back to all articles