سایبریت

گرفتن پسورد با wireshark

بسیاری از کاربران نمی دانند زمانی که یک فرم لاگین را در هنگام ورود یا ثبت نام پر می‌کنند، به راحتی این داده ها قابل رهگیری هستند. اغلب کاربران شبکه در هنگام مرور وبسایت ها به پروتکل آنها توجه نمی‌کنند. اگر سایتی که در آن لاگین می‌کنید از پروتکل HTTP استفاده کند، گرفتن این ترافیک بسیار آسان است. ما با استفاده از Wireshark می‌توانیم ترافیک کاربر را آنالیز کنیم و سپس با استفاده از فیلترها رمز عبور را پیدا کرده و رمزگشایی (decode) کنیم. در این مقاله گرفتن پسورد با wireshark را نشان می‌دهیم.

بهترین مکان برای گرفتن پسوردها، هسته اصلی شبکه (سرور یا روتر) است که در آن تمام ترافیک کاربران از آن عبور می‌کند. در تست نفوذ یا هک قانونی یکی از مهمترین مهارت ها آنالیز شبکه ها است.

نحوه گرفتن ترافیک با Wireshark

برای گرفتن ترافیک با وایرشارک می‌توانیم هنگام اجرای این ابزار، اینترفیس موردنظر را که قصد آنالیز و دریافت ترافیک آن را داریم انتخاب کنیم. در زیر بعد از انتخاب اینترفیس اترنت eth0 (شبکه کابلی)، بصورت خودکار وایرشارک بسته ها را دریافت می‌کند. برای توقف و شروع مجدد ترافیک می‌توانید از منو ابزار روی دکمه های ‌Stop یا Restart کلیک کنید.

انتخاب اینترفیس - گرفتن پسورد با wireshark

فیلتر کردن ترافیک POST برای گرفتن پسورد با wireshark

در اینجا ما مرورگر را باز می کنیم و به یک سایت HTTP با یوزر و پسورد لاگین می‌کنیم. بعد از اینکه به سایت لاگین کردیم (فرآیند authorization)، از کپچر ترافیک Wireshark را متوقف می‌کنیم. بعد از توقف کپچر تعداد زیادی بسته را مشاهده می‌کنید. در این مرحله ما علاقه مند به بسته های خاصی هستیم که حاوی داده های POST هستند که با پر شدن فرم در صفحه وب، از سیستم ما تولید شده و وقتی روی دکمه “ورود” یا “login” در مرورگر کلیک می کنیم، به سرور ارسال می شود .

برای نمایش بسته های کپچر شده (دریافت شده)، زیر منو در فیلد display filter مقدار زیر را وارد کنید، تا در بین هزاران بسته فقط داده هایی (POST) که بدنبال آن هستیم نمایش داده شود.

http.request.method == "POST"

فیلتر کردن Post - گرفتن پسورد با wireshark

پیدا کردن نام کاربری و رمز عبور با استفاده از Wireshark

روی بسته موردنظر راست کلیک کنید و از منو Follow گزینه TCP Steam را انتخاب کنید.

گزینه tcp steam - گرفتن پسورد با wireshark

بعد از آن، یک پنجره جدید باز می‌شود که در آن کد محتوای صفحه را نمایش می‌دهد. قسمتهای “user” و “password” را پیدا کنید که مربوط به رمز عبور و نام کاربری است. در پروتکل های HTTP هر دو قسمت به راحتی قابل خواندن هستند و رمزگذاری نمی شوند، اما درپروتکل HTTPS, HSTS که بسیاری از وبسایت های معتبر از آن استفاده می‌کنند پسورد رمزگذاری می شود:

مطالعه کنید
گرفتن پسورد WPA2 از کاربر با ابزار Wifiphisher

مشاهده پسورد کاربر - گرفتن پسورد با wireshark

تشخیص نوع رمزگذاری پسورد برای رمزگشایی آن

پروتکل های HTTP و FTP امنیت بسیار پایینی دارند، اما اگر در صفحه TCP Stearm پسورد را بصورت رمزگذاری شده مشاهده کردیم می توانیم به سایت hashes.com برویم و پسورد خود را برای شناسایی نوع encryption هش وارد کنیم.

