Que tal, bueno he estado trabajando en un proyecto en C y ASM llamado indetectables dumper pero he llegado al punto que he creado las funciones más básicas y necesito testearlo para seguir con las demás funciones o se me hará un lío, entonces saco la primer release del programa que consiste en:

Indetectables Dumper es un programa que "dumpea" o extrae datos de un ejecutable para facilitar el análisis del mismo, la idea es poder determinar si un ejecutable esta encriptado o infectado viendo sus secciones, recursos, eof y detectar escritura en memoria, pero la próxima función que ya esta codeada pero no implementada es extraer instrucciones del programa (opcodes) de x posicion en la memoria virtual dentro de la seccion code (imagebase+baseofcode) (para escribir tal vez una shellcode), en fin tengo pensado también pensado implementar la funcion remplazarxbytes en memoria para hacer un loader y bueno esa función como la mayoría de las que están en este programa estan posteadas aquí en la sección C/C++ y la sección ASM (menos las de recursos que me tuve que liar esta semana con ellas)

Características actuales:
[+]Detecta y dumpea cualquier sección de un ejecutable
[+]Detecta y dumpea cualquier recurso dentro de un ejecutable
[+]Detecta y dumpea el EOF (si es que existe)
[+]Dumpea todas las secciones y/o recursos con un boton
[+]Dumpea lo que se escriba en memoria (runpes)<- esta función se esta mejorando por mucho porque estoy intentando hacerlo a modo kernel para que no se pueda bypassear tan fácil

Imágenes:
Imagen


Descarga:
[Enlace externo eliminado para invitados]

Pass:
indetectables.net

Saludos
//mHmm..
Muy buena herramienta linkgl

Tiene toda la pinta de superar con creces el runpe killer de psymera.

Gracias amigo.

Saludos!!
UDTools.net
GitHub: https://github.com/MetalUDT
linkgl excelente como siempre, alguna vez pense en hacer algo parecido pero entonces solo sabía VB6 xD

Tambien podrías pausar el proceso, hay una API en modo kernel, la puedes llama desde nivel usuario, la busco y te publico la info por si te interesa.

Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
orlando9427 escribió:linkgl excelente como siempre, alguna vez pense en hacer algo parecido pero entonces solo sabía VB6 xD

Tambien podrías pausar el proceso, hay una API en modo kernel, la puedes llama desde nivel usuario, la busco y te publico la info por si te interesa.

Saludos!
Si te refieres al dumpear los datos que se escriben en memoria...
El proceso se pausa pero me quede pensando si el programa llama a la api para escribir en memoria despues de algún sleep o algo... Entonces por eso crea el proceso suspendido instala el thread y el hook y despues continua el hilo del proceso para que todas las llamadas a la api pasen por el hook jeje pues en teoría todas las apis de la ntdll las puedes llamar cargando la dll y obteniendo la direccion con getprocaddress no? la idea es instalar el hook desde modo kernel a ntWriteVirtualMemory por que según se las apis que escriben en memoria en modo usuario pasan al final por ntWriteVirtualMemory... Es cosa de meter la cabeza en el debugger con copymemory/writeprocessmemory xDDD pero toda información me sirve! sería bueno verla, si no te referías a eso entonces ignora el comentario ajjaa
//mHmm..
linkgl escribió:
orlando9427 escribió:linkgl excelente como siempre, alguna vez pense en hacer algo parecido pero entonces solo sabía VB6 xD

Tambien podrías pausar el proceso, hay una API en modo kernel, la puedes llama desde nivel usuario, la busco y te publico la info por si te interesa.

Saludos!
Si te refieres al dumpear los datos que se escriben en memoria...
El proceso se pausa pero me quede pensando si el programa llama a la api para escribir en memoria despues de algún sleep o algo... Entonces por eso crea el proceso suspendido instala el thread y el hook y despues continua el hilo del proceso para que todas las llamadas a la api pasen por el hook jeje pues en teoría todas las apis de la ntdll las puedes llamar cargando la dll y obteniendo la direccion con getprocaddress no? la idea es instalar el hook desde modo kernel a ntWriteVirtualMemory por que según se las apis que escriben en memoria en modo usuario pasan al final por ntWriteVirtualMemory... Es cosa de meter la cabeza en el debugger con copymemory/writeprocessmemory xDDD pero toda información me sirve! sería bueno verla, si no te referías a eso entonces ignora el comentario ajjaa
En teoria tienes razon pero, yo me refería para evitar alguna incompatibilidad o un BSoD, ademas de que son miles de peticiones a esa API, si bien haces un Drivers que las filtra todas sería un poco lento, aunque tienes mucha razon al decir que en modo kernel nada se escapa.
Estuve buscando la API pero no la encuentro, tal vez la soñe O.o, dejo el enlace a un metodo
[Enlace externo eliminado para invitados]

