Autor
|
Tema: Pasar 2 parámetros en inyección de código (Leído 5,241 veces)
|
Vaagish
Desconectado
Mensajes: 875
|
Hi! Alguien sabe como podría pasar dos parámetros por CreateRemoteThread? La inyección no es mediante dll, inyecto una función.. En MSDN dice: HANDLE WINAPI CreateRemoteThread( _In_ HANDLE hProcess, _In_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_ LPVOID lpParameter, _In_ DWORD dwCreationFlags, _Out_ LPDWORD lpThreadId );
lpParameter [in] A pointer to a variable to be passed to the thread function. Y por ahi dicen que se podria pasar una estructura,, algo asi: struct PARAMETER{ char* str1; char* str2; int num; };
Yo debería pasar algo parecido en asm: invoke CreateRemoteThread, Process, 0, 0, lpProcAddress, lpParameter, 0, 0
Funcion a inyectar: INJECTED PROC lpParameter:DWORD ; Como separar esos dos datos? ret INJECTED endp
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Podes usar VirtualAllocEx dos veces, una para el codigo y otra para datos (la estructura, mejor no uses punteros en la misma), WriteProcessMemory y finalmente CreateRemoteThread.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
No logro dar con el dato.. creo que me reservo el tamaño correcto, luego inyecto el primer dato, luego inyecto la función, pero no encuentro con olly el primer dato.. puede que al escribir dos veces los datos queden separados? Yo me estoy basando en esto de VirtualAllocEx: Return value
If the function succeeds, the return value is the base address of the allocated region of pages. O sea que al inyectar el primer dato, debería moverme dentro de ese espacio de memoria para escribir el segundo.. pero no..
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Es muy dificil saber que estas haciendo exactamente ... pero si tenes problemas hacela sencilla y llama DOS veces a VirtualAllocEx, una para los datos y otra para el codigo.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Bueno, después de remar un dia rato con esto.. conseguí pasar esos dos parámetros,, me base en este code: En el ejemplo de C++ se pasa una estructura,, lo desensamble y me aclaro un poco.. En fin,, ahora solo tengo un problema importante.. (aparte del mental ), mi intención en un principio era inyectar una función que resuelve la dirección de kernel32 buscándola en el peb para llamar a CopyFileA, luego se me ocurrió pasarle como parámetro la dirección de kernel32,, pero ahora que tengo todo resuelto me doy cuenta que no tiene sentido.. porque en ese proceso (el proceso inyectado, el proceso paciente digamos) puede estar en otra ubicación esa dirección,,, no??? O sea, tendría que resolver la dirección de Krn32 dentro de ese proceso si o si y no enviársela resuelta, no? Saludos! PD: Si esto fuera posible, podría pasarle la dirección de CopyFileA de una, y no buscar nada en ese proceso...
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
La direccion base de Kernel32.dll deberia ser siempre la misma en todos los procesos, puede cambiar entre diferentes booteos aunque eso es irrelevante para tu caso.
Address Space Layout Randomization (ASLR) ASLR moves executable images into random locations when a system boots, making it harder for exploit code to operate predictably. For a component to support ASLR, all components that it loads must also support ASLR. For example, if A.exe consumes B.dll and C.dll, all three must support ASLR. By default, Windows Vista and later will randomize system DLLs and EXEs, but DLLs and EXEs created by ISVs must opt in to support ASLR using the /DYNAMICBASE linker option.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Claro.. ahora que decis,, en el ejemplo ese tambien se envia una direccion.. debo estar usando un mov o un lea y por eso me cambia la direccion.. lo raro es que inyecto 2 datos, uno llega igual y el otro parecido igual hoy lo soluciono.. La direccion base de Kernel32.dll deberia ser siempre la misma en todos los procesos, puede cambiar entre diferentes booteos aunque eso es irrelevante para tu caso. Lo mismo rige para las funciones exportadas? Ponele, si encuentro CopyFile (o la funcion que sea) en un proceso y le meto esa direccion a otro, se puede usar perfectamente, no? Gracias EI!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Si, todas las direcciones de funciones son offsets que parten de la base de un modulo, CopyFileA/W estan dentro de una sección de codigo de un determinado modulo.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Lujo!! Quedo resuelto! No pongo code, porque no quiero masticar para otros, si alguien llega aca con la misma duda, ya sabe por donde buscar una posible solucion.. Saludos! Gracias!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
De nadas
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pasar parametros por ejecutable
Programación Visual Basic
|
Lambda
|
2
|
1,977
|
18 Octubre 2006, 17:56 pm
por Lambda
|
|
|
Pasar parametros a un array
Scripting
|
El_Java
|
1
|
3,704
|
17 Mayo 2011, 23:09 pm
por leogtz
|
|
|
Inyección de Parametros Sqlmap
Bugs y Exploits
|
Owl-City
|
9
|
7,620
|
6 Febrero 2014, 08:15 am
por BlackM4ster
|
|
|
Inyeccion de DLL para obtener acceder a parametros de una funcion
Ingeniería Inversa
|
GonzaFz
|
5
|
3,156
|
24 Noviembre 2015, 16:19 pm
por Miseryk
|
|
|
MOVIDO: Inyeccion de DLL para obtener acceder a parametros de una funcion
Hacking
|
.:UND3R:.
|
0
|
2,134
|
25 Octubre 2015, 18:12 pm
por .:UND3R:.
|
|