Windows
Invoke-AESEncryption.ps1
Invoke-AESEncryption.ps1 Powershellスクリプト
- 小さくて、ファイルの暗号化と文字列の暗号化を行う
- AES(Advanced Encryption Standard)を使用したファイル・テキストの暗号化
- Windows環境で PowerShell を使って簡単に実行可能
- Base64 形式でエンコードされた暗号文を出力
- ファイルの暗号化・復号も可能
使い方
- ペネトレーションテストでターゲット環境に
Invoke-AESEncryption.ps1
を転送し、PowerShell でモジュールとして読み込む。
Import-Module .\Invoke-AESEncryption.ps1
- テキストの暗号化
Secret Text
が AES 暗号化され、Base64 形式で出力される
Invoke-AESEncryption -Mode Encrypt -Key "p@ssw0rd" -Text "Secret Text"
- テキストの復号化
- 暗号化されたテキストを復号し、元の文字列
"Secret Text"
を出力
Invoke-AESEncryption -Mode Decrypt -Key "p@ssw0rd" -Text "LtxcRelxrDLrDB9rBD6JrfX/czKjZ2CUJkrg++kAMfs="
- ファイルの暗号化
- scan-results.txt を暗号化し、scan-results.txt.aes として保存
Invoke-AESEncryption -Mode Encrypt -Key "p@ssw0rd" -Path .\scan-results.txt
暗号化後のファイルリスト
│── Invoke-AESEncryption.ps1
│── scan-results.txt
│── scan-results.txt.aes <-- 暗号化されたファイル
- ファイルの復号化
Invoke-AESEncryption -Mode Decrypt -Key "p@ssw0rd" -Path .\scan-results.txt.aes
重要ポイント
- 強力なパスワードを使用する
- 異なる会社で同じパスワードを使い回さない(パスワードが漏洩すると、全データが復号可能になる)
- 必要に応じて暗号化したデータを安全に削除
- データの漏洩リスクを防ぐため、使用後のデータは削除する
- 事前に適切なファイル転送方法を選定
- scp / rsync / SFTP など 暗号化通信が可能な手段を優先
- 使えない場合は、事前に暗号化して転送
- 許可なく個人情報や機密情報を持ち出さない。DLP(データ流出防止)のテストにはダミーデータを使う
- ペネトレーションテストでは機密データを扱うため、必ず暗号化してから転送する
Linux
OpenSSL
- ファイルを「ncスタイル」で送信し、ファイルを暗号化できる
-aes256
を使用すると、AES-256による強力な暗号化 が可能-iter
や-pbkdf2
オプションを追加すると、セキュリティを強化できる
使い方
ファイルの暗号化
AES-256でファイルを暗号化
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -salt -in plaintext.txt -out encrypted.txt.aes
オプション | 説明 |
---|---|
enc |
暗号化を実行 |
-aes-256-cbc |
AES-256(CBCモード)を使用 |
-pbkdf2 |
PBKDF2アルゴリズムを使用(より安全なキー生成) |
-iter 100000 |
キー導出の反復回数を10万回に設定(ブルートフォース攻撃対策) |
-salt |
暗号化時にランダムなソルトを追加(セキュリティ強化) |
-in plaintext.txt |
暗号化するファイル |
-out encrypted.txt.aes |
出力する暗号化ファイル |
実行後、パスワードを入力すると暗号化が完了!
ファイルの復号化
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -d -in encrypted.txt.aes -out decrypted.txt
オプション | 説明 |
---|---|
-d |
復号化を実行 |
-in encrypted.txt.aes |
復号するファイル |
-out decrypted.txt |
出力する復号化後のファイル |
暗号化時と同じパスワードを入力すれば復号できる!
📌 なぜ -pbkdf2
と -iter 100000
を使うのか?
- PBKDF2(Password-Based Key Derivation Function 2) を使うことで、パスワードの強度を向上
- 反復回数(
-iter 100000
)を増やすと、ブルートフォース攻撃に強くなる- デフォルトの回数は少ないため、より安全な値に変更するのが推奨
- OpenSSL を使うと、簡単にファイルを暗号化できる
- AES-256(
-aes-256-cbc
)で強力な暗号化 -pbkdf2
+-iter 100000
を使うと、より安全- 暗号化と復号時には、同じパスワードを入力する必要がある
- データ転送前に暗号化すると、盗聴や漏洩のリスクを減らせる
シンプルで安全