TryHackMe(THM):Pentesting Fundamentals

目次

この記事は、DeepL翻訳を利用して和訳しています。

www.deepl.com

このサイトに書かれている攻撃手法は「自分に権利のあるサイト」以外では使用しないでください

 

Task 1 What is Penetration Testing?

f:id:akebono-haze:20220207172101p:plain

倫理的ハッキングの技術的な実践面を教える前に、ペネトレーションテスターの職責や、ペンテスト(クライアントのアプリケーションやシステムの脆弱性を発見すること)を行う際にどのようなプロセスを踏むのかについて詳しく理解する必要があります。
サイバーセキュリティの重要性と関連性はますます高まっており、生活のあらゆる場面で活用されています。私たちの画面には、また新たなハッキングやデータ流出を伝えるニュースの見出しがあふれています。
    
サイバーセキュリティは、電子メールを守るための強力なパスワードポリシーや、デバイスとデータの両方を損害から守る必要のある企業など、現代社会のすべての人々に関係しています。
    
ペネトレーションテスト(ペンテスト)は、これらの資産や情報を保護するためのセキュリティ対策をテストし、分析するための倫理的な試みです。ペネトレーションテストでは、悪意のある人が使用するのと同じツール、テクニック、方法論を使用し、監査に似た作業を行います。
    
サイバーセキュリティの業界誌「Security Magazine」によると、毎日2,200件以上のサイバー攻撃が行われており、39秒に1件の割合で攻撃が行われています。
    
Answer the questions below

Read me!

Task 2 Penetration Testing Ethics

f:id:akebono-haze:20220207172459p:plain

ペネトレーションテストに限らず、サイバーセキュリティにおける合法性と倫理性の戦いは、常に議論の的となっています。「ハッキング」や「ハッカー」といった言葉は、特にポップカルチャーにおいては、少数の悪人のおかげで、しばしば否定的な意味合いを持っています。コンピュータシステムへのアクセスを合法的に行うというのは、なかなか理解しがたい概念ですが、結局のところ、何をもって合法とするのでしょうか。

ペネトレーションテストとは、コンピュータシステムのセキュリティと防御を、システムの所有者が合意した上で、承認された方法で監査することです。この意味でペネトレーションの合法性は極めて明確であり、この合意から外れたものは無許可のものとみなされます。
ペネトレーションテストを開始する前に、ペネトレーションテスト担当者とシステム所有者との間で正式な話し合いが行われます。様々なツールや技術、テスト対象のシステムについて合意します。この話し合いによって、ペネトレーションテスト契約の範囲が形成され、ペネトレーションテストのコースが決定されます。
 

f:id:akebono-haze:20220207172625p:plain

ペネトレーションテストのサービスを提供する企業は、法的な枠組みや業界の認定に照らし合わせて行われます。例えば、英国ではNCSC(National Cyber Security Centre)が「CHECK」という認定スキームを持っています。この「CHECK」とは、「[CHECK]認定を受けた企業のみが、公的機関やCNIのシステムやネットワークに対して認可されたペネトレーションテストを行うことができる」というものです。(NCSC)とされています。)

倫理とは、善と悪の間の道徳的な議論です。ある行為が合法的であっても、それが個人の善悪の信念体系に反する場合があります。

ペネトレーションテスト担当者は、ペネトレーションテスト中に、道徳的に問題のある判断を迫られることがよくあります。例えば、データベースにアクセスして、潜在的にセンシティブなデータを見せられたとします。あるいは、組織の人的セキュリティをテストするために、従業員にフィッシング攻撃を行うこともあるでしょう。初期段階でその行為が合意されていれば、それは合法ですが、倫理的には疑問が残ります。

ハッカーは3つのハットに分類され、それぞれの倫理観や行動の動機によって、どのハットに分類されるかが決まります。ここでは、その3つのハットについて説明します。

 

