کرک فایل rar و zip و pdf و shadow لینوکس به کمک zydra

کرک فایل rar و zip و pdf و shadow لینوکس به کمک zydra

بدون ديدگاه

سلام خدمت تمامی کاربران تیم امنیتی بیت، در این آموزش میخوایم با هم دیگه کرک فایل rar و zip و pdf و shadow لینوکس به کمک zydra رو به طور کامل بررسی کنیم

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

فایل های PDF و ZIP اکثر اوقات حاوی اطلاعات بسیار ارزشمندی هستند، اطلاعاتی مثل network diagram، آدرس های IP، اطلاعات Login و …

اما بعضی اوقات حتی فایل هایی هم که رمزگذاری شده اند از دست هکر ها در امان نیستند، اینجاست که Zydra وارد عمل میشه

ابزاری برای کرک کردن فایل های ZIP، RAR، PDF و فایل Shadow در لینوکس

این فایل ها چگونه رمزگذاری شده اند؟

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

به طور مثال دستور ZIP در Linux ار الگوریتم نسبتا قدیمی PKZIP برای رمزگذاری استفاده میکنه، که نا امن هست و بسیار ساده کرک میشود

اما ابزار های دیگه مثل WinZIP و ۷-Zip از الگوریتم AES-256 برای رمزگذاری استفاده میکنند

همینطور ابزار های محبوب WinRAR و PeaZip هم از الگوریتم AES برای رمزگذاری فایل ها استفاده میکنند

اگر شما کاربر لینوکس باشید، ساخت فایل PDF به کمک LibreOffice به کمک فایل Word بسیار ساده است

نسخه های قدیمی تر LibreOffice از الگوریتم Blowfish برای رمزگذاری استفاده میکرد، اما نسخه های ۳٫۵ به بالا از الگوریتم AES برای رمزگذاری استفاده میکند

و همینطور برای رمزگذاری این گونه فایل های به کمک ابزار های Microsoft Office و Adobe Acrobat (برنامه Office 2007+ نیز) از الگوریتم AES استفاده میشود

فایل های shadow در لینوکس نیز نوع رمزگذاری آن ها با توجه به سیستم متفاوت است، اما الگوریتم های MD5, SHA-512, SHA-256, Blowfish و DES پراستفاده ترین های آن هستند

دانلود و استفاده از Zydra

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

اینکار رو به کمک دستور wget هم میتوانیم انجام دهیم تا فایل python آن را دانلود کنیم

~$ wget https://raw.githubusercontent.com/hamedA2/Zydra/master/Zydra.py

--۲۰۲۰-۰۷-۱۵ ۱۸:۴۱:۲۵--  https://raw.githubusercontent.com/hamedA2/Zydra/master/Zydra.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30544 (30K) [text/plain]
Saving to: ‘Zydra.py’

Zydra.py             100%[======================>]  29.83K  --.-KB/s    in 0.04s

۲۰۲۰-۰۷-۱۵ ۱۸:۴۱:۲۶ (۷۶۴ KB/s) - ‘Zydra.py’ saved [30544/30544]

همینطور برای اینکه ابزار به درستی کار کند نیاز به نصب تعدادی ماژول داریم که با دستور زیر به سادگی اون هارو نصب میکنیم

~$ pip3 install rarfile pyfiglet py-term

Collecting rarfile
  Downloading rarfile-3.1.tar.gz (121 kB)
     |████████████████████████████████| ۱۲۱ kB 1.0 MB/s
Requirement already satisfied: pyfiglet in /usr/lib/python3/dist-packages (0.8.post0)
Collecting py-term
  Downloading py-term-0.6.tar.gz (5.4 kB)
Building wheels for collected packages: rarfile, py-term
  Building wheel for rarfile (setup.py) ... done
  Created wheel for rarfile: filename=rarfile-3.1-py3-none-any.whl size=24908 sha256=6f16c1h4b06a3f7a7d8v4baa34e9a6d58a949b5a78c2b23bb60c0d62791372e3
  Stored in directory: /home/kali/.cache/pip/wheels/21/50/d0/8da8b10f46113f46c6f0247c5f59401293fb5b15aa7888a4ce
  Building wheel for py-term (setup.py) ... done
  Created wheel for py-term: filename=py_term-0.6-py3-none-any.whl size=6268 sha256=ab75424c7aa6ef71001a24c3e3a558ad3748ee0d6a3c0153c3a0cf955f814a13
  Stored in directory: /home/kali/.cache/pip/wheels/76/cc/73/8ac13320a2a98600008575b936742bbb6025d21d674ca6e2fd
Successfully built rarfile py-term
Installing collected packages: rarfile, py-term
Successfully installed py-term-0.6 rarfile-3.1

حالا باید بتونیم ابازر رو به کمک دستور python3 اجرا کنیم

~$ python3 zydra.py

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Usage: zydra.py [options] [args]

Dictionary Mode:
   zydra.py -f <file> -d <wordlist>

Brute force Mode:
   zydra.py -f <file> -b <char_type> -m <min_length> -x <max_length>

   Available char_type:
    <lowercase>  The lowercase letters abcdefghijklmnopqrstuvwxyz
    <uppercase>  The uppercase letters ABCDEFGHIJKLMNOPQRSTUVWXYZ
    <letters>    The concatenation of the lowercase and uppercase
    <digits>     numbers 0123456789
    <symbols>    punctuation characters !#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~'"
    <space>      space character
   You can select multiple character types.
    Example: zydra.py -f <file> -b <space,digits> -m 1 -x 8

zydra.py: error:  Choose a file, Use --help for more info

حالا برای ایکه بتونیم switch های این دستور رو ببینیم از –help استفاده میکنیم

~$ python3 zydra.py --help

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Usage: zydra.py [options] [args]

Dictionary Mode:
   zydra.py -f <file> -d <wordlist>

Brute force Mode:
   zydra.py -f <file> -b <char_type> -m <min_length> -x <max_length>

   Available char_type:
    <lowercase>  The lowercase letters abcdefghijklmnopqrstuvwxyz
    <uppercase>  The uppercase letters ABCDEFGHIJKLMNOPQRSTUVWXYZ
    <letters>    The concatenation of the lowercase and uppercase
    <digits>     numbers 0123456789
    <symbols>    punctuation characters !#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~'"
    <space>      space character
   You can select multiple character types.
    Example: zydra.py -f <file> -b <space,digits> -m 1 -x 8

Options:
  -h, --help    show this help message and exit
  -d DICTFILE   Specifies dictionary file
  -f FILE       Specifies the file
  -b CHARTYPE   Specifies the character type
  -m MINLENGTH  Specifies minimum length of password
  -x MAXLENGTH  Specifies maximum length of password

برای تست من ۳ عدد فایل ZIP و RAR و PDF درست کردم که رمزعبور تمامی اون ها password1 هست

و همینطور یک فایل shadow هم آماده کردم که از ماشین مجازی metasploiable گرفتمش

و حالا برای عملیات کرک به یک wordlist هم احتیاج داریم که من برای این آموزش چون رمزعبور ساده هست از wordlist ـه darkweb2017-top10 استفاده میکنم که میتونید با دستور زیر اون رو Download کنید

~$ wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt

--۲۰۲۰-۰۷-۱۵ ۱۹:۰۸:۰۵--  https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 81 [text/plain]
Saving to: ‘darkweb2017-top10.txt’

darkweb2017-top10.tx 100%[======================>]      81  --.-KB/s    in 0s

۲۰۲۰-۰۷-۱۵ ۱۹:۰۸:۰۵ (۳٫۱۰ MB/s) - ‘darkweb2017-top10.txt’ saved [81/81]

کرک کردن فایل های RAR

ابزار zydra میتونه ار دو متود Dictionary و BruteForce برای کرک کردن ساتفاده کنه

برای استفاده از Dictionary Mode تنها کافبه تا از flag ـه -d استفاده کنیم و همینطور فایلی که میخواهیم کرک کنیم را با flag ـه -f مشخص میکنیم

~$ python3 zydra.py -f nb-rar.rar -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:08:15 2020

Starting password cracking for /root/nb/nb-rar.rar /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1

End time ==> Wed Jul 15 19:08:41 2020
Execution time ==> 0:00:25.876620

همچنین برای استفاده از حالت Bruteforce از flag ـه -b استفاده میکنیم و نوع character هایی که میخوایم استفاده کنیم را مشخص میکنیم و همچنین با flag های -m و -x حداقل طول رمزعبور و بیشترین طول آن را مشخص میکنیم

~$ python3 zydra.py -f nb-rar.rar -b letters,digits -m 1 -x 10

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
           /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:09:01 2020

Starting password cracking for /root/nb/nb-rar.rar /

 [*] Count of possible passwords: 853058371866181866
    Progress : [                                          ] 0.000 %

کرک کردن فایل های ZIP

کرک کردن فایل های ZIP هم تقریبا مشابه کرک کردن فایل های RAR است

از متود Dictionary استفاده میکنیم و wordlist ای که میخواهیم برای عملیات کرک کردن از اون استفاده بشه رو مشخص میکنیم

~$ python3 zydra.py -f nb-zip.zip -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:09:45 2020

Starting password cracking for /root/nb/nb-zip.zip /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1

End time ==> Wed Jul 15 19:10:10 2020
Execution time ==> 0:00:25.062398

کرک کردن فایل های PDF رمزدار

برای اینکه ابزار zydra بتونه به درستی رمزعبور فایل های PDF رو کرک کنه لازمه تا ابتدا qpdf رو روی سیستممون نصب کنیم

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

~$ sudo apt install qpdf

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libqpdf28
The following NEW packages will be installed:
  libqpdf28 qpdf
۰ upgraded, 2 newly installed, 0 to remove and 568 not upgraded.
Need to get 1,015 kB of archives.
After this operation, 2,690 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://kali.download/kali kali-rolling/main amd64 libqpdf28 amd64 10.0.1-2 [479 kB]
Get:2 http://kali.download/kali kali-rolling/main amd64 qpdf amd64 10.0.1-2 [537 kB]
Fetched 1,015 kB in 1s (830 kB/s)
Selecting previously unselected package libqpdf28:amd64.
(Reading database ... 377060 files and directories currently installed.)
Preparing to unpack .../libqpdf28_10.0.1-2_amd64.deb ...
Unpacking libqpdf28:amd64 (10.0.1-2) ...
Selecting previously unselected package qpdf.
Preparing to unpack .../qpdf_10.0.1-2_amd64.deb ...
Unpacking qpdf (10.0.1-2) ...
Setting up libqpdf28:amd64 (10.0.1-2) ...
Setting up qpdf (10.0.1-2) ...
Processing triggers for libc-bin (2.30-4) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for kali-menu (2020.2.2) ...

و حالا میتونیم به سادگی با معرفی کردن فایل pdf و wordlist رمزعبور فایل pdf رو کرک کنیم

~$ python3 zydra.py -f nb-sample.pdf -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:10:30 2020

Starting password cracking for /root/nb/nb-sample.pdf /

 [*] Count of possible passwords: 10
    Progress : [#####################################     ] 80.000 %
    [+] Password Found: password1
    [*] Your decrypted file is decrypted_nb-sample.pdf

End time ==> Wed Jul 15 19:10:55 2020
Execution time ==> 0:00:25.118694

کرک کردن فایل های shadow

ابزار zydra به صورت خودکار اقدام به کرک کردن رمزعبور User هایی که در فایل shadow پیدا کنه میکنه

برای اینکار هم کافیه تا با flag ـه -f فایل shadow رو معرفی کنیم

و با flag ـه -d مسیر wordlist ای که میخواهیم به کمک آن رمزعبور را کرک کند به آن معرفی میکنیم

~$ python3 zydra.py -f nb-shadow -d darkweb2017-top10.txt

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         _______           ______   _______  _______
        / ___   )|\     /|(  __  \ (  ____ )(  ___  )
        \/   )  |( \   / )| (  \  )| (    )|| (   ) |
            /   ) \ (_) / | |   ) || (____)|| (___) |
          ok   /   /   \   /  | |   | ||     __)|  ___  |
          /   /     ) (   | |   ) || (\ (   | (   ) |
         /   (_/\   | |   | (__/  )| ) \ \__| )   ( |
        (_______/   \_/   (______/ |/   \__/|/     \|

        Author : Hamed Hosseini
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Start time ==> Wed Jul 15 19:11:03 2020

Starting password cracking for /root/nb/nb-shadow /

 [*] Count of possible passwords: 10
  [**] cracking Password for: root
    Progress : [##############################################] 100.000 %
    [-] password not found

  [**] cracking Password for: sys
  [**] cracking Password for: klog
  [**] cracking Password for: msfadmin
  [**] cracking Password for: postgres
  [**] cracking Password for: user
  [**] cracking Password for: service
End time ==> Wed Jul 15 19:11:26 2020
Execution time ==> 0:00:22.062705

اما چون wordlist ما شمال رمزعبور های ضعیفه، نتوسنت فایل رو با موفقیت کرک کنه

برای کرک کردن همیشه به دنبال wordlist های قدرتمند و متناسب با تارگتتون بگردید

موفق باشید

نوشتن دیدگاه