web-dev-qa-db-ja.com

自宅で侵入テストを学ぶには?

私は、その方向でのキャリアに向けて、倫理的なハッキングまたは侵入テストを学ぶことに興味があります。

私はLinuxとUNIX、コンピュータの基本的な理論と実践、およびプログラミングの基本的な知識(配列、メソッド、ループ)に精通しています。

私はグリュイエールとウェブゴートを見てきましたが、これらは私には高度すぎると思います。彼らは、問題を十分に説明せずに問題を解決するように求め、なぜ攻撃に使用して例を示すことができるのかを尋ねます。

この情報を自分で教えることができる、自宅からできる無料のコースやインタラクティブプログラムはありますか?

ボーナスは、この領域で役立つプログラミングレッスンを提供することです。たとえば、JavaScriptにCookieの攻撃と操作を示すように教えることです。

48
Cyrus

無料のオプションはほとんどありませんが、特定の攻撃方法や製品/ツールに関するビデオやチュートリアルがたくさんあります。ペネトレーションテスターに​​はなりませんが、無料の学習リソースです。

あなたを始めるためのいくつかのまともなオプション:

実際には、いくつかのリソースがあります。

  • Metasploitable VM(およびその他の意図的に脆弱なVM)
  • DVWA
  • ムラサキ科
  • WebGoat
  • ヴルンハブ
  • hack.me

このサイトで、無料の学習リソースに関する意見を提供している他の人々を検索してみてください。しかし、学ぶ唯一の方法は、手を汚すことです。

引き続き取り組み、質問を続けてください!

51
schroeder

ツール、脆弱な練習用アプリなどへのリンクに加えて、侵入テスト実行標準は、アプローチテストの方法に関する最も明確な標準になることを目指しています:- http://www.pentest-standard.org/index.php/Main_Page

8
Rory Alsop

VM Playerを使用してこれらを仮想マシンに配置し、遊ぶことができます。

くそ脆弱なLinux( http://sourceforge.jp/projects/sfnet_virtualhacking/downloads/os/dvl/DVL_1.5_Infectious_Disease.iso/

氷結/ハッカー血症( http://forums.heorot.net/

学ぶために、オープンソースセキュリティテスト方法論マニュアル(http://isecom.securenetltd.com/osstmm.en.2.1.pdf)のようなさまざまな侵入テスト方法論を検討します。これらは通常、確認する項目のリストを提供します。次に、これらのチェックリストを使用して、さまざまなテクノロジーを打ち負かす方法に関するWeb上のさまざまなチュートリアルを検索できます。

私が最近読んだ優れた本の1つは、セキュリティツールとエクスプロイト( http://www.Amazon.com/Writing-Security-Tools-Exploits-Foster/dp/159749997/ref=sr_1_1?ie = UTF8&qid = 1328592753&sr = 8-1 )。基本的なアセンブリ、シェルコードの作成、バッファオーバーフローの検出と書き込みのヒント、フォーマット文字列、ヒープ攻撃などについて説明します。この本は少し古く、ASLRやNXなどはカバーしていませんが、優れた説明を備えた多数の例で確固たる基礎を提供しています。

6
Dylan

情報セキュリティは非常に広い分野であり、インフラストラクチャセキュリティ、アプリケーションセキュリティ、ネットワークセキュリティなどのさまざまなサブフィールドで構成されています。あなたの質問から、あなたが興味を持っている分野はWebアプリケーションセキュリティだと思います-WebGoatとGruyeresは、Webアプリケーションセキュリティの最も一般的な脆弱性を教えるための2つの脆弱なアプリケーションです。これは彼らが言及し、説明する唯一の主題です。

私の正直な意見では、Webアプリケーションのセキュリティを開始する最良の方法は、 OWASPトップ1 リストと説明を読み、Webアプリケーションの脆弱性をテストし続けることです(もちろん、独自のQAマシンに対してのみ)または管理者の書面による同意がある場合)。前述のように、Fundstone(現在のMcAfee)Hacmeシリーズは非常に優れており、多くの言語(使い慣れた言語が見つかる可能性があります)で提供され、Hacmeアプリケーションの操作方法と破壊方法に関する詳細なチュートリアルが付属しています。

脆弱なアプリケーションと仮想マシンのより完全なリストについては、 脆弱なアプリケーション市場 を試してみるとよいでしょう。

少し古くはありますが、もう1つの優れた学習方法は、無料でさまざまな科目を教える MSDN Security Labs に合格することです。

  • 開発者スターターキット:バッファーオーバーフロー
  • 開発者スターターキット:コード分析
  • 開発者スターターキット:コンパイラの防御
  • 開発者スターターキット:ファズテスト
  • 開発者スターターキット:セキュリティコードレビュー開発者スターターキット:SQLインジェクションの脆弱性

幸運を!

5
Boaz Tirosh

ここでの提案のほとんどは、いくつかの優れたリソースとアイデアを指しています。 VMテスト環境では VirtualBox を使用することをお勧めします。また、予備の資金がある場合は、 TechNet Subscription を取得して、十分なテストボックスを構築できるようにします。 CERTまたは別の組織もダウンロード可能なWindowsベースのVMイメージをいくつか公開していると思いますが、だれがそれを実行したのか、どこにあるのか、はっきりとは思い出せません。

VMの実行にはVirtualBoxをお勧めしますが、すべてのVMが同じ仮想化プラットフォームで実行されている場合にテストが最適に機能することに注意してください。したがって、VMWare Playerで実行されているシステムをハッキングする場合は、VMWare Playerにも攻撃システムを配置する必要があります。

3
Iszi

シュローダーの優れた(+1)答えに少し追加します。

http://exploit-exercises.com は興味深いものです。どういうわけかエスカレートするための課題を持つそのいくつかの仮想マシン。 Nebulaは、欠陥のある環境で通常のアカウントからrootにエスカレーションする方法を教えています-解決策の多くは標準的なトリックです(環境変数を信頼したり、ユーザー入力でevalを実行したり、実行可能ファイルが実行されると仮定したりしないでください提案されたように)。

Protostar/fusionはより高度です(例:バッファオーバーフロー)。

[〜#〜] wahh [〜#〜] (無料ではありませんが、安価です)と Linux/Unixでのセキュアプログラミング もお勧めします。

2
dr jimbob

私はすべての回答を読んだわけではありませんが、侵入テストについて学び、これを無料で行うために、irongeek.comによるこの一連のチュートリアルを試すことができます: http://www.irongeek.com/i .php?page = videos/web-application-pen-testing-tutorials-with-mutillidae

これは、ペンテストの練習に使用できる、mutillidaeと呼ばれる意図的に脆弱なWebアプリケーションをダウンロードする手順です。アプリケーションmutillidaeには、学習に役立つヒントがあります。何らかのLAMPサーバーがある場合は、フォルダーをサーバーのwwwフォルダーにドロップして、ローカルループバックアドレス127.0.0.1でそれにアクセスできます。また、MySQLサーバーでいくつかのデータベーステーブルを作成する必要もあります。そのため、このペンテストツールは、現時点ではおそらくより高度なものです。テーブルへのデータの取り込みはそれほど難しくありません。また、必要なデータベースを作成していません。 :D

これは、Kali LinuxまたはUbuntuを実行している仮想マシンで実行するのに最適です。特に、マシンに十分なRAM=およびCPUパワーがある場合。

これにより、SQLインジェクション、クロスサイトスクリプティング、および安全なコーディングプラクティスなどから身を守るために学ぶことができるその他の種類の攻撃など、あらゆる種類のことを学ぶことができます。

1
user_loser

さまざまなPHPアプリケーションを初期期間にダウンロードしますローカルアプリケーションでホストし、2つの異なる方法を使用してその中の脆弱性を見つけてください

  1. OWASPテスト方法- https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf 2.WATC- http://projects.webappsec.org/f/ WASC-TC-v1_0.pdf

手動のペンテストについてあまり知識がない場合は、localhostでホストされているアプリケーションに対してacunetixとnessusを実行し、それらによって生成された結果を確認してから、BURPスイートを使用して手動で悪用してみてください。それはあなたにブーストと自信を与えます。

次に、これらの方法論のいずれかに進みます。

この方法論の専門知識を身に付けたら、独自のテストチェックリストを作成し、新しいテストケースを見つけるたびに追加してください。

これらをすべて実行したら、バグ報奨金プログラムに参加します。

BUGCROWDは非常に評判の良いバグ報奨金プログラムであり、ここでペンテストを実行できるベンダーのリストを見つけることができます。 https://bugcrowd.com/list-of-bug-bounty-programs

これは、プロセス全体がどのようになるかです。

1
FrOgY

基本から始めたいですか? 0:57にジャンプ

フォンノイマンアーキテクチャを利用しているため、ほとんどすべての利用が存在します。データをコードとして扱うことができるときはいつでも、攻撃ベクトルがあります。アーキテクチャ、プラットフォーム、テクノロジースタックなどは関係ありません...最近のWebアプリケーションは、ブラウザー内のHTML/Javascriptなど、複数のコンテキストを横断しています。 (攻撃ベクトル!)

悪用とは、ターゲットにコードを実行させることを意味します。それがSQLインジェクション、XSS、シェルコードの背後にあるポイントです-すべてについて!ペンテスターに​​なることを学びたい場合は、「ペンテスターのオープンソースツールキット」を入手してください。 (合法的に入手可能な無料バージョンがあります。)

Defconの講義は自由に利用でき、私がこれまでに受けた中で最高の総合クラスの一部です。しかし、何よりも:手を汚さなければなりません。あなたはウェブゴートについて言及しました。 TamperdataをFirefoxにインストールしましたか? Wiresharkをインストールしましたか?ハッキングとは、何が起こっているのかがわかるように、できるだけ多くのツールでデータを収集することです。このビデオでは、監視について多くのことを話します...すべて...

https://www.youtube.com/watch?v=Jwot7S6NmLE

0
avgvstvs

ポットに2セント追加したいのですが。 Computerphile および 彼自身のチャンネル に関するトムスコットのセキュリティビデオのいくつかを確認することから始めるとよいでしょう。彼らは技術的に健全で、概念を非常に明確に説明しています。その後、好奇心があなたを導きましょう。

nmapをインストールして、Amazonのサーバーなど、何がわかるかを確認してください。 SQLインジェクションについて調べます。 SHA-1またはMD5フリースタートについてはどうですか?それはいくらかかりますか?このような質問は、情報セキュリティの分野をより深く理解するのに役立ちます。

これを覚えておいてください。保護またはハッキングしようとしているものを知る必要があります。たとえば、ネットワークをハッキングするにはTCP=とWebサイトのJSを知っている必要があります。


ジェフの回答は、横向きではあるが、いくつかの洞察を提供しています。たとえば、いくつかの種類のツールを使用して、独自のAmazon AWSサーバーをセットアップし、DDoSを実行してみてください。

また、実際のWebサイトでハッカーとして(合法的に)あなたのスキルをテストし、セキュリティバグ報奨金プログラムで少し知識を得ることができます。 Hackerone は、そのようなプログラムのディレクトリを提供します。

0

まず最初に、どの種類またはどの領域のペンテストを開始するかを検討する必要があります。たとえば、Web(OWASP、CTF)の脆弱性の検索を開始したり、開いているポートの検索を開始したり、実行中のサービスを分析したりすることができます(現在のバージョンのエクスプロイトに関する情報の検索など)。

私は最初のものをお勧めします。 1つ目は最も理解しやすいため、2つ目はシステムよりも不正なコード化されたWebの脆弱性を見つけることが最も多いため、3つ目は主題について多くの資料があり、知識(CTF)をテストできる無料の課題があるためです

0
eez0

私は専門家ではありませんが、FoundstoneのHacme Bankでかなりの時間を費やしました(これも追加するといいと思いました)。

0
Lex