Hat Category  Description Example
White Hat ホワイトハット これらのハッカーは、「善良な人々」と考えられています。彼らは法律の範囲内で、自分のスキルを他人のために使います。 例えば、ペネトレーション・テスターが、ある企業に対して認可された業務を行う場合などです。
Grey Hat 自分のスキルを他人のために使うことが多いが、常に法律や倫理基準を尊重/遵守しているわけではない。 例えば、ある人が詐欺サイトを削除したとします。
Black Hat ブラックハット これらの人々は犯罪者であり、しばしば組織に損害を与えたり、他者を犠牲にして何らかの金銭的利益を得ようとします。 例えば、ランサムウェアの作者は、デバイスに悪意のあるコードを感染させ、データを身代金として要求します。

 

ルール・オブ・エンゲージメント(ROE)

 

ROE は、侵入テストの初期段階で作成される文書です。この文書は、3つの主要セクション(以下の表で説明)で構成されており、最終的にエンゲージメントをどのように実施するかを決定する責任があります。SANS instituteには、この文書の素晴らしい例があり、こちらからオンラインで見ることができます。

f:id:akebono-haze:20220207173902p:plain

Section Description
Permission 文書のこのセクションでは、エンゲージメントを実施するための明確な許可を与えます。この許可は、個人や組織が実施する活動を法的に保護するために不可欠です。
Test Scope このセクションでは、エンゲージメントが適用されるべき特定のターゲットを注釈します。例えば、ペネトレーションテストは、特定のサーバやアプリケーションにのみ適用され、ネットワーク全体には適用されません。
Rules ルールセクションでは、エンゲージメント中に許可される技術を正確に定義します。例えば、フィッシング攻撃は禁止だが、MITM(Man-in-the-Middle)攻撃はOKというように、ルールを明確に定めることができます。


Answer the questions below

You are given permission to perform a security audit on an organisation; what type of hacker would you be?

Hackerの表から解答がわかります。

You attack an organisation and steal their data, what type of hacker would you be?

これもHackerの表から解答がわかります。

What document defines how a penetration testing engagement should be carried out?


説明文を読んでいくと解答が書かれています。

Task 3  Penetration Testing Methodologies

侵入テストには、さまざまな目的や対象があります。そのため、どのペネトレーションテストも同じではなく、ペネトレーションテスト担当者がどのようにアプローチすべきかについても、一概には言えません。

侵入テスト担当者が作業中にとる手順は、方法論として知られています。実用的な方法論とは、スマートなもので、取るべきステップが目下の状況に関連しているものです。例えば、ウェブアプリケーションのセキュリティをテストするための方法論を持っていても、ネットワークのセキュリティをテストしなければならない場合には実用的ではありません。

いくつかの異なる業界標準の方法論を説明する前に、すべての方法論が以下の段階の一般的なテーマを持っていることに注意する必要があります。

Stage Description
Information Gathering

この段階では、OSINTやリサーチなどで、ターゲット/組織に関する一般にアクセス可能な情報を可能な限り収集します。
注:この作業にはシステムのスキャンは含まれていません。

Enumeration/Scanning この段階では、システム上で動作しているアプリケーションやサービスを発見します。例えば、潜在的脆弱性を持つ可能性のあるWebサーバを発見することができます。
Exploitation この段階では、システムやアプリケーションに発見された脆弱性を利用します。この段階では、公開されているエクスプロイトを利用したり、アプリケーションのロジックを悪用したりします。
Privilege Escalation システムやアプリケーションを悪用することに成功したら(「足場」と呼ばれます)、この段階では、システムへのアクセスを拡大しようとします。エスカレーションには水平方向と垂直方向があり、水平方向は同じ権限グループの別のアカウント(例:別のユーザー)へのアクセス、垂直方向は別の権限グループ(例:管理者)へのアクセスとなります。
Post-exploitation このステージにはいくつかのサブステージがあります。
  • 他のホストをターゲットにできるか(ピボット)
  • 特権ユーザであるがゆえに、ホストから収集できる追加情報は何か?
  • 痕跡を消す
  • 報告

 

OSSTMM

f:id:akebono-haze:20220207182015p:plain

「Open Source Security Testing Methodology Manual」は、システム、ソフトウェア、アプリケーション、通信、そしてサイバーセキュリティの人間的側面に関するテスト戦略の詳細なフレームワークを提供しています。

