امنیتبرنامه نویسیپایتونتست نفوذ

پیدا کردن پسورد وای فای با ماژول subprocess پایتون

پیدا کردن پسورد وای فای با پایتون

هنگام اتصال به وای فای، باید برخی رمزها را برای دسترسی به شبکه وارد کنیم، اما مستقیماً نمی توانیم رمز عبوری را که قبلاً وارد کرده ایم (رمز شبکه ذخیره شده) را ببینیم. در این مقاله نحوه پیدا کردن پسورد وای فای با پایتون و ماژول subprocess را بررسی خواهیم کرد که میتواند اطلاعات تمام وای فای های ذخیره شده را ائم از نام وای فای و پسورد آن به ما نشان دهد.

همچنین می توانید مقاله نحوه به دست آوردن پسورد وای فای با cmd ویندوز را نیز مطالعه کنید که دقیقا مرتبط با این مقاله می باشد.

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

کد ابزار پیدا کردن پسورد وای فای با پایتون

کد ابزار پیدا کردن پسورد وای فای با پایتون
کد ابزار پیدا کردن پسورد وای فای با پایتون

در محله اول باید ماژول subprocess را فراخوانی کنیم.

import subprocess

متغییری با نام data تعریف میکنیم و با استفاده از ماژول subprocess و متد check_output دستورات مورد نیاز برای دریافت نام شبکه هایی که قبلا به آن ها متصل شده ایم را دریافت میکنیم. بعد از دریافت آن ما نیاز داریم تا آن ها را به صورت رمزگشایی (decode) شده به کاربر نشان دهیم.

در خط بعد با تعریف کردن لیست و با استفاده از حلقه for دستور شرطی می گوییم اگر All User Profile درون متغیر data یافت شد آیتم های آن را در i ذخیره کند و i را با کمک متد split() به لیست تبدیل کرده و ایندکس اول آن را نشان دهد و در متغییر profiles قرار دهد.

All User Profile نام شبکه های متصل شده در متغییر data به صورت لیست است و در All User Profile ذخیره شده است و برای دریافت نام ها از حلقه for و دستور شرطی استفاده می کنیم.

دریافت نام های شبکه

data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8', errors="backslashreplace").split('\n')
profiles = [i.split(":")[1][1:-1] for i in data if "All User Profile" in i]

در ادامه با کمک حلقه for مقادیر متغیر profiles را در i قرار میدهیم. در بدنه حلقه for بلوک try را تعریف میکنم و دو متغیر برای دریافت رمزها تعریف می کنیم. متغییری با نام results تعریف میکنیم و با استفاده از ماژول subprocess و متد check_output دستورات مورد نیاز برای دریافت رمز عبور شبکه هایی که قبلا به آن ها متصل شده ایم را دریافت میکنیم تا به صورت رمزگشایی(decode) شده به کاربر نشان دهیم.

در خط بعد با تعریف کردن لیست و با استفاده از حلقه for دستور شرطی می گوییم اگر Key Content درون متغیر results یافت شد آیتم های آن را در b ذخیره کند و b را با کمک متد split() به لیست تبدیل کند و می گوییم ایندکس اول آن را نشان دهد و در متغییر results قرار دهد.

results نام شبکه های متصل شده در متغییر data به صورت لیست است و در results ذخیره شده است و برای دریافت نام ها از حلقه for و دستور شرطی استفاده می کنیم.

دریافت پسورد های وای فای

for i in profiles:
    try:
        results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8', errors="backslashreplace").split('\n')
        results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]

یک بلوک try برای مدیریت خطاها ها و نشان دادن خروجی به کاربر تعریف می کنیم و از Fstring برای نشان دادن نام و پسورد شبکه ها استفاده می کنیم و با استفاده از except IndexError ارورهای Index را مدیریت می کنیم تا ارور دلخواه ما نشان داده شود.

try:
        results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8', errors="backslashreplace").split('\n')
        results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
        try:
            print ("{:<30}|  {:<}".format(i, results[0]))
        except IndexError:
            print ("{:<30}|  {:<}".format(i, ""))

except اخر برای مدیریت خطا هنگام پردازش روی شبکه است.

except subprocess.CalledProcessError:
        print ("{:<30}|  {:<}".format(i, "ENCODING ERROR"))

خروجی به صورت زیر میشود.

پیدا کردن پسورد وای فای با پایتون

خیلی ممنون که تا به اینجا همراه بودید.

بیشتر بخوانید: تست نفوذ شبکه های وای فای

علی پازکی

علاقه مند به حوزه امنیت و تکنولوژی

‫19 دیدگاه ها

  1. سلام من تا مرحله :for i in profiles رفتم و بعد خواستم try رو بزنم ارور داد چی کار کنم؟

      1. سلام من با Vs code کار میکنم و قسمت پرابلم لاین ۱۹ (آخر)
        و قسمت ترمینال :
        … , ‘utf-8’)
        ^
        نوع ارور هر دو :SyntaxError هست.
        چیکار کنم؟

  2. سلام مطالبتون عالیه من یه فرد مبتدی هستم چطوری میتونم از پایه هک رو یاد بگیرم؟خیلی علاقه دارم به این موضوعات سر رشته ای ندارم ولی علاقه ام خیلی زیاده نسبت به این کار…شما میتونید منو راهنمایی کنید جناب پازکی؟بعضی اصطلاحات رو اصلا متوجه نمیشم مثلا متغییر دیتا تعریف کردن…
    در ضمن یه لپ تاپ hpدارم با ویندوز 10 نیازی هست دستگاهم یا ویندوزم رو تغییر بدم؟برام مقدوره اگر نیاز هست بفرمایید
    ایمیلم رو ثبت کردم اگه مایل به راهنمایی بودین برام ایمیل بفرستیدآقای پازوکی.
    اسمم صنم هست 20 سالمه تشکر مجدد از مطالب عالیتون

  3. درسته ساخت پسورد لیست سخت نیست ولی از کجا معلوم پسورد لیستی که ساختیم توش رمز اون مودم هک شده باشه؟

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

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

    1. روش های wpa و wpa2 که wps مودم باز نیست فقط نیاز به پسورد لیست دارند.
      ساختن پسورد لیست آنچنان هم سخت نیست که شما میگین.

  5. پس اگر با cmd نمیشه وای فای هایی رو هک کرد که تاحالا وصل نشدیم!

    پس با چی میتونیم اینکارو کنیم؟
    تو دورتون آموزش دادین؟

  6. سلام ممنون بابت آموزش ولی این رو باید روی کامپیوتر دیگران بریزیم و بعد با cmd ران کنیم؟

    و اینکه باید به کامپیوتر دیگران دسترسی داشته باشیم!!!!!!؟؟؟؟؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا