elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 ... 128
691  Seguridad Informática / Análisis y Diseño de Malware / Re: Duda sobre los R.A.T. (Troyanos) en: 14 Enero 2016, 17:28 pm

En Windows es posible que estén abiertas dos cuentas de usuario por lo tanto si creas otra cuenta y mantienes la suya abierta creo que se podría hacer algo, sino puedes disimular el escritorio, mismo fondo, ratón, escritorio y el explorador de Windows tiene opción remota, mas trabajo pero se podría crear aunque no se si existe un RAT ya hecho para descargar...

Un saludo

Piensa lo que has dicho.
692  Programación / Programación C/C++ / Re: Dudas de programa en C en: 13 Enero 2016, 15:36 pm
Código
  1.    #include <stdio.h>
  2.  
  3.    void media(int sum){
  4. int media;
  5. media= sum/10;
  6. printf("\nLa media de todos los valores introducidos es %d\n", media);
  7.    }
  8.  
  9.    int main(void){
  10. int datos[10];
  11. int i;
  12. int mayor=0;
  13. int menor=9999999;
  14. int suma=0;
  15.  
  16. for(i= 0 ; i < 10 ; i++){
  17. printf("\nIntroduzca el valor del número #%i\n", i+1);
  18. scanf("%d", &datos[i]);
  19. suma += datos[i];
  20. }
  21.  
  22. for(i=0 ; i < 10 ; i++){
  23. if(datos[i] > mayor){
  24. mayor = datos[i];
  25. }
  26. if(datos[i] < menor){
  27. menor = datos[i];
  28. }
  29. }
  30.  
  31. printf("\nEl valor máximo es %d\n", mayor);
  32. printf("\nEl valor mínimo es %d\n", menor);
  33. printf("\nLa suma de todos los valores es %d\n", suma);
  34. media(suma);
  35.  
  36. return 0;
  37.    }

Sugerencias:

Que pongas el return, en el main... ya te lo he puesto yo en el arreglo del código pero tienes que acordarte de ponerlo si declaras una funcion que no sea de tipo void.

Identar el código, que no quede todo en plano ya que es imposible de leer.

Te he resumido el programa de 2 bucles innecesarios a 1 solo.

saludos.
693  Seguridad Informática / Análisis y Diseño de Malware / Re: ¿Que precauciones tomarías? en: 13 Enero 2016, 14:31 pm
Te recomiendo que no infectes a nadie por que estas realizando un acto ilegal.

No creo que tantas preguntas sean ya con fin educativo...
694  Seguridad Informática / Análisis y Diseño de Malware / Re: Duda sobre los R.A.T. (Troyanos) en: 13 Enero 2016, 01:33 am
A ver... NO.

No sé que idea tienes pero vamos, supongo que tu crees que lo vas a ver como con TeamViewer pero que a el no le va a aparecer y NO. Si le mueves el ratón en su pantalla también le va a aparecer en la posición a la que lo moviste, o si abres una carpeta el lo va a ver.

Tu te vas a poder mover por las carpetas y eso pero para hacerlo de forma oculta lo tendrás que hacer desde la Shell Remota, ó alguna otra utilidad que tenga el troyano que eligas.


saludos.
695  Seguridad Informática / Análisis y Diseño de Malware / Re: Vários problemas con los R.A.T. (Hay conexión, no funcionan las ordenes) en: 7 Enero 2016, 17:50 pm
Pero... Eso es problema del programa, reporta los fallos al programador.

Saludos.
696  Foros Generales / Foro Libre / Re: Una Licuadora en: 7 Enero 2016, 13:24 pm
Si, tengo una idea.

Regalale otra cosa... algo menos cutre... prueba a ver...

697  Seguridad Informática / Análisis y Diseño de Malware / Inyecciones de código en memoria en: 6 Enero 2016, 23:26 pm
Inyecciones de código en memoria

Conocimientos previos:
     
-ASM
      -WinApi

Contenido:
1-   ¿Qué es la inyección de código en memoria?
2-   ¿Cómo realizarla?
     2.1- Teoría
     2.2 -Práctica
3-   Ejemplos de inyecciones
4-   Despedida


1- ¿Qué es la inyección de código en memoria?

La inyección de código en memoria consiste  en que otro proceso ejecute el código que nosotros queramos.


2- ¿Cómo realizarla?

2.1 - Teoria
Para realizar la inyección lo que haremos será crear   un espacio en el proceso donde queremos inyectar el código  con la api VirtualAllocEx a continuación escribiremos nuestro código con WriteProcessMemory y finalmente lanzamos el hilo con CreateRemoteThread

