مبین آقاشاهی
مبین آقاشاهی
خواندن ۵ دقیقه·۲ سال پیش

بازیابی رمز عبور فایل زیپ

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

اما در این مقاله ما از نرم افزار رایگان و متن باز به نام Zydra استفاده خواهیم کرد.

این نرم افزار با زبان Python نوشته شده است و ما برای اجرای این نرم افزار نیاز به یک مترجم Python خواهیم داشت.

روش کار از لحاظ تئوریک به چه شکلی است؟

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

1- حملات دیکشنری:

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

2- حملات :brute force

حدس پسورد به روش brute force ، روشی غیر هوشمندانه به حساب خواهد آمد زیرا در این روش باید تمامی احتمالات رو بررسی کنیم تا به پسورد صحیح دستیابیم. این نوع حمله به دلیل احتمالات زیادی که برای امتحان کردن وجود دارد زمان بسیار زیادی لازم دارد که به جواب برسد ولی صد در صد به جواب خواهد رسید. منظور از زمان زیاد ماه ها و یا سال ها زمان است!!



روش کار از لحاظ عملی به چه شکلی است؟

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

ابتدا باید نرم افزار رو دانلود کنیم که ما نرم افزار رو از گیت هاب Zydra دانلود خواهیم کرد.

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

sudo apt-get update
sudo apt-get install qpdf unrar
pip3 install py-term
sudo wget http://www.figlet.org/fonts/epic.flf -O /usr/share/figlet/epic.flf

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

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

#دانلود نرم افزار git clone https://github.com/hamedA2/Zydra.git
#رفتن به پوشه نصب نرم افزار cd Zydra #رمشاهده راهنمای نرم افزار python3 Zydra.py -h

اگه همه چیز رو به صورت صحیح اجرا کرده باشید باید پیغام زیر روبرو شوید.

فایل زیپ مورد نظر خود را داخل پوشه محل نصب برنامه کپی کنید. (ما در این آموزش از فایل زیپ test.zip استفاده خواهیم کرد.)

حالا که همه چیز آماده است میریم که دوتا حمله خودمون رو ببینیم که به چه صورتی انجام می شود.

1- حمله دیکشنری:

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

لینک یکسری از این دیکشنری هارو اینجا براتون قرار میدم که ازش استفاده کنید. https://github.com/danielmiessler/SecLists/tree/master/Passwords

بعد از دانلود یکی از دیکشنری ها، دیکشنری دانلود شده رو به محل نصب نرم افزار کپی می کنیم.

نکته: دیکشنری ها ظاهری به این شکل دارند. (تصویر زیر)
یعنی هر خط نشان گر یک پسورد است.

ما در این آموزش از دیکشنری worst-passwords-500.txt استفاده خواهیم کرد.

حالا با دستور زیر نرم افزار را با دیکشنری worst-passwords-500.txt برروی فایل زیپ test.zip اجرا خواهیم کرد.

python3 Zydra.py -f test.zip -d 500-worst-passwords.txt

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

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

2- حمله brute force:

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

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

python3 Zydra.py -f test.zip -b digits -m 2 -x 8

در دستور بالا گفتیم که برروی فایل test.zip تمام اعداد 2 رقمی تا 8 رقمی را امتحان کن و رمز عبور احتمالی را از بین این رنج از اعداد جست و جو کن.

python3 Zydra.py -f test.zip -b lowercase -m 2 -x 8

در دستور بالا گفتیم که برروی فایل test.zip تمام حروف انگلیسی کوچک 2 رقمی تا 8 رقمی را امتحان کن و رمز عبور احتمالی را از بین این رنج از حروف جست و جو کن.

python3 Zydra.py -f test.zip -b lowercase digits -m 2 -x 8

در دستور بالا گفتیم که برروی فایل test.zip ترکیب تمام حروف انگلیسی کوچک و اعداد 2 رقمی تا 8 رقمی را امتحان کن و رمز عبور احتمالی را به این ترکیب جست و جو کن.


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

<lowercase> حروف کوچک انگلیسی شامل abcdefghijklmnopqrstuvwxyz
<uppercase> حروف بزرگ انگلیسی شامل ABCDEFGHIJKLMNOPQRSTUVWXYZ
<letters> حروف کوچک و بزرگ انگلیسی
<digits> اعداد 0123456789
<symbols> نمادها !#$%&'()*+,-./:;<=>?@[\]^_`{|}~'&quot
<space> کاراکتر فاصله
نکته: معمولا حملات brute force را بر روی کامپیوترهای شخصی اجرا نمی کنند زیرا این روش نیاز به این دارد که ماه ها کامپیوتر شما روشن باشد و تا این عملیات انجام شود و رمز عبور پیدا شود. برای این کار از سرورهای مجازی استفاده خواهد شد که همیشه روشن باشند و هزینه کمتری داشته باشند.

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

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

zipcomputersecurityامنیت
یک آسیایی قضا و قدری که به کامپیوترها دستور میده ? گاهی عکس میگیرم چون کامپیوترهارو نمی‌فهمم و گاهی مینویسم چون دنیا رو نمیفهم
شاید از این پست‌ها خوشتان بیاید