この方法論は、主にこれらのシステムやアプリケーションがどのように通信するかに焦点を当てているため、以下のような方法論が含まれています。

  1. 通信(電話、VoIPなど)
  2. 有線ネットワーク
  3. 無線通信
 Advantages Disadvantages
様々なテスト戦略を徹底的に網羅しています。 このフレームワークは理解するのが難しく、非常に詳細で、独自の定義を使用する傾向があります。
特定のターゲットに対するテスト戦略を含む(例:通信、ネットワーク ) 意図的に空白にしています。
このフレームワークは、組織のニーズに応じて柔軟に対応することができます。 意図的に空白にしています。
このフレームワークは、システムやアプリケーションの標準を設定することを目的としており、ペネトレーションテストのシナリオにおいて、普遍的な手法を使用できることを意味しています。 意図的に空白にしています。

    
OWASP

f:id:akebono-haze:20220207182036p:plain

「Open Web Application Security Project」フレームワークは、Webアプリケーションやサービスのセキュリティをテストするためだけに使用される、コミュニティ主導で頻繁に更新されるフレームワークです。
この財団は、ウェブアプリケーションが持つ可能性のあるセキュリティ脆弱性のトップ10、テスト方法、および改善策を記載したレポートを定期的に作成しています。

Advantages Disadvantages
手に取りやすく、理解しやすい。 ウェブアプリケーションがどのようなタイプの脆弱性を持っているのか、はっきりしない場合があります(それらはしばしば重複します)。
積極的にメンテナンスを行い、頻繁に更新しています。 OWASP は、いかなる特定のソフトウェア開発ライフサイクルに対しても提案しません。
テストから報告、修正まで、エンゲージメントのすべての段階をカバーしています。 このフレームワークは、CHECKのような認定を受けていません。
Webアプリケーションとサービスに特化しています。 意図的に空白にしています。

 

NIST Cybersecurity Framework 1.1

f:id:akebono-haze:20220207182500p:plain

NIST Cybersecurity Frameworkは、組織のサイバーセキュリティ基準を向上させ、サイバー脅威のリスクを管理するために使用される一般的なフレームワークです。このフレームワークは、その人気の高さと詳細さから、ちょっとした名誉ある賞に選ばれています。
このフレームワークは、重要インフラ(発電所など)から商業施設に至るまで、組織のセキュリティ管理と成功のためのベンチマークに関するガイドラインを提供しています。 侵入テスト者が取るべき方法の標準的なガイドラインについては、限られたセクションしかありません。

Advantages Disadvantages
NISTフレームワークは、2020年までにアメリカの組織の50%で使用されると推定されています。 NISTはフレームワークを何度も繰り返しているので、どのフレームワークが自分の組織に当てはまるかを判断するのは難しいかもしれません。
このフレームワークは、組織がサイバー脅威による脅威を軽減するための基準を極めて詳細に設定しています。 NISTフレームワークでは、監査ポリシーが弱いため、侵害がどのように発生したかを判断することが困難です。
このフレームワークは非常に頻繁に更新されます。 このフレームワークでは、企業にとって急速に普及しているクラウド・コンピューティングは考慮されていません。
NISTは、このフレームワークを使用する組織の認定を行っています。 意図的に空白にしています。
NISTフレームワークは、他のフレームワークと一緒に導入することを前提に設計されています。 意図的に空白にしています。


NCSC CAF

f:id:akebono-haze:20220207183106p:plain

サイバーアセスメントフレームワーク(CAF)は、さまざまなサイバー脅威のリスクと、それに対する組織の防御力を評価するために用いられる14の原則からなる広範なフレームワークです。
このフレームワークは、重要なインフラや銀行など、「極めて重要なサービスや活動」を行っていると考えられる組織に適用されます。このフレームワークでは、主に以下の項目に焦点を当てて評価しています。

  • データセキュリティ
  • システムセキュリティ
  • アイデンティティとアクセス制御
  • レジリエンシー
  • モニタリング
  • レスポンスとリカバリーの計画
