|
311
|
Foros Generales / Foro Libre / Re: Las 40 cosas que seguramente no sabías
|
en: 30 Agosto 2011, 19:34 pm
|
jaja 35. Los únicos dos animales que pueden ver hacia atrás sin dar vuelta la cabeza son el conejo y el loro. y las MUJERES (bueno tambien personas no se vayan a ofender) comprobado por mis amigos y por mi... aunque esten de espalda no sabemos como.. pero se dan cuenta que las volteamos a ver, y tenemos que poner en practica el movimiento de... "mira hay viene... aaa no, no es... crei que era alguien" ¬¬'...
|
|
|
312
|
Seguridad Informática / Análisis y Diseño de Malware / Re: como hacen los malware para executarse con inyeccion y sin DLL?
|
en: 30 Agosto 2011, 18:55 pm
|
hola si se como hacerlo, pero lo que no encuentro es en que puede ayudar si solo logro invocar apis, me dijo Eternal Idol que es imposible hacer algo como esto, y puse de referencia el tuto de E0N DWORD inyectada (datos *data) { MessageBoxA (0, data->mensaje, data->titulo, 0); return 0; }
Eso no funcionara nunca, el codigo a inyectar en tu programa usa la tabla de importacion para llamar a la API y esta no coincide (salvo por una casualidad) con la del programa inyectado. se me habia ocurrido llamar a una funcion con CreateThread pero me aparece un error, solo puedo llamar desde esa funcion a una estructura DWORD inyectada (datos *data) { data - >MessageBoxA (0, data->mensaje, data->titulo, 0); return 0; } tambien intente reservar espacio para esa funcion, escribirla y llamarla con CreateThread, pero igual me sale un error por lo que llego a ver esto lo puedo usar unicamente para abrir alguna aplicacion o DLL, por ejemplo que se autoinicie el programa, que abra espacio para inyeccion y que notepad abra la aplicacion o la DLL pero seria igual a una inyeccion con DLL o que sobreescriba notepad agregando codigo... pero hay antivirus que checan el hash la unica ventaja seria que mi aplicacion no abriria nada seria notepad y seria menos evidente que puede ser un malware mmm, bueno mas que nada queria checar esto porque nunca me a gustado usar muchos archivos, porque supuestamente todo tiene que se sigiloso, asi puedo ver que fallos encuentro en mi computadora sino pues continuare con inyeccion en DLL y vere si el metodo Meepa me puede ayudar en hacerlo menos evidente... aunque no logro hacer ese metodo en Win7 solo pude en WinXP bueno, si algun tiene una opinion o una idea mas, se lo agradezco salu2
|
|
|
313
|
Seguridad Informática / Análisis y Diseño de Malware / como hacen los malware para executarse con inyeccion y sin DLL?
|
en: 29 Agosto 2011, 04:40 am
|
hola
como hacen lo malware para ejecutarse haciendo inyeccion sin dll?, porque estaba intenando hacer inyecciones y con DLL no tengo problemas pero sin dll no puedo ejecutar funciones a menos que sean invokadas por estructuras, pero como crear una conexion socket unicamente con apis y estructuras?
y e visto troyanos que dicen que se ejecutan sin DLL, pero no encuentro como hacerlo, alguien aqui conoce algo sobre esto?, lo que intentaba hacer era en lenguaje C, hacer una inyeccion sencilla a notepad.exe, e invokar apis es sencillo, pero no puedo inyectar alguna funcion para ejecutar cualquier cosa, a menos de que sea otra api
o alguien me puede explicar de que forma serviria hacer una inyeccion sin dll, para hacking... ya sea, troyanos, exploits, gusanos, etc... porque como les menciono la unica forma que se, es usando dll y se me hizo interesante hacer sin eso
espero alguien tenga alguna informacion o idea...
salu2
|
|
|
314
|
Programación / Programación C/C++ / Re: como agrego una funcion en struct o como executo una funcion con CreateRemoteT?
|
en: 28 Agosto 2011, 22:18 pm
|
algo asi en vez de hacer esto struct datos { datMessageBoxA apiMessageBoxA; char titulo [100]; char mensaje [100]; };
//La función que inyectaremos DWORD inyectada (datos *data) { data -> apiMessageBoxA (0, data->mensaje, data->titulo, 0); return 0; }
//Reservamos espacio para nuestra estructura en el proceso a inyectar y la escribimos datos *dat_ = (datos*) VirtualAllocEx(proc, 0, sizeof(datos), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory(proc, dat_, &dat, sizeof(datos), NULL);
//Calculamos el tamaño de la función a inyectar TamFun = (long unsigned int) inyectora - (long unsigned int)inyectada;
//Reservamos espacio para la función, escribimos en él y creamos un hilo esp = VirtualAllocEx(proc, 0, TamFun, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(proc, esp, (void*)inyectada, TamFun, NULL); CreateRemoteThread(proc, NULL, 0, (LPTHREAD_START_ROUTINE) esp, dat_, 0, NULL);
Hacerlo de una forma directa a la funcion, para hacer esto DWORD inyectada (){
ShellExecute( NULL, "open", "C:\\WINDOWS\\system32\\cmd.exe", "ipconfig", "C:\\", SW_SHOWNORMAL); return 0; }
//////////////
TamFun = (long unsigned int) inyectora - (long unsigned int)inyectada;
esp = VirtualAllocEx(proc, 0, TamFun, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(proc, esp, (void*)inyectada, TamFun, NULL); CreateRemoteThread(proc, NULL, 0, (LPTHREAD_START_ROUTINE) esp, 0, 0, NULL); } O no se puede?, porque algo asi intente pero me sale un error
|
|
|
315
|
Programación / Programación C/C++ / como agrego una funcion en struct o como executo una funcion con CreateRemoteT?
|
en: 28 Agosto 2011, 20:57 pm
|
hola tengo una duda, estaba repasando la inyeccin de E0N, y lo modifique tratando de meter mas cosas a la estructura pero tenia la duda de hacerlo funcionar sin usar estructuras y hacerlo directamente de la funcion pero cuando lo intento me sale un error que cierra tanto notepad como la aplicacion esto es lo que modifique bueno mas bien agregue //La función que inyectaremos DWORD inyectada (datos *data) { data -> apiMessageBoxA (0, data->mensaje, data->titulo, 0); data -> shh( NULL, data->p, data->d,data->i, data->c, SW_SHOWNORMAL);
return 0; }
typedef struct tdatos { SHELLEXECUTE shh; datMessageBoxA apiMessageBoxA; char titulo [20]; char mensaje [20]; char p[20]; char d[200]; char i[50]; char c[5]; }datos; y de esa manera me funciona, pero no puedo hacer que en vez de utilizar la estructura se vaya directo a la funcion acaso tendria que meter la funcion a struct para hacerlo funcionar? o como invoko la funcion con CreateRemoteThread sin que falle?, porque intente simplemente poner la funcion como cualquier otra e invokarla con LPTHREAD_START_ROUTINE les dejo el codigo completo de E0N por si no lo han visto o no lo recuerdan espero me puedan explicar, salu2 #pragma hdrstop #include <windows.h> #include <tlhelp32.h> #include <stdio.h>
//Creamos un puntero a la api que queremos inyectar typedef int (WINAPI *datMessageBoxA) (HWND, LPCTSTR, LPCTSTR, UINT);
//La estructura que inyectaremos struct datos { datMessageBoxA apiMessageBoxA; char titulo [100]; char mensaje [100]; };
//Declaración de funciones DWORD GetAdres(char *module, char *function);
//La función que inyectaremos DWORD inyectada (datos *data) { data -> apiMessageBoxA (0, data->mensaje, data->titulo, 0); return 0; }
//La función iyectora void inyectora() { int pid; // Este es el pid del proceso en el que nos queremos inyectar HANDLE proc; // El handle del proceso en el que inyectaremos datos dat; // El tipo de dato de la estructura DWORD TamFun; // El tamaño de la función a inyectar void* esp; // Lugar de memoria donde copiaremos nuestra función
HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //Obtenemos el pid PROCESSENTRY32 procinfo = { sizeof(PROCESSENTRY32) }; while(Process32Next(handle, &procinfo)) { if(!strcmp(procinfo.szExeFile, "AVKTray.exe")) { CloseHandle(handle); pid = procinfo.th32ProcessID; } } CloseHandle(handle);
//Abrimos el proceso en el que nos inyectaremos
proc = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, false, pid);
//Metemos la dirección de la api en la estructura llamndo a la función GetAdres dat.apiMessageBoxA = (datMessageBoxA) GetAdres ("USER32.DLL", "MessageBoxA");
//Inicializamos las variables que contendrán el mensaje sprintf(dat.mensaje,"holaaaaaa!!!"); sprintf(dat.titulo,"titulo!!!");
//Reservamos espacio para nuestra estructura en el proceso a inyectar y la escribimos datos *dat_ = (datos*) VirtualAllocEx(proc, 0, sizeof(datos), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory(proc, dat_, &dat, sizeof(datos), NULL);
//Calculamos el tamaño de la función a inyectar TamFun = (long unsigned int) inyectora - (long unsigned int)inyectada;
//Reservamos espacio para la función, escribimos en él y creamos un hilo esp = VirtualAllocEx(proc, 0, TamFun, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(proc, esp, (void*)inyectada, TamFun, NULL); CreateRemoteThread(proc, NULL, 0, (LPTHREAD_START_ROUTINE) esp, dat_, 0, NULL); }
//La función main void main() { inyectora(); }
//Función que nos devuelve un DWORD con la dirección de una api DWORD GetAdres(char *module, char *function) { HMODULE dh = LoadLibrary(module); DWORD pf = (DWORD)GetProcAddress(dh,function); FreeLibrary(dh); return pf; }
|
|
|
316
|
Programación / Programación C/C++ / Re: ¿En cuanto tiempo aprendo c++?
|
en: 6 Agosto 2011, 05:27 am
|
hola
pues yo te doy algunos meses, e usado python ya sabiendo usar C/C++ y es practicmente lo mismo, incluso python es mas estricto con el oden del codigo y si ya lo sabes usar, pues entenderas todo rapido, la diferencia es que python te hace las cosas un poco mas sencillas y con C++ tienes que hacer todo casi de cero... pero es facil, yo empece con C y entendi rapido a python, no creo que sea mucha la diferencia de python a C++, solo que como todo nuevo lenguaje tienes que acostumbrarte pero ya tienes minimo algo basico asi que yo creo te llevara solo algunos meses
|
|
|
319
|
Comunicaciones / Android / puedo hacer man in the middle usando easytether?
|
en: 31 Julio 2011, 23:29 pm
|
Hola
Alguien sabe si puedo hacer man in the middle con android usando easytether porque vi que con Wireless tether si se puede pero yo no logre hacerlo funcionar ni con USB ni por Bluetooth
Tengo cyanogen 7 en un galaxy. S alguien me podría decir si es posible?
Salu2
|
|
|
|
|
|
|