Log.i53

Themidaのアンパックを目指すブログ改め使い物になるえんじにゃを目指すブログ

Black Hat Python

Black Hat Python: Python Programming for Hackers and Pentesters

Black Hat Python: Python Programming for Hackers and Pentesters

1章と2章の途中までは中身検索が可能です。まずVM上にKali Linuxというペネトレーションテスト用のツールが詰め込まれたLinuxディストリビューションをインストールしてそこにPython環境を構築するところから始まります。興味があれば、是非購入して読んでみてください!前書きの部分だけ翻訳したものを記しておきます。

はじめに

 言語の選択に関する話題は時折宗教戦争のように見えることもありますが、それでもPythonは情報セキュリティの世界では未だに支配的な言語であると言えます。Pythonベースのツールにはファザーやプロキシ、さらにはエクスプロイトを行うためのすべての方法が含まれています。CANVASのようなエクスプロイトフレームワークPythonで記述されています。PyEmuやSulleyのような何をするのかよく分からないツールも然りです。

 私はファザーやエクスプロイトのほぼ全てをPythonで記述してきました。実際に、私とChris Valasekが最近行った自動車ハッキングの研究において、車載ネットワークにCANメッセージを注入するためのライブラリにはPythonが使用されています。

 あなたが情報セキュリティタスクを弄り回すのに興味がある場合、Pythonは学習には最適の言語でしょう。なぜなら、利用可能なリバースエンジニアリングエクスプロイトライブラリが豊富に用意されているからです。あとはMetasploitの開発者がPythonの良さに目覚めてRubyからPythonに開発言語を切り替えてさえくれれば、我々のコミュニティは団結されることになります。

 本書では、Justinという意欲的な若手のハッカーが導入部分のトピックの広い範囲をカバーしてくれました。彼はWebアプリケーションの監査や攻撃をするために必要となる事項はもちろん、ネットワークパケットを読み書きする方法 、ネットワークを盗聴する方法のチュートリアルを含めてくれました。彼はその後で、Windowsシステムに対する攻撃の詳細に対処するためのコードを書く方法にかなりの時間の費やしています。一般的には、Black Hat Pythonは楽しい読み物であり、あなたを私のようなスーパースタントハッカーに変える可能性はないかもしれませんが、その道を歩みだすための一歩を確実に築けるものであると考えています。スクリプトキディと専門家との違いは、単に他人のツールを使用しているか自身でそれを記述できるかの違いであることを覚えておいてください。

Charlie Miller
St. Louis, Missouri
September 2014

前書き

 Python Hacker。これらは私を形容するためによく使用される2つの単語です。Immunityでは、Pythonのコーディングのノウハウを持つ人々と十分に作業できたことは私にとって幸運なことでした。私はそのようなノウハウを持ち合わせていなかったからです。私は多大な時間をペネトレーションテストに費やしており、これには実行と分析を中心に迅速なPythonツール開発が必要とされます(これは必ずしも美しく、最適化された、または安定性のあるコードである必要はありません)。本書を通して、私のコーディングの方法を学ぶことができますが、これは私を強いペネトレーションテスターとする要素の一部であると感じております。私はこの哲学とスタイルが同様にあなたを助けることを願っています。

 本書を読み進めるにつれて、私が単一のトピックに関して深く掘り進めているわけではないこと、そしてあなたがいくつかの基礎的な知識を持っていることを理解することでしょう。このことを念頭に置いて、私は本書を通してあなたがあなた自身の方向にキックスタートを決めるためのアイデアや宿題を散りばめました。私はこれらのアイデアを探求ることをお勧めします。そして、ぜひとも、あなたの独自の実装やツールの使い方、またはあなたが行っている宿題について聞いてみたいです。

 他の技術的な書籍と同様に、Pythonのスキルレベル(または一般的な情報セキュリティの知識)の異なる読者によって本書から異なった経験を得ることでしょう。本書の隅々まで読み込む人もいれば、読者の中には単に必要な部分やコンサルティングに関係のある章だけを読む人がいるかもしれません。私はあなたがPythonの初心者~中級者のプログラマであれば、本書の初めから順番にストレートに読み進めることを推奨します。そうすることで道筋に沿って基礎的な要素をピックアップすることができるでしょう。

 始めに、第2章でネットワークの基礎を敷設して、第3章ではRAWソケットを介して作業を進め、第4章でScapyを使用していくつかの興味深いネットワークツーリングを解説します。第5章でWebアプリケーションのハッキングや独自のカスタムツーリングを構成する方法について説明し、第6章では著名なツールであるBurp Suiteを拡張する方法について解説します。その後の章ではトロイの木馬についての話にかなりの時間を費やすことになり、第7章ではGitHubコマンド&コントロールで始まり、第10章までの全ての章を通してWindowsにおける権限昇格のトリックをカバーしています。

 最後の章ではいくつかの攻撃用のメモリフォレンジック技術の自動化のためのボラティリティーの使用について説明します。私はサンプルコードを短く要点を絞って記述して、解説を残すように努めます。あなたがPythonに比較的慣れていない場合には、とにかくサンプルコードの全てを実際にコーディングして脳内に焼き付けることをお勧めします。本書内のサンプルソースコードのすべては http://nostarch.com/blackhatpython/ で確認することができます。それでは参りましょう!