ماژول پنج: System Hacking
System Hacking دارای سه مرحله است:
Gaining Access
Maintaining Access
Clearing Tracks
به عبارت دیگر، هر سیستمی را که بخواهیم Hack کنیم، باید این سه مرحله را رعایت بنماییم.
Gaining Access شامل دو قسمت است:
قسمت اول: Password Cracking
قسمت دوم: Privilege Escalation
نکته: یک Password امن باید شامل ۱۲ کاراکتر و پیچیده باشد.
Password Cracking
برای Crack کردن Password چند شیوه عمده وجود دارد:
۱- Passive Online Attack:
در این نوع روش، از تکنیک هایی استفاده می شود که مستقیما” بر روی سیستم قربانی، حمله ای انجام نمی شود مانند Sniff کردن ترافیک (به معنای شنود و آنالیز ترافیک تبادل شده میان Device های مختلف توسط یک نرم افزار Packet Sniffer مانند Cain در ویندوز یا Wireshark در کالی) و یا حملات MITM (Man In The Middle) ( ارتباط مبدا و مقصد از طریق Hacker صورت می گیرد.).
بدین ترتیب Hash متعلق به Password ارسالی از مبدا به مقصد (مانند Password ارسالی از مبدا به یک وب سایت) استخراج می شود و Password زده می شود (به این ترتیب اهمیت وجود SSL و استفاده از Certificate مشخص می گردد)
۲- Active Online Attack:
در این روش از ارسال و نصب Key Logger یا Trojan بر روی سیستم قربانی استفاده می کنیم.
۳- Offline Attack:
در این روش با استفاده از SAM File سیستم قربانی، Hash متعلق به Password را استخراج می کنیم و Password را می زنیم. یا از DNA ها (Distributed Network Attack) استفاده می کنیم.
DNA ها، ابزارهایی هستند که از Process مجموعه سیستم های یک شبکه استفاده می کنند و از این طریق Process لازم برای زدن Password را فراهم می کنند. بدین ترتیب که سیستم های یک شبکه را آلوده می کنند و از Idle Load متعلق به CPU آن سیستم ها برای انجام Process زدن Password استفاده می نمایند.
Rainbow Table: جدولی است که شامل کلید Hash های Password های ممکن به همراه Password هایی است که ممکن است با آن Hash ها ساخته شود. از این جدول می توان در Attack ها استفاده کرد و با استفاده از Hash، دامنه Password های ممکن آن Hash، استخراج می گردد.
۴- Social Engineering:
در این روش، با استفاده از روابط در شبکه های اجتماعی، می توان Password های مورد نظر افراد را بدست آورد.
برخی از مفاهیم در Attack:
الف- Dictionary Attack:
حمله با استفاده از فایلی است که یکسری Password های ممکن به آن داده شده است. (اسم ها و کلمات Dictionary هم می تواند تشکیل دهنده قسمتی از Password قرار یافته در این فایل باشند)
ب- Brute Force Attack:
حمله با بررسی تمام حالات ممکن است که تا رسیدن به Password بررسی می شود. مدت زمان به سرانجام رسیدن این نوع Attack، از آنجاییکه که تمام حالات ممکن را بررسی می کند، بسته به پیچیدگی Password و قدرت پردازش سیستمی دارد که نرم افزار Brute Force بر روی آن نصب می شود. برای افزایش قدرت پردازش، از سری کردن کارت های گرافیکی استفاده می شود زیرا قدرت پردازش GPU از CPU به لحاظ الگوریتم متفاوت پردازش، بیشتر است.
در روش Brute Force، یک ست کاراکتر، مثلا” (a-z) و (۰-۹) به عنوان ورودی به نرم افزار داده می شود و از ترکیب آنها، Password استخراج می گردد.
ج- Syllable Attack:
از ترکیبAttack Dictionary وAttack Brute Force، نوعی از حمله بنام Syllable Attack ایجاد می گردد.
د- Rule Base Attack:
در این نوع حمله، اطلاعاتی در مورد Password وجود دارد. (مثلا” می دانیم که قسمتی از Password، نام سگ یا شماره ملی یا تاریخ تولد فرد است). در این صورت از این قسمت بعلاوه تعداد کاراکتر های تخمینی برای بدست آوردن Password استفاده می نماییم
نکته: Password های ویندوز در SAM File ذخیره می گردد.
SAM: Secondary Account Manager
مسیر SAM File:
Windows\System32\Config——-> SAM
چون SAM فایل با Boot شدن سیستم عامل، باز می شود، امکان کپی کردن آن وجود ندارد.
البته در ویندوز XP یک Backup از SAM File وجود دارد که می توان آن را کپی کرد و کاملا” مشابه SAM File است.
در ورژن های بالاتر ویندوز مسیر قرار گیری این Backup:
\Config\ Regback——–> SAM
می باشد که البته آن را هم نمی توان کپی کرد.
برای کپی کردن SAM File می توان با یک CD لینوکس Boot کرد و فایل را کپی کرد.
از نرم افزارهای Crack کردن Password به صورت Offline استفاده می شود. برخی از این نرم افزار ها عبارتند از:
(GUI)(هابیل و قابیل) Cain & Abel
Fgdump (CLI)
Ophcrack
Lophtcrack
نکته: ویندوز از پروتکل NTLM برای Hash کردن Password ها استفاده می نماید:
NTLM v1
NTLM v2
ورژن یک از حداکثر ۱۴ کاراکتر برای طول Hash استفاده می کند
ورژن دو از حداکثر ۲۱ کاراکتر برای طوی Hash استفاده می کند
در این نرم افزار، در قسمت Cracker TAB، از منوی سمت چپ، گزینه LM&NTLM Hashes را انتخاب می کنیم، بر روی + کلیک می کنیم و گزینه Import Hash from Local System را انتخاب می کنیم. بر روی User مورد نظر کلیک راست می کنیم، گزینه Brute Force Attack و سپس NTLM Hash را انتخاب می کنیم. در قسمت Predefined، تخمین خود از اجزا تشکیل دهنده Password را انتخاب می نماییم، حداقل و حداکثر طول Password را انتخاب می کنیم و Start را کلیک می کنیم.
نکته: در صورتیکه SAM File را از سیستم دیگری کپی کرده باشیم، بعد از کلیک بر روی +، گزینه Import Hashes from a SAM Database را انتخاب می کنیم. همچنین در قسمت Boot Key، فایل System را که در کنار SAM File قرار دارد، وارد می کنیم.
نکته: اتصال به Putty به Kali با استفاده از کاربر Root:
۱- ابتدا سرویس SSH را Start می کنیم:
Service SSH Start
۲- فایل پیکربندی SSH را از در مسیر زیر باز و Edit می کنیم:
nano /ete/ssh/sshd_config
۳- لاین #permitrootlogin no را تبدیل به permitrootlogin yes می نماییم (# را بر می داریم)
۴- CTRL+o را به منظور Save و سپس CTRL+x را اجرا می کنیم و از Editor خارج می شویم.
۵- با دستور service SSH restart سرویس SSH را Restart می نماییم.
از نرم افزارهای دیگر برای Crack نمودن Fgdump، Password است:
به این منظور ابتدا مسیر فایل Fgdump.exe را در کالی پیدا می کنیم:
locate fgdump.exe
سپس با استفاده از WinSCP، فایل fgdump.exe را در ویندوز کپی می کنیم.
بر روی فایل کلیک راست نموده، Run as Administrator می نماییم. به این ترتیب یک فایل pwdump ایجاد می گردد. یک .txt به عنوان پسوند به انتهای فایل اضافه می کنیم و آن را به عنوان ورودی به Cain می دهیم (بقیه مراحل شبیه آنچه که ذکر شد، می باشد)
در Kali از فرمان john، برای Attack به Password های کاربران لینوکس استفاده می شود. برای این فرمان باید یک فایل که حاوی User set ها و Password های آنها باشد، وارد نماییم. در لینوکس برای مشاهده محتویات فایل حاوی User ها:
cat \etc\passwd
و برای مشاهده محتویات فایل حاوی Password ها:
Cat \etc\shadow
استفاده می شود.
محتویات این فایل ها در یک فایل می ریزیم:
unshadow /etc/passwd /etc/shadow > /tmp/list.db
این فرمان محتویات passwd و shadow را Concat میکند و در فایل list.db قرار می دهد.
اکنون فایل list.db را به عنوان ورودی به فرمان john می دهیم:
john –show /tmp/list.db
ولیست کاربران و Password های آنها را مشاهده می نماییم
نکته: وروی فرمان whois (whois در CLI) باید IP Address باشد.
از ابزارهای دیگر Online Attack، می توان به:
ncrack
Medusa
Hydra
اشاره نمود. ncrack از بهترین این ابزارها است. ncrack یک دستور کالی است:
نکته: می توان Router ها، سرویس های قرار یافته بر روی اینترنت، صفحات اینستاگرام، ماژول هایی نظیر FTP، SSH، Telnet، RDP را با استفاده از قابلیت های دیگر Ncrack، به منظور زدن Password، مورد Attack قرار داد.
نکته: یکی از مواردی که چرایی عدم استفاده از Telnet وجایگزینی آن با SSH را توضیح می دهد، همین گونه حملات است.
قسمت دوم Privilege Escalation، Gaining access (افزایش سطح دسترسی) می باشد
اگر بخواهیم سطح دسترسی کاربر Guest را به Root یا Admin افزایش دهیم، به اینگونه افزایش، افزایش سطح دسترسی عمومی، (Vertical یا عمودی) گفته می شود.
در حالت دیگر، که حالت افقی یا Horizontal نامیده می شود، اکانت یک کاربر را داریم، ولی نمی خواهیم سطح دسترسی آن را افزایش دهیم، بلکه که می خواهیم با کاربر دیگری که سطح دسترسی کافی دارد، به سیستم متصل شویم تا فعالیت های انجام یافته به اسم ما ثبت نشود.
در آموزش CEH، برای این منظور باید دسترسی فیزیکی یه سیستم داشته باشیم. اما در دنیای امنیت باید با استفاده از Exploit، از راه دور به سیستم دسترسی پیدا کنیم.
با استفاده از نرم افزار های Password changer، می توان یک فلش یا CD ایجاد نمود، با آن Boot کرد و Password کاربر Admin را تعویض نمود اما چون Password عوض می شود، گزینه مطلوبی نیست
یک ابزار روسی، بنام Kon-boot وجود دارد که این نرم افزار نیز ایجاد یک فلش یا CD می نماید که می توان با آن Boot نمود با این تفاوت که لازم به تغییر Password هیچ کاربری نیست و هر Username مورد استفاده در سیستم با هر Password دلخواه، login می نماید و بعد از خروج از محیط نرم افزار و Boot به شیوه معمولی، هیچیک از Password ها عوض نشده است و در نتیجه کاربران متوجه این نفوذ نمی شوند.
راه مقابله با اینگونه حملات، جلوگیری از Boot با درایو های غیر H.D.D است که بهترین آن استفاده از تکنولوژی VDI است.
باید توجه داشت که اکثر سیستم های عامل دنیا، ویندوزی هستند در سیستم عامل ویندوز، از ویندوز XP تا ویندوز ۱۰، یک زبان اسکریپت نویسی بنام VBS وجود دارد. از زمان ویندوز XP تا به حال، تغییری بر روی این زبان ایجاد نشده است و تمام اسکریپت هایی که با این زبان برای ویندوز XP نوشته شده است، بر روی ویندوز ۱۰ نیز کار می کند
فایل های VBS خود می توانند حاوی کد مخرب باشند یا اجرای آنها سبب اجرای یک بد افزار بر روی سیستم قربانی شود و چون زبان استاندارد ویندوز است، لذا آنتی ویروس ها نیز عکس العملی به اجرای آنها نشان نمی دهند.
می توان فایل VBS را به فایل های دیگر Bind کرد و به سیستم قربانی ارسال نمود و یا در یک وب سایت قرار داد تا این فایل با زدن یک دکمه، مثلا” دکمه Submit، از سوی قربانی، در سیستم وی اجرا شود.