Tecniche per l'evasione di Anti Virus

11

Quali sono alcune buone tecniche di evasione anti virus quando si utilizza ps_exec? Come pentester, spesso incontro situazioni in cui non è possibile, per esempio sfruttare una macchina mentre eseguono software anti-virus sulle loro macchine. Parlo principalmente dei binari che vengono salvati sulla macchina della vittima prima di essere eseguiti.

Quali sono alcune buone tecniche per, ad esempio, generare dinamicamente un payload del tester in modo da poter eludere il software AV.

    
posta Lucas Kauffman 23.10.2013 - 21:06
fonte

5 risposte

15

Ci sono strategie per migliorare le possibilità di eludere l'AV di un bersaglio. La strategia generale è cercare di sviluppare una backdoor che sia il più unica possibile. La scrittura della tua backdoor da zero sarà la più efficace.

Una busta protetta o "crittografata" sul malware è una strategia comune. Tuttavia, l'AV a volte contrassegna la busta e assume che il contenuto sia malware, cosa che a volte accade con UPX . A partire dal 2015, Veil-Evasion è diventata la mia busta preferita utilizzata per eludere il software anti-virus di firma.

    
risposta data 23.10.2013 - 21:44
fonte
10

Per evitare la soluzione antivirus, devi prima capire come l'antivirus segnala la tua particolare backdoor. Il primo metodo utilizzato dal motore AV è l'ampio set di firme di file dannosi per la ricerca di determinati pattern e firme in un file eseguibile. Nel caso di Metasploit, le soluzioni AV dispongono di firme per il modello exe predefinito (data / template / template_x86_windows.exe) e qualsiasi file eseguibile generato utilizzando questo modello predefinito verrà contrassegnato dall'AV, indipendentemente dal codice shell corrente in esso contenuto. Un modo semplice per superare questo problema sarà quello di generare il tuo shellcode separatamente e quindi creare un exe personalizzato e incorporare lo shellcode in esso. Bypassare lo shellcode è facile usando l'encoder shikata_ga_nai poiché è un encoder polimorfico che genera ogni volta uno shellcode diverso.

La tecnica successiva utilizzata dal motore AV è la sandbox in cui la backdoor verrà eseguita per un periodo di tempo molto breve e il suo comportamento verrà analizzato in fase di esecuzione. Cercherà segni come allocare un blocco di memoria RWX o stabilire una connessione inversa. Un modo semplice per aggirare questo è utilizzare un ciclo fittizio o blocchi di codice che vengono eseguiti fino alla scadenza del timer sandbox senza eseguire attività dannose.
Infine, i moderni motori AV hanno più componenti come un modulo separato per il traffico di rete, web, email ecc. Poiché meterpreter è un payload in staging in cui il primo stager scarica il file DLL meterpreter della seconda fase, se la connessione attraverso la quale la DLL viene trasferita non è crittografato, la seconda fase della DLL verrà rilevata indipendentemente dal fatto che sia stato bypassato l'AV nella prima fase o meno. È possibile utilizzare il tester meter HTTPS di inversione o binding per ignorare questa restrizione.
Ho usato Veil in alcune occasioni ed è un modo semplice per bypassare AV. L'unica limitazione è l'aumento di dimensioni dovuto all'interprete Python completo che deve essere incorporato con l'EXE. Veil può fare il suo lavoro utilizzando gli exe nativi e senza richiedere l'interprete python, ma la dimensione del codice è ancora aumentata a causa della routine di crittografia e decrittografia. Se la dimensione non è un problema, puoi usare Veil. Tuttavia, in determinati ambienti (come i dispositivi embedded o le firme delle dimensioni dei file IDS) dove la dimensione è davvero un grosso ostacolo, devi creare da solo una backdoor personalizzata da zero.

    
risposta data 23.10.2013 - 22:56
fonte
5

Oltre all'utilizzo di Un framework interessante mi è piaciuto Veil . È un framework che aiuta a generare payload e binari progettati specificamente per eludere il software antivirus. È disponibile nel repository Kali.

    
risposta data 23.10.2013 - 21:06
fonte
0

La maggior parte degli AV sembra rilevare il "template" exe / pe piuttosto che il payload crittografato. Prova a creare il tuo programma c di base che esegue shellcode ad un certo punto. È possibile scrivere codice inutile tutto intorno alla chiamata del carico utile effettivo per generare ogni volta programmi unici. Prova a combinare un paio di round shikata_ga_nai (msfecnode) con il tuo modello exe personalizzato.

    
risposta data 23.10.2013 - 22:39
fonte
-1

Alcuni dei metodi migliori che funzionano sono:

  1. Codifica il tuo eseguibile o genera una backdoor meterpreter usando shellcode e quindi incorporalo nel tuo programma, usa XOR o qualsiasi schema di codifica equivalente e decrittalo in fase di runtime. Utilizza i loop, operazioni IO per ritardare l'esecuzione per un po 'di tempo. Generalmente, i file eseguibili che consumano CPU al 100% vengono saltati da alcuni fornitori di AV. Quindi, se il tuo eseguibile inizia consumando il 100% della CPU per i prossimi 2 minuti, alla fine ignorerà alcuni controlli come l'analisi sandbox di 15 secondi ecc.

  2. Per Persistenza, usa l'utilità di pianificazione anziché le funzioni di registro

  3. Firma autonomamente l'eseguibile, evita molti AV. L 'esempio recente è Petya Ransomware

  4. Scramble i nomi delle funzioni e implementa la protezione Anti-VM

risposta data 05.07.2017 - 22:00
fonte

Leggi altre domande sui tag