2.2- Práctica
Para poner en práctica la teoría anterior vamos a inyectar nuestra funcion en el proceso del buscaminas y haremos que nuestra función haga un MessageBox:

Código
  1. format PE GUI 4.0
  2. entry start
  3.  
  4. include 'win32ax.inc'
  5.  
  6.        Ventana db 'Buscaminas',0
  7.        idproc dd ?
  8.        ID dd ?
  9.  
  10.        TamFun dd ?
  11.        DirFun dd ?
  12.  
  13. start:
  14.        invoke FindWindow,NULL,Ventana
  15.        invoke GetWindowThreadProcessId,eax,addr idproc   ;idproc = identficador del proceso
  16.        invoke OpenProcess,PROCESS_ALL_ACCESS,0,[idproc]
  17.        mov [ID],eax
  18.  
  19.        invoke LoadLibrary,"user32.dll" ;cargamos user32.dll
  20.        invoke GetProcAddress,eax,"MessageBoxA" ;obtenemos la dirección de la api
  21.        mov [mMessageBoxA],eax  ; movemos la dirección de la api a la variable que hay dentro de la funcion qeu inyectaremos
  22.  
  23.        mov eax,final  ;Obtenemos el tamaño de la función
  24.        sub eax,Inyectado
  25.        mov [TamFun],eax
  26.  
  27.        invoke VirtualAllocEx,[ID],0,[TamFun],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE  ;generamos el espacio dentro del proceso
  28.        mov [DirFun],eax
  29.        invoke WriteProcessMemory,[ID],eax,Inyectado,[TamFun],0 ;escribimos nuestro código en el proceso
  30.        invoke CreateRemoteThread,[ID],0,0,[DirFun],0,0,0  ;Lanzamos el hilo.
  31.  
  32.        ret
  33.  
  34.        proc Inyectado
  35.             call offset  ;Técnica del offset delta.
  36.             offset:
  37.             pop ebx
  38.             sub ebx,offset
  39.             push ebx ebx
  40.             pop ecx edx
  41.  
  42.             add ecx,titulo
  43.             add edx,cuerpo
  44.  
  45.             push 0
  46.             push ecx
  47.             push edx
  48.             push 0
  49.  
  50.             call [ebx+mMessageBoxA]
  51.  
  52.  
  53.             ret
  54.  
  55.             titulo db 'Me inyecte!',0
  56.             cuerpo db 'Este Mensage sale del buscaminas ^^',0
  57.  
  58.             mMessageBoxA dd ? ;variable que contiene la dirección de MessageBoxA@user32.dll
  59.        endp
  60.        final:
  61.  
  62. data import
  63.     library kernel32,'Kernel32.dll',\
  64.             user32,'user32.dll'
  65.  
  66.     import user32,MessageBoxA,'MessageBoxA',\
  67.            FindWindow,'FindWindowA',\
  68.            GetWindowThreadProcessId,'GetWindowThreadProcessId'
  69.  
  70.     import kernel32,OpenProcess,'OpenProcess',\
  71.            GetModuleHandle,'GetModuleHandleA',\
  72.            GetProcAddress,'GetProcAddress',\
  73.            VirtualAllocEx,'VirtualAllocEx',\
  74.            WriteProcessMemory,'WriteProcessMemory',\
  75.            CreateRemoteThread,'CreateRemoteThread',\
  76.            LoadLibrary,'LoadLibraryA'
  77. end data  

Como se puede apreciar no es muy difícil pero si plantea un problema grande y es que  nuestro ejecutable sabe en que dirección se encuentra la variable mMessageBoxA cuando compilamos pero al inyectar el código la dirección de la variable cambiara… y nuestra función fallara -_- para eso se usa la tecnica del Delta Offset para recalcular la dirección de las variables y que nuestro código se ejecute bien este en la dirección que este. Para entender que hace el delta Offset pinchar Aquí

3- Ejemplo de inyecciónes

Un simple ejemplo que lanza la calculadora, se inyecta en su proceso cambia el nombre a la ventana y hace un MessageBox

