BloodHound Analysis: হ্যাকারদের দৃষ্টিকোণ থেকে Active Directory-র দুর্বলতা বিশ্লেষণ!
BloodHound টুল ব্যবহার করে Active Directory-র Attack Path বিশ্লেষণ, Cypher Query ও Defensive Use নিয়ে বিস্তারিত গাইড।
Active Directory-র জটিল ও বিস্তৃত গঠন প্রায় প্রতিটি Enterprise Network-এর মেরুদণ্ড। হাজার হাজার User, Group, Computer, OU, GPO— এ সবের মধ্যে অসংখ্য Trust Relationship এবং Permission। একজন Domain Administrator-ও প্রায়ই জানেন না তার Domain-এর কোথায় কোন দুর্বলতা লুকিয়ে আছে। কিন্তু একজন আক্রমণকারী একটি সাধারণ User Account থেকে শুরু করে কীভাবে Domain Admin-এ পৌঁছাবেন, এই Question-এর উত্তর দেওয়ার জন্য তৈরি হয়েছে BloodHound।
BloodHound হলো একটি Open Source Graph-Based Active Directory Analysis Tool যা ২০১৬ সালে Andy Robbins, Will Schroeder এবং Rohan Vazarkar তৈরি করেছিলেন। এটি Active Directory-র Object এবং তাদের Relationship-কে একটি Graph হিসেবে Visualize করে, যেখান থেকে শর্টেস্ট Attack Path খুঁজে বের করা যায়। আজ এই টুল Penetration Tester, Red Team এবং Blue Team— সবার জন্য অপরিহার্য। এই বিস্তারিত নিবন্ধে আমরা BloodHound-এর কাজ, ব্যবহার এবং প্রতিরক্ষার দিক নিয়ে আলোচনা করব।
BloodHound-এর মূল ধারণা
BloodHound-এর কেন্দ্রীয় ধারণা হলো Graph Theory-র প্রয়োগ। Active Directory-র প্রতিটি Object একটি Node এবং তাদের মধ্যে Permission, Membership, Session, এবং Trust হলো Edge। যখন আক্রমণকারী একটি Compromised User থেকে শুরু করে Target পর্যন্ত পৌঁছাতে চান, BloodHound একটি Shortest Path Algorithm চালিয়ে সবচেয়ে সংক্ষিপ্ত Attack Chain বের করে দেয়।
Neo4j Graph Database BloodHound-এর Backend-এ ব্যবহৃত হয়। Data Collection টুল— SharpHound (Windows) বা AzureHound (Azure AD)— Active Directory থেকে তথ্য সংগ্রহ করে JSON File-এ Export করে। এই JSON BloodHound GUI-তে Import করা হয় এবং Neo4j Database-এ Load হয়। GUI Cypher Query Language ব্যবহার করে Custom Analysis সম্ভব করে।
BloodHound-এ অনেক ধরনের Edge রয়েছে— MemberOf (Group Membership), AdminTo (Local Admin Right), HasSession (Active User Session), CanRDP, CanPSRemote, GenericAll, GenericWrite, WriteOwner, ForceChangePassword, AddMembers, AllowedToDelegate, ReadLAPSPassword, এবং আরও অনেক। প্রতিটি Edge একটি Attack Primitive-কে নির্দেশ করে।
BloodHound Community Edition (CE) এবং Enterprise Version দুটিই রয়েছে। Community Edition Open Source এবং Free, Enterprise Version SpecterOps-এর Commercial Product যা Continuous Monitoring এবং Advanced Path Analysis প্রদান করে।
Data Collection: SharpHound-এর কাজ
SharpHound হলো BloodHound-এর Data Collector যা C#-এ লেখা। এটি LDAP Query, SMB, এবং Local Session Enumeration-এর মাধ্যমে Active Directory থেকে বিস্তৃত তথ্য সংগ্রহ করে।
কয়েকটি প্রধান Collection Method রয়েছে। Default Collection-এ Group Membership, Domain Trust, User Account Information, ACL Information সংগ্রহ হয়। LocalGroup Collection-এ প্রতিটি Domain-Joined Computer-এর Local Administrator, Remote Desktop Users, এবং Distributed COM Users Group-এর Member তথ্য সংগ্রহ হয়। Session Collection-এ প্রতিটি Computer-এ Active User Session-এর তথ্য— যা Lateral Movement Planning-এ গুরুত্বপূর্ণ।
LoggedOn Collection-এ Active Logon Session-এর তথ্য সংগ্রহ হয়। ACL Collection-এ Object Permission-এর বিস্তারিত। ObjectProperties Collection-এ User-এর শেষ Logon Time, Password Last Set, Service Principal Name।
SharpHound ব্যবহার করতে কেবল Domain User Account-এর Standard Read Permission প্রয়োজন। অর্থাৎ একটি সাধারণ User Account-ই পুরো Domain Map করতে যথেষ্ট। এটিই BloodHound-কে আক্রমণকারীদের জন্য এত শক্তিশালী টুল করে তুলেছে।
Stealth Mode Collection (-Stealth Flag) ছোট Footprint রাখে এবং Detection এড়াতে সাহায্য করে। তবে আধুনিক EDR এবং Microsoft Defender for Identity SharpHound Pattern Detect করতে পারে। তাই Red Team Operation-এ এখন AzureHound বা Custom Collection ব্যবহার বাড়ছে।
Attack Path Analysis
BloodHound GUI-তে অনেক Pre-Built Query রয়েছে। "Find All Domain Admins" থেকে শুরু করে "Find Shortest Paths to Domain Admins" পর্যন্ত। কিন্তু BloodHound-এর প্রকৃত শক্তি Cypher Query Language-এ।
ক্লাসিক একটি Attack Path উদাহরণ— একজন Compromised Help Desk User-এর কাছে Password Reset Permission আছে IT Support Group-এর Member-দের ওপর। IT Support Group-এর একজন Member-এর Server Operators Group-এ Membership আছে। Server Operators Group-এর সদস্যরা Domain Controller-এ Logon করতে পারেন। সুতরাং Help Desk User → IT Support User → Domain Controller → Domain Admin— এই পথে আক্রমণ সম্ভব।
Cypher Query দিয়ে এই Path খুঁজে বের করা যায়। যেমন একটি Query শর্টেস্ট Path বের করে যা GenericAll, GenericWrite, WriteOwner বা ForceChangePassword Edge ব্যবহার করে Domain Admin-এ পৌঁছায়।
Most Privileged Edge-গুলো গুরুত্বের ক্রম অনুসারে— GenericAll (Full Control, যেকোনো Action সম্ভব), GenericWrite (যেকোনো Attribute পরিবর্তন), WriteDacl (ACL পরিবর্তন), WriteOwner (Owner হওয়া), AllExtendedRights (Reset Password সহ সব Extended Right), ForceChangePassword (পাসওয়ার্ড Reset), AddMembers (Group-এ Member যোগ)।
Kerberos এবং Delegation Attack
BloodHound Kerberos Delegation-জনিত আক্রমণের পথ চিহ্নিত করতে বিশেষভাবে কার্যকর। Unconstrained Delegation-এ একটি Server যেকোনো User-এর TGT সংরক্ষণ করতে পারে। আক্রমণকারী এমন Server Compromise করে Domain Admin-এর Authentication Wait করেন এবং তাদের TGT চুরি করেন।
Constrained Delegation-এ Service Account নির্দিষ্ট Service-এর জন্য User-এর Identity Impersonate করতে পারে। যদি একটি Compromised Service Account-এর কাছে Sensitive Service-এর জন্য Constrained Delegation থাকে, এটি গুরুতর সমস্যা।
Resource-Based Constrained Delegation বা RBCD সবচেয়ে নতুন এবং বিপজ্জনক। Computer Object-এর msDS-AllowedToActOnBehalfOfOtherIdentity Attribute পরিবর্তন করে আক্রমণকারী যেকোনো User হিসেবে সেই Computer-এ Authentication করতে পারে। GenericWrite বা GenericAll Permission যেকোনো Computer Object-এ থাকলে RBCD Attack সম্ভব।
Kerberoasting এবং AS-REP Roasting-এর Pre-condition-গুলো BloodHound-এ দেখা যায়। Service Principal Name Set করা User চিহ্নিত করে Kerberoasting-এর সম্ভাব্য Target বের করা যায়। Pre-Authentication Disabled User AS-REP Roasting-এর জন্য Vulnerable।
ADCS Attack Path
Active Directory Certificate Services-এ একাধিক দুর্বলতা চিহ্নিত হয়েছে ESC1 থেকে ESC15 পর্যন্ত। BloodHound Community Edition এবং Certipy-র Integration-এ এই Attack Path Visualize করা যায়।
ESC1 হলো Misconfigured Certificate Template যেখানে Low-Privileged User যেকোনো Subject-এর Name দিয়ে Certificate Request করতে পারে। ESC8 হলো ADCS Web Enrollment-এ NTLM Relay। ESC6 হলো EDITF_ATTRIBUTESUBJECTALTNAME2 Flag সক্রিয় থাকা।
BloodHound-এর Newer Version-এ Cert Template, Enterprise CA এবং Issuance Policy-র মতো নতুন Node Type এবং Enroll, AutoEnroll, WriteDacl-এর মতো নতুন Edge যুক্ত হয়েছে।
বাস্তব ব্যবহার ও কেস স্টাডি
BloodHound-এর Public Release-এর পর থেকে অসংখ্য Real-World Attack-এ এর ব্যবহার দেখা গেছে। Mandiant, CrowdStrike, এবং অন্যান্য Threat Intelligence Firm-এর Report-এ বিভিন্ন APT Group-এর হাতে BloodHound ব্যবহারের প্রমাণ পাওয়া গেছে।
২০২০ সালে SolarWinds Attack-এর Post-Exploitation Phase-এ আক্রমণকারীরা BloodHound বা সমজাতীয় AD Mapping Tool ব্যবহার করেছিল বলে মনে করা হয়। Ransomware Group যেমন Conti, LockBit, ALPHV প্রায় সবাই তাদের Playbook-এ BloodHound অন্তর্ভুক্ত করেছে।
Penetration Test-এ একটি সাধারণ Discovery হলো Tier 0 Boundary Violation— Domain Admin Group-এর সদস্য Tier 1 Server-এ Logon করেছেন যা পরে Compromise হয়েছে। BloodHound-এর "Find Computers Where Domain Admins Have Sessions" Query এই ধরনের ঝুঁকি Highlight করে।
আরেকটি সাধারণ Finding হলো Privileged Group-এ অতিরিক্ত Member। Account Operators Group-এর সদস্য অনেক User Account Modify করতে পারে, কার্যত Domain Admin-এর প্রায় সমতুল্য Power। DnsAdmins Group ঐতিহাসিকভাবে DLL Loading-এর মাধ্যমে Domain Controller-এ Code Execution-এর অনুমতি দিত।
Defensive Use: Blue Team-এর জন্য BloodHound
BloodHound শুধু Red Team-এর হাতিয়ার নয়। Blue Team-এর জন্যও এটি অপরিহার্য। SpecterOps-এর BloodHound Enterprise এই Defensive Use Case-এর জন্য বিশেষভাবে তৈরি।
নিয়মিত BloodHound Scan চালিয়ে আপনার Domain-এর Attack Path চিহ্নিত করুন। প্রতিটি Critical Attack Path-কে Mitigation Action-এর মাধ্যমে বন্ধ করুন।
Identity Tiering মডেল গ্রহণ করুন। Tier 0 (Domain Controller, AD Infrastructure), Tier 1 (Server, Application), Tier 2 (Workstation)-এর মধ্যে কঠোর বিভাজন রাখুন। Tier 0 Account কখনো Tier 1 বা Tier 2-তে Logon করবে না।
Unused Permission চিহ্নিত করে Cleanup করুন। Account Operators, Server Operators, Backup Operators-এর মতো Built-In Privileged Group-এর Member পর্যালোচনা করুন। অপ্রয়োজনীয় Membership Remove করুন।
Privileged Access Workstation বা PAW Deploy করুন। Privileged User শুধু PAW থেকে Privileged Action সম্পাদন করবেন। Just-In-Time Privileged Access সক্রিয় করুন Microsoft PIM বা CyberArk-এর মাধ্যমে।
প্রতিরোধ ও প্রতিকার
BloodHound Detection
BloodHound Activity Detect করার জন্য Microsoft Defender for Identity, Splunk, Sentinel-এ Custom Detection Rule তৈরি করুন। SharpHound-এর LDAP Query Pattern— বিশেষ করে গ্রুপ Member Enumeration-এর Pattern— Detect করা যায়।
Anomalous LDAP Query Volume নিরীক্ষণ করুন। একটি User Account অল্প সময়ে যদি হাজারটি LDAP Query চালায়, এটি Reconnaissance-এর লক্ষণ।
Honey User এবং Honey Group তৈরি করুন। আকর্ষণীয় নামের (যেমন "BackupAdmin", "ServiceAccount") Decoy Object তৈরি করুন। কেউ এদের সাথে Interact করলে Alert ট্রিগার হবে।
Permission Hardening
Tiered Administration Model কঠোরভাবে প্রয়োগ করুন। প্রতিটি Tier-এ আলাদা Admin Account। Tier 0 Admin-এর Tier 1/2-এ Logon সম্পূর্ণ Block।
Protected Users Group ব্যবহার করুন Privileged Account-এর জন্য। এই Group-এর সদস্যদের Credential Local Machine-এ Cache হয় না, NTLM ব্যবহার করা যায় না, এবং Kerberos Ticket-এর Lifetime সীমিত।
Authentication Policy এবং Silos কনফিগার করুন যা নির্দিষ্ট Account-কে নির্দিষ্ট Computer থেকেই Logon করতে দেয়।
LAPS এবং Service Account Management
Local Administrator Password Solution বা LAPS প্রয়োগ করুন যা প্রতিটি Computer-এর Local Admin Password Random এবং Rotate করে। Windows LAPS এখন Windows-এর Built-In Feature।
Service Account-এর জন্য Group Managed Service Account বা gMSA ব্যবহার করুন যা স্বয়ংক্রিয়ভাবে Password Rotate করে এবং কোনো User-এর কাছে Password Know করতে হয় না।
ADCS Configuration যাচাই করুন। PSPKIAudit, Certify, Certipy-এর মতো Tool দিয়ে Certificate Template Audit করুন। Vulnerable Template গুলো ঠিক করুন বা Disable করুন।
Continuous Monitoring
BloodHound Enterprise বা SpecterOps-এর Sample Reduction Algorithm ব্যবহার করে Continuous Attack Path Reduction চালান। প্রতিটি Mitigation-এর পর Path Count পরিমাপ করুন এবং Progress Track করুন।
Microsoft Defender for Identity, Falcon Identity, এবং Tenable.ad-এর মতো ITDR (Identity Threat Detection and Response) Platform Deploy করুন।
BloodHound আধুনিক Active Directory Security-র সবচেয়ে বিপ্লবী Tool-গুলোর একটি। এটি Defender-দের চোখে প্রায় অদৃশ্য Attack Path-গুলো দৃশ্যমান করে তুলেছে, কিন্তু একই Tool আক্রমণকারীদের হাতেও সমান শক্তিশালী। সঠিক ব্যবহারে এটি একটি Continuous Security Improvement Platform হিসেবে কাজ করতে পারে— প্রতিটি Scan আপনাকে নতুন দুর্বলতা দেখায়, প্রতিটি Mitigation Attack Surface ছোট করে। Tiered Administration Model, Permission Hardening, LAPS Deployment, এবং Regular Path Analysis-এর সমন্বয়ে আপনি Active Directory-কে Hacker-দের জন্য কঠিন এবং Defender-দের জন্য পরিষ্কার করে তুলতে পারেন। Identity আজ নতুন Perimeter, এবং BloodHound এই Perimeter-কে রক্ষা করার একটি অপরিহার্য Tool।
আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ BloodHound Analysis MCQ Quiz-টি দিন!
Related articles
AD Trusts: How Hackers Weaponize Network Trust to Hijack Systems
8 min
AS-REP Roasting: Hacking Techniques to Gain Access to Kerberos Accounts Without Passwords
8 min
Constrained Delegation: Security Risks and Solutions in Active Directory
12 min
Kerberoasting: The Cyber Technique for Cracking Weak Active Directory Passwords
10 min

