hacktricks/windows-hardening/ntlm/wmicexec.md

201 lines
12 KiB
Markdown
Raw Normal View History

2022-08-13 23:06:40 +00:00
# WmicExec
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
2022-04-28 16:01:33 +00:00
</details>
2023-07-07 23:42:27 +00:00
## 動作原理
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
Wmiは、ユーザー名/(パスワード/ハッシュがわかるホストでプロセスを開くことができます。その後、Wmiexecは、実行する各コマンドを実行するためにwmiを使用しますこれがWmicexecが半対話型シェルを提供する理由です
2023-07-07 23:42:27 +00:00
**dcomexec.py:** このスクリプトは、異なるDCOMエンドポイントShellBrowserWindow DCOMオブジェクトを使用して、wmiexec.pyと似た半対話型シェルを提供します。現在、MMC20.アプリケーション、Shell Windows、およびShell Browser Windowオブジェクトをサポートしています[ここから](https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/))。
2023-07-07 23:42:27 +00:00
## WMIの基礎
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
### 名前空間
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
WMIは、\rootコンテナと呼ばれるディレクトリスタイルの階層で分割されており、\rootの下に他のディレクトリがあります。これらの「ディレクトリパス」は名前空間と呼ばれます。\
名前空間の一覧:
2021-01-20 17:41:14 +00:00
```bash
#Get Root namespaces
gwmi -namespace "root" -Class "__Namespace" | Select Name
#List all namespaces (you may need administrator to list all of them)
Get-WmiObject -Class "__Namespace" -Namespace "Root" -List -Recurse 2> $null | select __Namespace | sort __Namespace
#List namespaces inside "root\cimv2"
Get-WmiObject -Class "__Namespace" -Namespace "root\cimv2" -List -Recurse 2> $null | select __Namespace | sort __Namespace
```
2023-07-07 23:42:27 +00:00
以下のコマンドを使用して、名前空間のクラスをリストします:
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
wmic /namespace:\\root\cimv2 CLASS __NAMESPACE
```
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
このコマンドは、指定した名前空間内のクラスを表示します。
2021-01-20 17:41:14 +00:00
```bash
gwmwi -List -Recurse #If no namespace is specified, by default is used: "root\cimv2"
gwmi -Namespace "root/microsoft" -List -Recurse
```
2023-07-07 23:42:27 +00:00
### **クラス**
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
WMIクラス名win32\_processは、WMIアクションの出発点です。常にクラス名とその場所である名前空間を知る必要があります。\
`win32`で始まるクラスの一覧を表示します。
2021-01-20 17:41:14 +00:00
```bash
Get-WmiObject -Recurse -List -class win32* | more #If no namespace is specified, by default is used: "root\cimv2"
gwmi -Namespace "root/microsoft" -List -Recurse -Class "MSFT_MpComput*"
```
2023-07-07 23:42:27 +00:00
クラスを呼び出す:
2021-01-20 17:41:14 +00:00
```bash
#When you don't specify a namespaces by default is "root/cimv2"
Get-WmiObject -Class win32_share
Get-WmiObject -Namespace "root/microsoft/windows/defender" -Class MSFT_MpComputerStatus
```
2023-07-07 23:42:27 +00:00
### メソッド
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
WMIクラスには、実行できる1つ以上の関数があります。これらの関数はメソッドと呼ばれます。
2021-01-20 23:53:30 +00:00
```bash
#Load a class using [wmiclass], leist methods and call one
$c = [wmiclass]"win32_share"
$c.methods
#Find information about the class in https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-share
$c.Create("c:\share\path","name",0,$null,"My Description")
#If returned value is "0", then it was successfully executed
```
```bash
#List methods
Get-WmiObject -Query 'Select * From Meta_Class WHERE __Class LIKE "win32%"' | Where-Object { $_.PSBase.Methods } | Select-Object Name, Methods
#Call create method from win32_share class
Invoke-WmiMethod -Class win32_share -Name Create -ArgumentList @($null, "Description", $null, "Name", $null, "c:\share\path",0)
```
2023-07-07 23:42:27 +00:00
## WMI列挙
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
### WMIサービスの確認
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
WMIサービスが実行されているかどうかを確認する方法は次の通りです
2021-01-20 17:41:14 +00:00
```bash
#Check if WMI service is running
Get-Service Winmgmt
Status Name DisplayName
------ ---- -----------
Running Winmgmt Windows Management Instrumentation
#From CMD
net start | findstr "Instrumentation"
```
2023-07-07 23:42:27 +00:00
### システム情報
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
To obtain system information using WMIC, you can use the following command:
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
wmic os get Caption, Version, OSArchitecture, Manufacturer, BuildNumber
2021-01-20 17:41:14 +00:00
```
2023-07-07 23:42:27 +00:00
This command will retrieve the following information:
- Caption: The name of the operating system.
- Version: The version number of the operating system.
- OSArchitecture: The architecture of the operating system (32-bit or 64-bit).
- Manufacturer: The manufacturer of the operating system.
- BuildNumber: The build number of the operating system.
2021-01-20 17:41:14 +00:00
2023-07-07 23:42:27 +00:00
By running this command, you will be able to gather important system information that can be useful for various purposes, such as troubleshooting or system analysis.
2021-01-20 17:41:14 +00:00
```bash
2023-07-07 23:42:27 +00:00
Get-WmiObject -ClassName win32_operatingsystem | select * | more
2021-01-20 17:41:14 +00:00
```
2023-07-07 23:42:27 +00:00
### プロセス情報
2023-07-07 23:42:27 +00:00
To obtain information about running processes on a Windows system, you can use the `wmic` command. This command allows you to query various attributes of processes, such as their process ID (PID), parent process ID (PPID), command line arguments, and more.
2023-07-07 23:42:27 +00:00
To list all running processes, you can run the following command:
2023-07-07 23:42:27 +00:00
```plaintext
wmic process get Caption,ProcessId,CommandLine
2021-01-09 15:04:24 +00:00
```
2023-07-07 23:42:27 +00:00
This will display the name of the process (`Caption`), its process ID (`ProcessId`), and the command line arguments used to launch the process (`CommandLine`).
2023-07-07 23:42:27 +00:00
You can also filter the results based on specific criteria. For example, to find all processes with a specific name, you can use the `where` clause:
2023-07-07 23:42:27 +00:00
```plaintext
wmic process where "Name='process_name'" get Caption,ProcessId,CommandLine
```
2023-07-07 23:42:27 +00:00
Replace `process_name` with the name of the process you want to find.
2023-07-07 23:42:27 +00:00
Additionally, you can sort the results based on a specific attribute. For example, to sort the processes by their process ID in ascending order, you can use the `order by` clause:
```plaintext
wmic process get Caption,ProcessId,CommandLine /order by ProcessId
```
2023-07-07 23:42:27 +00:00
This will display the processes sorted by their process ID in ascending order.
2023-07-07 23:42:27 +00:00
By using the `wmic` command, you can gather valuable information about running processes on a Windows system, which can be useful for troubleshooting, monitoring, or security purposes.
```bash
Get-WmiObject win32_process | Select Name, Processid
2022-08-13 23:06:40 +00:00
```
2023-07-07 23:42:27 +00:00
攻撃者の視点から見ると、WMIはシステムやドメインに関する機密情報を列挙するために非常に価値があります。
```
wmic computerystem list full /format:list
wmic process list /format:list
wmic ntdomain list /format:list
wmic useraccount list /format:list
wmic group list /format:list
wmic sysaccount list /format:list
```
2021-01-03 18:40:02 +00:00
```bash
2023-07-07 23:42:27 +00:00
Get-WmiObject Win32_Processor -ComputerName 10.0.0.182 -Credential $cred
```
2023-07-07 23:42:27 +00:00
## **手動リモートWMIクエリ**
2023-07-07 23:42:27 +00:00
たとえば、リモートマシン上でローカル管理者を発見する非常にステルスな方法があります(ドメインはコンピュータ名であることに注意してください):
```bash
wmic /node:ordws01 path win32_groupuser where (groupcomponent="win32_group.name=\"administrators\",domain=\"ORDWS01\"")
```
もう一つ便利なワンライナーは、マシンにログインしているユーザーを確認することです(管理者を追跡する場合に使用します):
```
wmic /node:ordws01 path win32_loggedonuser get antecedent
```
`wmic`は、テキストファイルからノードを読み取り、それら全てにコマンドを実行することもできます。もしワークステーションのテキストファイルがある場合は、以下のように実行できます。
```
wmic /node:@workstations.txt path win32_loggedonuser get antecedent
```
**WMIを介してリモートでプロセスを作成し、Empireエージェントを実行します。**
```bash
wmic /node:ordws01 /user:CSCOU\jarrieta path win32_process call create "**empire launcher string here**"
```
実行が成功しましたReturnValue = 0。そして、1秒後にEmpireリスナーがそれをキャッチします。プロセスIDがWMIが返したものと同じであることに注意してください。
2023-07-07 23:42:27 +00:00
この情報はここから抽出されました:[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
2022-04-28 16:01:33 +00:00
</details>