در این بخش از دوره SEC504 از موسسه SANS به توضیح حمله Pass The Hash و طریقه انجام آن آشنا خواهید شد.
حمله Pass The Hash
در بخش پیشین در مورد نحوه شکستن کلمات عبور رمز شده توضیحاتی را خدمتتان ارائه نمودیم. در این بخش قصد داریم تا به حملهای بپردازیم که در آن یک نفوذگر با داشتن تنها هش مربوط به کلمات عبور و بدون دانستن کلمه عبور اصلی میتواند به یک سیستم نفوذ نماید.
فرض کنید که یک نفوذگر بوسیله ابزارهایی مانند pwdump یا fgdump توانسته است تا هشهای مربوط به کلمات عبور یک سیستم را استخراج نماید. در این مرحله به جای اقدام برای شکستن هشهای کلمات عبور و رسیدن به کلمات عبور اصلی، نفوذگر میتواند اقدام به انجام حمله Pass the Hash نماید.
ماشینهای ویندوزی، عملیات احراز هویت تحت شبکه را که معمولا با روشهای LANMAN Challenge/Response، NTLMv1 یا NTLMv2 صورت میگیرد، به وسیله کلمه عبور کاربر انجام نمیدهند، به جای آن با استفاده از هش رمز عبور کاربر، احراز هویت را صورت میدهند که در پروسس مربوط به احراز هویت در مموری ذخیره میشود. این پروسس LSASS میباشد که مخفف Local Security Authority Subsystem Service بوده و به طور معمول LSASS در حال اجرا بر روی دستگاه کلاینت است.
بنابراین نفوذگر میتوان زمان گیر بودن مرحله شکستن کلمه عبور را نادیده گرفته و به وسیله استخراج هش کلمات عبور، قرار دادن آن در مموری و احراز هویت با هش به دست آمده از طریق پروتکل SMB در ویندوز، اقدام به حمله Pass the Hash نموده و به سیستم قربانی بدون شکستن یا کرک کلمه عبور، دسترسی پیدا کند.
تصویر بالا، معماری مربوط به یک حمله Pass the Hash را نشان میدهد.
در گام اول نفوذگر به روشهای مختلفی اقدام به سرقت هش مربوط به کلمات عبور سیستم مینماید. این فرآیند میتواند به وسیله ابزارهایی مانند pwdump یا متاسپلویت انجام شده باشد.
در گام دوم نفوذگر از یک ابزار مربوط به Pass the Hash برای جایگزین نمودن هشهای کاربر به مموری سیستم خود استفاده میکند و با این کار هش قربانی را در سیستم خود بارگذاری مینماید تا در مرحله بعد برای احراز هویت از آن استفاده نماید.
در گام سوم نفوذگر به وسیله یکی از ابزارهای ارتباطی از راه دور که بر اساس SMB کار میکنند مانند دستور Net use، میتواند به سیستم قربانی متصل شود و با این کار با توجه به اینکه از هش قربانی استفاده میشود، کاربر در سیستم قربانی به صورت مجاز تلقی شده و تایید اعتبار میگردد.
ابزارهای مربوط به حمله Pass the Hash
Hernan Ocha یک ابزار به نام WCE را منتشر نموده است که از ویندوز ویستا، 7 و 2008 پشتیبانی میکند و نسخههای اخیر آن نیز علاوه بر Pass the Hash از تکنیک Pass The Token که مربوط به Kerberos میشود، پشتیبانی میکنند.
مورد دیگر ابزار psexec در متاسپلویت میباشد که با استفاده از آن میتوان اقدام به انجام حمله Pass the Hash نمود. در این ماژول شما باید مقادیر مربوط به SMBUser که نام کاربری قربانی است و SMBPass که هش کلمه عبور قربانی میباشد را وارد نمایید تا با استفاده از این ماژول بتوان حمله Pass the Hash را انجام داد.
ابزار دیگری که امکان استخراج کلمات عبور به صورت Clear text را از LSASS فراهم میکند، ابزار Mimikatz میباشد که از طریق لینک زیر قابل دسترسی است.
https://github.com/gentilkiwi/mimikatz
روشهای جلوگیری از حملات Pass the Hash
یکی از راههای مقابله با حملات Pass the Hash، ایمن سازی کلاینتهاست. برای این کار شما میبایست بروزرسانی سیستمعامل و Hardening آن را با روشهای مختلف انجام دهید. علاوه بر این استفاده از سوئیتهای Endpoint Security که شامل آنتی ویروس، فایروال شخصی (personal firewall)، سیستم تشخیص نفوذ مبتنی بر میزبان (host-based IPS) و ضد جاسوس افزار (antispyware) میباشد، نیز بسیار مفید خواهد بود.
استفاده از فایروالهای مبتنی بر کلاینت یا همان Host-base Firewallها هم میتواند برای جلوگیری از این حملات مفید باشد. در این فایروالها باید پیکربندی به صورتی باشد که اجازه اتصال به پروتکل SMB تنها از طریق سیستمهای مدیر صورت بگیرد و نه سیستمهای دیگر.
استفاده از مدیریت کلمه عبور تصادفی و منحصربه فرد برای هر دستگاه، یکی دیگر از تکنیکهایی است که برای مقابله با حملات Pass The Hash میتوان از آن استفاده نمود.
برای پیاده سازی این تکنیک شما میتوانید از ابزار (LAPS) Local Administrator Password Solution استفاده نمایید. این ابزار برای شرکت مایکروسافت بوده و به وسیله آن برای هر دستگاه یک کلمه عبور منحصر به فرد ایجاد میشود که راه کاری برای مقابله با حملات Pass The Hash میباشد.
نکته: در حملات Pass The Hash معمولا به یک سیستم دسترسی پیدا نموده و سپس به سیستمهای دیگر دسترسی پیدا میکنند و این امر به دلیل وجود کلمات عبور یکسان استفاده شده برای اغلب سیستمها میباشد.
در واقع مدیران شبکه با توجه به اینکه اغلب از یک سیستمعامل ایمیج تهیه میکنند و همان را در داخل شبکه اصطلاحا Deploy میکنند، کلمات عبور این سیستمها یکسان است و نفوذگر با توجه به پیدا کردن هش کلمات عبور یک سیستم، در حقیقت به تمام سیستمها دسترسی دارد. ویژگی LAPS با ایجاد کلمات عبور متفاوت و پیچیده، از این مورد جلوگیری به عمل میآورد.
برای شناسایی این حملات باید اتصالات SMB را مانیتور نمود، به این خاطر که حملات Pass The Hash از SMB برای اتصال خود استفاده میکنند. البته به صورت واحد این کار با دستور Net sessions امکان پذیر میباشد.
در انتها هم برای محافظت از سیستمها، اگر مشکوک به این هستید که احتمالا هشها به خطر افتاده اند، باید رمزهای عبور سیستمها را به سرعت تغییر دهید.