فرض کنید در صفحه TCP Stearm مقدار پسورد را بصورت هش زیر نمایش داد.

21232f297a57a5a743894a0e4a801fc3

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

21232f297a57a5a743894a0e4a801fc3 - admin - Possible algorithms: MD5 

رمزگشایی پسورد کاربر

اگر پسورد مورد نظر نیاز به کرک داشته باشد، باید در این مرحله از ابزار hashcat استفاده کنیم و با استفاده از دیکشنری پسورد کاربر را بروت فورس کنیم:

hashcat -a 0 -m 500 /root/myhash.txt /root/dict.txt

بنابراین با استفاده از Wireshark نه تنها می توانیم مشکلات مربوط به شبکه و سرویس‌ها را حل کنیم، بلکه به عنوان یک هکر قانونی می‌توانیم اطلاعات کاربران شبکه را مشاهده کنیم.

با استفاده از فیلترهای ساده زیر می‌توانیم، پسورد ایمیل کاربر را مشاهده کنیم:

فیلتر پروتکل POP به این شکل است:

pop.request.command == "USER" || pop.request.command == "PASS"

فیلتر پروتکل IMAP:

imap.request contains "login"

فیلتر پروتکل SMTP:

smtp.req.command == "AUTH"

اگر ترافیک رمزگذاری شده باشد و از HTTPS استفاده شود، چه کار کنیم؟

گزینه های مختلفی برای پاسخ دادن به این سوال وجود دارد.

گزینه 1: زمان disconnection بین کاربر و سرور متصل شوید و در زمان برقراری ارتباط (SSL Handshake) ترافیک را کپچر کنید. در زمان اتصال، می توانید کلید session را رهگیری کنید.

گزینه 2: می توانید با استفاده از log file کلید session که توسط Firefox یا Chrome ایجاد شده است، ترافیک HTTPS را رمزگشایی (decrypt) کنید. برای انجام این کار باید مرورگر پیکربندی شود تا این کلیدهای رمزگذاری را در یک فایل log بنویسد (برای مثال FireFox) ، و شما باید این فایل log را دریافت کنید. در اصل لازم است یک فایل با کلید session از هارد دیسک کاربر هدف سرقت شود. سپس ترافیک را بگیرید و از کلید دریافت شده برای رمزگشایی آن استفاده کنید. اما قبل از هرچیز باید به شبکه هدف دسترسی فیزیکی داشته باشیم.

مطالعه کنید
کرک WPA2-PSK با استفاده از Aircrack-ng

اگر هدف ما رمزگشایی ترافیک HTTPS خودمان باشد به راحتی می‌توانیم این استراتژی روی سیستم خودمان پیاده کنیم.

پس از دریافت کلید session باید آنها را در WireShark ثبت کنید. برای اینکار:

  • به منوی Edit > Preferences > Protocols > SSL/TLS بروید.
  • گزینه “Reassemble SSL records spanning multiple TCP segments” را تیک بزنید.
  • از قسمت “RSA keys list” روی Edit کلیک کنید و تمام داده ها را وارد کرده و مسیر فایل کلید session را تعیین کنید.

وایرشارک می تواند بسته هایی را که با استفاده از الگوریتم RSA رمزگذاری می شوند رمزگشایی کند. اگر الگوریتم های استفاده شده DHE/ECDHE، FS، ECC باشند، شنود کردن با این ابزار به ما کمکی نمی‌کند.

گزینه 3: از وب سروری که کاربر از آن استفاده می کند دسترسی پیدا کنید و کلید را دریافت کنید. در شبکه های سازمان ها به منظور رفع اشکالات برنامه ها یا فیلتر کردن محتوا، از این گزینه به صورت قانونی استفاده می شود اما نه به منظور رهگیری و گرفتن پسورد کاربران شبکه.

به پایان مقاله گرفتن پسورد با wireshark رسیدیم. آنالیز با ابزار وایرشارک یکی از مهمترین مهارت هایی است که در تست نفوذ وایرلس و شبکه مورد استفاده قرار می‌گیرد.

دانلود PDF مقاله

دیدگاه‌ها (0)

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

*
*