Edito: No la soñe :)
Te dejo la descripción, de la API y de su hermana
Segun Doxygen, su declaracion se encuentra en [Enlace externo eliminado para invitados]

Código: Seleccionar todo

NTSYSCALLAPI NTSTATUS NTAPI NtSuspendProcess 	(IN HANDLE  ProcessHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtResumeProcess 	(IN HANDLE  ProcessHandle) 
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
orlando9427 escribió:
linkgl escribió:
orlando9427 escribió:linkgl excelente como siempre, alguna vez pense en hacer algo parecido pero entonces solo sabía VB6 xD

Tambien podrías pausar el proceso, hay una API en modo kernel, la puedes llama desde nivel usuario, la busco y te publico la info por si te interesa.

Saludos!
Si te refieres al dumpear los datos que se escriben en memoria...
El proceso se pausa pero me quede pensando si el programa llama a la api para escribir en memoria despues de algún sleep o algo... Entonces por eso crea el proceso suspendido instala el thread y el hook y despues continua el hilo del proceso para que todas las llamadas a la api pasen por el hook jeje pues en teoría todas las apis de la ntdll las puedes llamar cargando la dll y obteniendo la direccion con getprocaddress no? la idea es instalar el hook desde modo kernel a ntWriteVirtualMemory por que según se las apis que escriben en memoria en modo usuario pasan al final por ntWriteVirtualMemory... Es cosa de meter la cabeza en el debugger con copymemory/writeprocessmemory xDDD pero toda información me sirve! sería bueno verla, si no te referías a eso entonces ignora el comentario ajjaa
En teoria tienes razon pero, yo me refería para evitar alguna incompatibilidad o un BSoD, ademas de que son miles de peticiones a esa API, si bien haces un Drivers que las filtra todas sería un poco lento, aunque tienes mucha razon al decir que en modo kernel nada se escapa.
Estuve buscando la API pero no la encuentro, tal vez la soñe O.o, dejo el enlace a un metodo
[Enlace externo eliminado para invitados]
Ya veo ya veo, ya vi el link, aca en vez de buscar el proceso por nombre lo creo con createprocess para evitar sacar el pid, y lo suspendo con create_suspend, despues es muy sencillo manipular el thread con esas funciones xD ese es el detalle las diferentes peticiones que llegan a la nativa va a variar dependiendo de los programas que esten corriendo en la pc la idea es una vez con el handle del proceso popear el primer parámetro de la api nativa que es el handle y compararlo con el del programa si coincide popear la data, pero como dices se alenta un poco, pero no sera un largo periodo de tiempo que la api dure hookeada pero esa es la idea en sí
//mHmm..
Suena bien, solo recuerda que tendras que crear un procedimiento para cargar y descargar el driver.
En el libro "Subverting the Windows Kernel" viene un ejemplo de como hacer eso en C.

Espero con ancia el proximo release.
Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
orlando9427 escribió:Suena bien, solo recuerda que tendras que crear un procedimiento para cargar y descargar el driver.
En el libro "Subverting the Windows Kernel" viene un ejemplo de como hacer eso en C.

Espero con ancia el proximo release.
Saludos!
Estoy leyendo mucho de eso, sí también me fijé que debía tener cuidado con un-hookear la api o no existirá la dirección a donde salta la api hookeada y bonito pantallazo azul o algun error crítico que no podría manejar, cosa por la que no me preocupaba tanto en ring3 xDD gracias bro de hecho miré ya los posts que habías hecho para documentarme más sobre el tema

Gracias a todos por sus comentarios
//mHmm..
todo un buen programador linkgl ese proyecto tequedo de puta madre me la para mi coleccion de tools gracias por compartir brot saludos
Imagen
Responder

Volver a “Troyanos y Herramientas”