Advantages Disadvantages
このフレームワークは、政府のサイバーセキュリティ機関によって支えられています。 このフレームワークは業界ではまだ新しいものであり、組織がこのフレームワークに適合するために必要な変更を行う時間はあまりありません。
このフレームワークでは、認定を行います。 このフレームワークは、原理や考え方に基づいており、他のフレームワークのようにルールがあるという直接的なものではありません。
このフレームワークは、セキュリティから対応までの14の原則をカバーしています。 意図的に空白にしています。

 

Answer the questions below

What stage of penetration testing involves using publicly available information?

ペネトレーションテストをするためには、公開されている情報を利用するのが効率的と思われるので、始めからかな?

If you wanted to use a framework for pentesting telecommunications, what framework would you use? Note: We're looking for the acronym here and not the full name.

通信系の説明文がありましたね。

What framework focuses on the testing of web applications?

Webアプリケーションやサービスのセキュリティをテストするためだけに使用されるフレームワークの説明がありましたね。

Task 4  Black box, White box, Grey box Penetration Testing

f:id:akebono-haze:20220207205441p:plain

アプリケーションやサービスをテストする際には、3つの主要なスコープがあります。テスト対象を理解することで、侵入テストで実施するテストのレベルが決まります。このタスクでは、これら3つの異なるテストのスコープについて説明します。
    
Black-Box Testing

f:id:akebono-haze:20220207205559p:plain

このテストプロセスは、アプリケーションやサービスの内部構造に関する情報がテスト者に与えられていない、ハイレベルなプロセスです。

テスターは、一般ユーザーとして、アプリケーションやソフトウェアの機能や操作性をテストします。このテストでは、ボタンなどのインターフェイスを操作して、意図した結果が返ってくるかどうかをテストします。このタイプのテストでは、プログラミングの知識やプログラムの理解は必要ありません。
ブラックボックステストでは、ターゲットのアタックサーフェスを理解するために、情報収集やエニュメレーションの段階で費やす時間が大幅に増加します。
    
Grey-Box Testing

f:id:akebono-haze:20220207205644p:plain

このテストプロセスは、ペネトレーションテストなどで最もポピュラーなものです。ブラックボックステストホワイトボックステストの両方のプロセスを組み合わせたものです。テスト担当者は、アプリケーションやソフトウェアの内部構成について、ある程度限られた知識しか持ちません。それでも、ブラックボックスのシナリオのようにアプリケーションと対話し、アプリケーションに関する知識を使って、問題を見つけたときに解決しようとします。
グレイボックステストでは、限られた知識で時間を節約することができ、非常に強固な攻撃対象に選ばれることが多いです。
    
White-Box Testing

f:id:akebono-haze:20220207205739p:plain

このテストプロセスは、通常、プログラミングやアプリケーションロジックに詳しいソフトウェア開発者が行う低レベルのプロセスです。テスト担当者は、アプリケーションやソフトウェアの内部コンポーネントをテストし、例えば、特定の機能が正しく、合理的な時間内に動作することを確認します。
テスト者は、アプリケーションとその期待される動作について完全な知識を持つことになり、ブラックボックステストよりもはるかに時間がかかります。ホワイトボックステストのシナリオにおける完全な知識は、攻撃対象領域全体を検証できることを保証するテスト手法を提供します。

Answer the questions below

You are asked to test an application but are not given access to its source code - what testing process is this?

あるアプリケーションのテストを依頼されたが、ソースコードへのアクセス権は与えられていないので、内部構造に関する情報がわからない状態でテストする方法です。

You are asked to test a website, and you are given access to the source code - what testing process is this?

ソースコードへのアクセス権を与えられているので内部構造がわかった状態でテストする方法です。プロセスですか?

Task 5  Practical: ACME Penetration Test

ACME社があなたに課題を持ちかけてきました。彼らは、あなたが彼らのインフラストラクチャ上でペネトレーションテストのステージを実行することを望んでいます。サイトを見て(このタスクの緑のボタンをクリックして)、ガイド付きの指示に従ってこの演習を完了してください。

Answer the questions below

Complete the penetration test engagement against ACME's infrastructure.

緑のボタンをクリックします。
ペンテストの説明が書かれています。[Next]ボタンを押下するとフラグが表示されます。

 

完了!