12 KiB
WmicExec
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを発見しましょう。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
動作原理
Wmiは、ユーザー名/(パスワード/ハッシュ)がわかるホストでプロセスを開くことができます。その後、Wmiexecは、実行する各コマンドを実行するためにwmiを使用します(これがWmicexecが半対話型シェルを提供する理由です)。
dcomexec.py: このスクリプトは、異なるDCOMエンドポイント(ShellBrowserWindow DCOMオブジェクト)を使用して、wmiexec.pyと似た半対話型シェルを提供します。現在、MMC20.アプリケーション、Shell Windows、およびShell Browser Windowオブジェクトをサポートしています(ここから)。
WMIの基礎
名前空間
WMIは、\rootコンテナと呼ばれるディレクトリスタイルの階層で分割されており、\rootの下に他のディレクトリがあります。これらの「ディレクトリパス」は名前空間と呼ばれます。
名前空間の一覧:
#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
以下のコマンドを使用して、名前空間のクラスをリストします:
wmic /namespace:\\root\cimv2 CLASS __NAMESPACE
このコマンドは、指定した名前空間内のクラスを表示します。
gwmwi -List -Recurse #If no namespace is specified, by default is used: "root\cimv2"
gwmi -Namespace "root/microsoft" -List -Recurse
クラス
WMIクラス名(例:win32_process)は、WMIアクションの出発点です。常にクラス名とその場所である名前空間を知る必要があります。
win32
で始まるクラスの一覧を表示します。
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*"
クラスを呼び出す:
#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
メソッド
WMIクラスには、実行できる1つ以上の関数があります。これらの関数はメソッドと呼ばれます。
#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
#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)
WMI列挙
WMIサービスの確認
WMIサービスが実行されているかどうかを確認する方法は次の通りです:
#Check if WMI service is running
Get-Service Winmgmt
Status Name DisplayName
------ ---- -----------
Running Winmgmt Windows Management Instrumentation
#From CMD
net start | findstr "Instrumentation"
システム情報
To obtain system information using WMIC, you can use the following command:
wmic os get Caption, Version, OSArchitecture, Manufacturer, BuildNumber
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.
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.
Get-WmiObject -ClassName win32_operatingsystem | select * | more
プロセス情報
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.
To list all running processes, you can run the following command:
wmic process get Caption,ProcessId,CommandLine
This will display the name of the process (Caption
), its process ID (ProcessId
), and the command line arguments used to launch the process (CommandLine
).
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:
wmic process where "Name='process_name'" get Caption,ProcessId,CommandLine
Replace process_name
with the name of the process you want to find.
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:
wmic process get Caption,ProcessId,CommandLine /order by ProcessId
This will display the processes sorted by their process ID in ascending order.
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.
Get-WmiObject win32_process | Select Name, Processid
攻撃者の視点から見ると、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
Get-WmiObject Win32_Processor -ComputerName 10.0.0.182 -Credential $cred
手動リモートWMIクエリ
たとえば、リモートマシン上でローカル管理者を発見する非常にステルスな方法があります(ドメインはコンピュータ名であることに注意してください):
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エージェントを実行します。
wmic /node:ordws01 /user:CSCOU\jarrieta path win32_process call create "**empire launcher string here**"
実行が成功しました(ReturnValue = 0)。そして、1秒後にEmpireリスナーがそれをキャッチします。プロセスIDがWMIが返したものと同じであることに注意してください。
この情報はここから抽出されました:https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを発見しましょう。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループに参加するか、telegramグループに参加するか、Twitterで私をフォローしてください🐦@carlospolopm.
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。