Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - OnTheCore

#1

Los crypters es algo de lo que hablan mucho los newbies y scriptkiddies cuando descubren el malware (por no decir todos).

El 100% de los crypters en foros hispanos y públicos funcionan de la misma manera.

Generalmente se utilizan las siguientes APIs: CreateProcess, NtUnmapViewOfSection, WriteProcessMemory, SetThreadContext, ResumeThread, NtMapViewOfSection.

Lo que va a hacer ese stub es crear un proceso, supongamos notepad.exe y luego se va a reemplazar el código mapeado en memoria de notepad.exe por el código del archivo "encriptado" y va a ejecutar un hilo que apunta al inicio del mismo.

Todos los que están interesados en malware deberían saber que un antivirus se compone por varios motores para detectar malware, es decir un motor de detección por firmas, un motor de detección heurística, un emulador, etc.

Cuando alguien "programa" o "modifica" un "crypter FUD (full undetected)" lo corrobora subiendo orgulloso un troyano "encriptado" a una página como virus total. 0/64 detecciones. WOW, SO MUCH UNDETECTED, SO MUCH FUD

Siendo algo tan "indetectable" ¿por qué digo que no sirve?

Hay mucha confusión con respecto a este tema, ya que mucha gente se llena la boca escribiendo tutoriales de cosas de las que no tiene idea como funciona, pero como el método aplicado da algunos resultados, suponen que el método es realmente efectivo, pero no están en lo cierto.

Este método tan básico se viene usando hace muchos años y es algo que esta súper manejado por la industria antivirus (hablando de crypters génericos). Realmente hay cosas complejas, pero nada es gratis.

Pero si VirusTotal dice 0/64 ¿por qué no funciona?

Básicamente, cuando subimos un archivo a virus total o escaneamos un archivo, se aplica principalmente el análisis basado en firmas, heurística. No estoy seguro de que se emplee la emulación en scanners online ya que consume bastantes recursos.

Pero en la vida real estamos frente a cosas más complejas, como la detección por comportamiento, escanear la memoria operativa, etc.
Básicamente cuando se ejecuta el stub, no importa si estas usando un cifrado xor, rc4 o AES 256, ya que el antivirus no va a desencriptar el ejecutable.

El antivirus no es tan tonto como el que programa un crypter. Básicamente lo que hace es interceptar hookeando algunas de las APIs que mencioné anteriormente desde ring0, es decir que no hay manera de corregir los hooks desde usermode (ring3).

Un ejemplo es la api WriteProcessMemory. El antivirus hookeando esta api va a obtener todo lo que escribe en memoria, es decir, el archivo totalmente desencriptado. Así que si te esmeraste aplicando algoritmos criptográficos fuertes, lamento decirte que perdiste tu tiempo.

No importa si llamas a WriteProcessMemory de manera estática, dinámica, con CallWindowProc, con un sysenter o algún truco sucio. Si sabes lo que estás haciendo, sabes que WriteProcessMemory llama a NtWriteProcessMemory el cual llama a KiFastSystemCall que hace un sysenter, entra a ring0, llama NtWriteProcessMemory en kernel mode y ahí sucede la magia. El antivirus sabe que vas a escribir en la memoria y levanta una bandera ya que es algo altamente sospechoso.

Otro método de detección es el análisis de la memoria operativa. El malware desencriptado esta en memoria como si nunca hubiera tocado un crypter. El antivirus lo encuentra igual de fácil.
"Yo uso un método privado... RunPE Shellcode... Bla Bla"
Si sos de los que dice eso, realmente te aconsejo que te dediques a otra cosa. Es el mismo RunPE. Te mintieron. Agarra ollydbg y fíjate.

Otra cosa que veo en los foros hispanos es mucha gente "dedicándose" a la venta de crypters la cual no tiene demasiados conocimientos de informática, pero como leyó un par de papers puede indetectar alguna que otra herramienta y los venden caro, cuando ilegalmente hablando, estas herramientas son vendidas por descarte a menos de U$D 5.

Si no  crees lo que te digo, agarra un antivirus y pruébalo por tu cuenta. Puede que los antivirus gratis solamente te dejen usar el método de firmas, pero por ejemplo NOD32, Kaspersky, BitDefender lo van a detectar. Haz la prueba.



#2
Ideas y Sugerencias / Prohibir posts de agradecimiento
Noviembre 19, 2014, 06:09:10 PM
Hola gente, hoy hablando con usuarios del foro concordamos en que podría ser una buena idea el Prohibir posts como "Gracias", "Buen aporte", "Se agradece", "Sos un genio", etc.
No da tener un post con informacion importante lleno de comentarios irrelevantes. Los comentarios tienen que ser criticas, consejos, sugerencias. Realmente molesta leer varias paginas de un post lleno de agradecimientos cuando lo importante es lo otro.
Si hay mucha necesidad de agradecer, se podria implementar un boton de me gusta o algo asi, para que realmente lo importante sea visible.
Lo conversamos con varios usuarios y hay varios que estan de acuerdo.
#3
Hola gente, estoy tratando de cargar una DLL desde la memoria.

El problema aparece cuando compilo con (GCC) -nostdlib (linkeando las librerias necesarias) y utilizando mainCRTStartup como entry point para reducir el tamaño del ejecutable, funciones innecesarias, etc. Al parecer, al quitar toda esa parte que no me sirve, estoy excuyendo y por eso crashea el programa.
Si compilo normalmente y utilizo main o WinMain el problema no aparece. Funciona todo perfecto

El problema es que al querer obtener un puntero desde una funcion, obtengo un puntero invalido. En la dll puedo verlo correctamente, pero en el programa principal tengo otro valor.
#4
Presentaciones y cumpleaños / [PRESENTACION] OnTheCore
Noviembre 07, 2013, 08:12:41 PM
Hola, me registré en el foro porque recibí una invitación de ANTRAX hace 1 año aproximadamente y me acordé hace unos días.
Quiero empezar de 0 acá, solo sé que no sé nada.

PD: Ya empecé mal, postie esto como respuesta a un post de presentacion y no como post nuevo, pero ya lo "corregí". Perdón :).