|
1031
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Ayuda api hoking :P
|
en: 4 Mayo 2011, 19:34 pm
|
Este es el código que he reparado con los errores que me diiste Zero pero sigue sin funcionar: format PE GUI 4.0 DLL entry DllEntryPoint include 'win32ax.inc' section '.code' code readable executable proc DllEntryPoint hinstDLL,fdwReason,lpvReserved locals proteccion dd ? endl invoke LoadLibrary,'user32.dll' invoke GetProcAddress,eax,"MessageBoxA" mov ebx,eax; ebx = direccion MessageBoxA invoke VirtualProtect,ebx,5,PAGE_EXECUTE_READWRITE,addr proteccion mov byte[ebx],0xE9 inc ebx call distancia distancia: pop ecx add ecx,4 sub ecx,hook mov dword[ebx],ecx add ebx,4 ret endp proc hook,uno,dos,tres,cuatro invoke MessageBox,0,'Juan te hookeo',0,0 mov eax,0 ret endp ; VOID ShowErrorMessage(HWND hWnd,DWORD dwError); proc ShowErrorMessage hWnd,dwError local lpBuffer:DWORD lea eax,[lpBuffer] invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0 invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK invoke LocalFree,[lpBuffer] ret endp ; VOID ShowLastError(HWND hWnd); proc ShowLastError hWnd invoke GetLastError stdcall ShowErrorMessage,[hWnd],eax ret endp section '.data' data readable writeable mensajito db ? section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\ user,'USER32.DLL' import kernel,\ GetLastError,'GetLastError',\ SetLastError,'SetLastError',\ FormatMessage,'FormatMessageA',\ LocalFree,'LocalFree',\ LoadLibrary,'LoadLibraryA',\ GetProcAddress,'GetProcAddress',\ VirtualProtect,'VirtualProtect' import user,\ MessageBox,'MessageBoxA' section '.edata' export data readable export 'ERRORMSG.DLL',\ ShowErrorMessage,'ShowErrorMessage',\ ShowLastError,'ShowLastError' section '.reloc' fixups data discardable
salu2! y gracias por la ayudaaa
|
|
|
1032
|
Seguridad Informática / Análisis y Diseño de Malware / Ayuda api hoking :P
|
en: 3 Mayo 2011, 20:41 pm
|
Bueno estoi intentando hookear una API desde una DLL creada en Fasm pero no lo consigo y nose que estoi haciendo mal, este es el código de la dll: format PE GUI 4.0 DLL entry DllEntryPoint include 'win32ax.inc' section '.code' code readable executable proc DllEntryPoint hinstDLL,fdwReason,lpvReserved locals proteccion dd ? endl invoke LoadLibrary,'user32.dll' invoke GetProcAddress,eax,"MessageBoxA" mov ebx,eax; ebx = direccion MessageBoxA invoke VirtualProtect,-1,ebx,5,PAGE_EXECUTE_READWRITE,edx mov ebx,0xE9 inc ebx mov dword[ebx],hook add ebx,4 ret endp proc hook,uno,dos,tres,cuatro invoke MessageBox,0,0,0,0 mov eax,0 ret endp ; VOID ShowErrorMessage(HWND hWnd,DWORD dwError); proc ShowErrorMessage hWnd,dwError local lpBuffer:DWORD lea eax,[lpBuffer] invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0 invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK invoke LocalFree,[lpBuffer] ret endp ; VOID ShowLastError(HWND hWnd); proc ShowLastError hWnd invoke GetLastError stdcall ShowErrorMessage,[hWnd],eax ret endp section '.data' data readable writeable mensajito db ? section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\ user,'USER32.DLL' import kernel,\ GetLastError,'GetLastError',\ SetLastError,'SetLastError',\ FormatMessage,'FormatMessageA',\ LocalFree,'LocalFree',\ LoadLibrary,'LoadLibraryA',\ GetProcAddress,'GetProcAddress',\ VirtualProtect,'VirtualProtectEx' import user,\ MessageBox,'MessageBoxA' section '.edata' export data readable export 'ERRORMSG.DLL',\ ShowErrorMessage,'ShowErrorMessage',\ ShowLastError,'ShowLastError' section '.reloc' fixups data discardable
Esperando repuesta... salu2!
|
|
|
1037
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Shell Remota en C
|
en: 27 Marzo 2011, 18:02 pm
|
Muchas gracias a los dos, ya lo consegui hacer... el caso es que me quedo así: #include <windows.h> #include <stdlib.h> #include <stdio.h> int main() { SECURITY_ATTRIBUTES sa; STARTUPINFO si; PROCESS_INFORMATION pi; void * leer; void * escribir; ZeroMemory(&sa,sizeof(&sa)); sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; CreatePipe(&leer,&escribir,&sa,0); GetStartupInfoA(&si); si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; si.hStdOutput = escribir; si.hStdError = escribir; si.hStdInput = leer; CreateProcessA(0,"c:\\windows\\system32\\cmd.exe /c dir",0,0,TRUE,0,0,0,&si,&pi); Sleep(200); CloseHandle(escribir); char buffer[1024]; DWORD bleidos; ReadFile(leer,buffer,1024,&bleidos,0); MessageBoxA(0,buffer,0,0); return 0; }
No es una "MegaShell" pero su "apaño" hace salu2!
|
|
|
1039
|
Seguridad Informática / Análisis y Diseño de Malware / Shell Remota en C
|
en: 27 Marzo 2011, 14:48 pm
|
Buenas, estoi intentando hacer una Shell Remota en C ya que nunca hice una en este lenguaje y me pica la curiosidad el caso es que no me sale... El código que tengo es este: #include <windows.h> #include <stdlib.h> #include <stdio.h> int main() { PHANDLE leer; PHANDLE escribir; SECURITY_ATTRIBUTES sa; STARTUPINFO si; PROCESS_INFORMATION pi; DWORD bytes; CreatePipe(leer,escribir,&sa,0); si.cb = 68; si.dwFlags = 257; si.hStdError = escribir; si.hStdOutput = escribir; CreateProcessA(0,"cmd.exe /c ping 127.0.0.1", &sa, &sa, 1, NORMAL_PRIORITY_CLASS, 0, 0, &si, &pi); Sleep(100); CloseHandle(escribir); char buffer[1024]; char total[1024]; int ret = ReadFile(leer,buffer,250,&bytes,0); lstrcat(total,buffer); while(ret != 0) { ret = ReadFile(leer,buffer,250,&bytes,0); lstrcat(total,buffer); } MessageBoxA(0,total,0,0); return 0; }
Alguien sabe que hago mal? salu2!
|
|
|
|
|
|
|