Código
  1. Format PE GUI 4.0
  2. entry start
  3. include 'win32ax.inc'
  4.  
  5. calc db 'c:\windows\system32\calc.exe',0
  6. pi PROCESS_INFORMATION ?
  7. sin STARTUPINFO ?
  8. TamFun dd ?  ;tamaño de la funcion...
  9. DirFun dd ? ; dirección de la funcion
  10. DirUser dd ?
  11.  
  12. start:
  13.        invoke CreateProcessA,0,calc,0,0,0,0,0,0,sin,pi
  14.        invoke Sleep,2000
  15.        invoke LoadLibrary,"user32.dll"
  16.        mov [DirUser],eax
  17.  
  18.        invoke GetProcAddress,[DirUser],"MessageBoxA"
  19.        mov [mMessageBoxA],eax
  20.        invoke GetProcAddress,[DirUser],"FindWindowA"
  21.        mov [mFindWindow],eax
  22.        invoke GetProcAddress,[DirUser],"SetWindowTextA"
  23.        mov [mSetWindowTextA],eax
  24.  
  25.        mov ebx,final  ;obtenemos el Tamaño de la función
  26.        sub ebx,Inyectada
  27.        mov [TamFun],ebx
  28.  
  29.        invoke VirtualAllocEx,[pi.hProcess],0,[TamFun],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE
  30.        mov [DirFun],eax
  31.        invoke WriteProcessMemory,[pi.hProcess],eax,Inyectada,[TamFun],0
  32.        invoke CreateRemoteThread,[pi.hProcess],0,0,[DirFun],0,0,0
  33.        ret
  34.  
  35.        proc Inyectada
  36.                call offset
  37.                offset:
  38.                pop ebx
  39.                sub ebx,offset
  40.                push ebx
  41.                pop ecx
  42.  
  43.                add ecx,Calculadora
  44.  
  45.                push ecx
  46.                push NULL
  47.                call [ebx+mFindWindow]
  48.  
  49.                push ebx
  50.                pop ecx
  51.  
  52.                add ecx, TituloVen
  53.  
  54.                push ecx
  55.                push eax
  56.                call [ebx+mSetWindowTextA]
  57.  
  58.                push ebx ebx
  59.                pop edx ecx
  60.  
  61.                add ecx,TituloMsg
  62.                add edx,CuerpoMsg
  63.  
  64.                push 0
  65.                push ecx
  66.                push edx
  67.                push 0
  68.  
  69.                call [ebx+mMessageBoxA]
  70.                ret
  71.  
  72.                TituloMsg db 'Inyectado!',0
  73.                CuerpoMsg db 'El código inyectado Cambio el nombre a la ventana',0
  74.                TituloVen db 'Este es un título falso',0
  75.                Calculadora db 'Calculadora',0
  76.  
  77.                mMessageBoxA dd ?  ;Dirección MessageBox
  78.                mFindWindow dd ?   ;dirección fundwindow
  79.                mSetWindowTextA  dd ? ;Dirección de SetWindowText
  80.        endp
  81.        final:
  82. data import
  83.     library kernel32,'kernel32.dll'
  84.  
  85.     import kernel32,CreateProcessA,'CreateProcessA',\
  86.            Sleep,'Sleep',\
  87.            GetModuleHandle,'GetModuleHandleA',\
  88.            GetProcAddress,'GetProcAddress',\
  89.            VirtualAllocEx,'VirtualAllocEx',\
  90.            WriteProcessMemory,'WriteProcessMemory',\
  91.            CreateRemoteThread,'CreateRemoteThread',\
  92.            LoadLibrary,'LoadLibraryA'
  93. end data    

4- Despedida
Bueno, ya solo queda la despedida…. Jajaja pues eso que espero que les sea utíl  el tuto, la barrera de lo que podais hacer con las inyecciones de código la poneis vosotros ;)

Saludos.
698  Seguridad Informática / Análisis y Diseño de Malware / Re: spy net 2.6 o similar limpios en: 6 Enero 2016, 16:41 pm
Hola,

Aquí puedes descargar todas las versiones

http://malwares.underc0de.org/?dir=Troyanos%2FSpy-Net%2F

Saludos.
699  Seguridad Informática / Análisis y Diseño de Malware / Re: Dos preguntas sobre troyanos en: 6 Enero 2016, 16:30 pm
Hola,

Lo mejor en hacerlo en un lenguaje que no sea interpretado, ya que son limitaciones. Que lo puedes hacer en Java? Claro que si. Pero ya sabes que si no tienes la máquina virtual tu programa no se ejecuta.

Puedes usar cualquier lenguaje compilado aunque a cuanto más bajo nivel trabajes mejores técnicas podrás usar o, al menos, más avanzadas.

Mi recomendación para la creación de malware son siempre las mismas: C y ASM.
700  Programación / .NET (C#, VB.NET, ASP) / Re: Email y C#. en: 6 Enero 2016, 00:11 am
Tienes el código del módulo?

No... A saber donde esté .

Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 ... 128
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines