Linuxではパスワードで保護されたzipアーカイブがあります(パスワードは「secret」です)。ただし、zipファイルを開こうとするたびにパスワードなどを入力するように求められません。また、zipアーカイブを抽出し、意図的に間違ったパスワードを渡すPythonスクリプトがありますが、それでもアーカイブの解凍が行われます。また、rootがファイル権限を無視するのが好きだと聞いたので、rootとして実行しませんでした。私は何が間違っていましたか?
「evil」フォルダをzipファイル「evil.zip」に圧縮し、次のコマンドを使用してパスワードを指定しました。
zip --pasword secret -r evil.zip evil
Pythonスクリプトunzip.pyの内容は次のとおりです。
import zipfile
zFile = zipfile.ZipFile("evil.zip")
zFile.extractall(pwd="oranges")
Kali Linux 1.0.9およびZip(v. 3.0)を実行しています。
また、パスワードの代わりに暗号化コマンドを使用してみました。
zip --encrypt -r evil.zip evil
パスワードの入力を求められ、パスワードがパスワードに設定されます。
私はこのメッセージで終わりました。
Traceback (mostrecent call last) :
File "unzip.py", line 3, in <module>
zFile.extractall(pwd="oranges")
File "/usr/lib/python2.7/unzip.py", line 980, in extractall
self.extract(zipinfo, path, pwd)
File "/usr/lib/python2.7/unzip.py", line 968, in extract
return self._extract_member(member, path, pwd)
File "/usr/lib/python2.7/unzip.py", line 1011, in _extract_member
source = self.open(member, pwd=pwd)
File "/usr/lib/python2.7/unzip.py", line 952, in open
raise RuntimeError("Bad password for file", name)
RuntimeError: ('Bad password for file', <zipfile.ZipInfo object at 0x23a0118>)
その後、フォルダは解凍されたままになります。
答え1
アーカイブのファイルは、ディレクトリ構造ではなく暗号化され、パスワードで保護されます。抽出できるという意味です。目次暗号化されていても(ファイルではない)アーカイブから取得できます。
何らかの方法でアーカイブを暗号化して不可能にするには、GnuPGのようなものを使用することをお勧めします。
答え2
おそらくこれはKaliを実行しているからです。このディストリビューションはセキュリティ機能を「バイパス」するように設計されています(セキュリティ上の欠陥を強調する合法的な目的で)。他のディストリビューションでは、この「バグ」は発生しないと思います。