14章スクリプトの難読化

bashスクリプトは人が簡単に読むことができる。これは言語の特徴として期待されているところである。可読性は大半のアプリケーションにとって望ましいことであるが、ペネトレーションテストの実行においてはその限りではない。大半の場合、ターゲットに対する攻撃を行う際、ツールのコードを簡単に読まれたり、リバースエンジニアリングされたりしたくないだろう。これに対応する手法として難読化がある。

難読化とは、対象を読み取りにくくしたり、理解しにくくしたりするための技術の総称である。スクリプトの難読化を行う手法には、大きく次に挙げる3つがある。

  • 文法の難読化
  • ロジックの難読化
  • エンコードもしくは暗号化

ここでは以下の節で、これら3つの手法について見ていこう。

14.1 利用するコマンド

データの変換を行い、任意のコマンドを実行するためにコマンドをevalするbase64を紹介する。

14.1.1 base64

base64コマンドはBase64形式でデータをエンコードするために用いられる。

[Tip]

Base64エンコーディングについての詳細情報については、RFC 4648(http://bit.ly/2Wx5VOC)を参照のこと。

14.1.1.1 主要なコマンドオプション

-d
Base64でエンコードされたデータをデコードする。

14.1.1.2 コマンド実行例

文字列をBase64形式でエンコードするには次のようにする。

$ echo 'Rapid Cybersecurity ...

Get 実践 bashによるサイバーセキュリティ対策 ―セキュリティ技術者のためのシェルスクリプト活用術 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.