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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Source] Inyeccion Dll en VB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 5 6 7 Ir Abajo Respuesta Imprimir
Autor Tema: [Source] Inyeccion Dll en VB  (Leído 17,617 veces)
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
[Source] Inyeccion Dll en VB
« en: 15 Junio 2007, 17:11 pm »

Aqui les dejo este codigo que ya e traducido a C#, ahora a VB...mi proximo reto es traducirlo a ensamblador con el Fasm.... :xD :xD

Bueno, me dejo de chachara....aqui esta el codigo:

Modulo:

Código
  1. '************************************************************************
  2. '************************************************************************
  3. '**                                                                    **
  4. '**   Inyeccion Dll en VB a partir del codigo en C++ de MazarD         **
  5. '**                                                                    **
  6. '**                  Wrote on June 15, 2007 by Hendrix                 **
  7. '**                                                                    **
  8. '**                                                                    **
  9. '**                         CopyLeft Licence                           **
  10. '************************************************************************
  11. '************************************************************************
  12.  
  13.  
  14.  
  15. Private Const PAGE_READWRITE As Long = &H4
  16. Private Const MEM_RELEASE As Long = &H8000
  17. Private Const MEM_COMMIT As Long = &H1000
  18. Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
  19. Private Const SYNCHRONIZE As Long = &H100000
  20. Private Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
  21. Private Const INFINITE As Long = &HFFFFFF
  22.  
  23. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  24. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  25. Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  26. Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
  27. Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  28. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  29. Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As Long, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
  30. Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  31.  
  32.  
  33. Public Function Inyecta(RutaDll As String, Pid As Long) As Integer
  34. Dim proc As Long
  35. Dim nload As Long
  36. Dim rems As Long
  37. Dim longi As Long
  38. Dim RemThread As Long
  39. Dim Tid As Long
  40.  
  41. On Error GoTo Error
  42. proc = OpenProcess(PROCESS_ALL_ACCESS, False, Pid)
  43. nload = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
  44. rems = VirtualAllocEx(proc, 0, Len(RutaDll), MEM_COMMIT, PAGE_READWRITE)
  45. WriteProcessMemory proc, ByVal rems, ByVal RutaDll, Len(RutaDll), longi
  46. CreateRemoteThread proc, ByVal 0, 0, ByVal nload, ByVal rems, 0, Tid
  47. WaitForSingleObject rems, INFINITE
  48. CloseHandle proc
  49. CloseHandle rems
  50. Inyecta = 0
  51. Exit Function
  52. Error:
  53. Inyecta = 1
  54. End Function

Formulario:

Código
  1. Private Sub Form_Load()
  2. Dim ruta As Long
  3. Dim resultado As Integer
  4.  
  5. ruta = Shell("notepad.exe")
  6. resultado = Inyecta("C:\ladll.dll", ruta)
  7.  
  8. If resultado = 0 Then
  9. MsgBox "Dll Inyectada con éxito!!!", , "Información"
  10. Else
  11. MsgBox "A ocurrido un error", vbCritical, "Información"
  12. End If
  13. End
  14. End Sub

Un Saludo.  ;)



« Última modificación: 25 Julio 2007, 21:31 pm por Hendrix. » En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #1 en: 15 Junio 2007, 23:37 pm »

Hola Hendrix esta muy interesante el code, pero no entiendo mucho su finalidad, que se supone aria la dll dentro del notepad?, puedes poner un ejemplo de como se ejecuta una funcion de la dll de esta forma?

Saludos


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #2 en: 16 Junio 2007, 11:32 am »

Muy weno Hendrix, yo pensaba q en VB no se iba a poder xDD

Hola Hendrix esta muy interesante el code, pero no entiendo mucho su finalidad, que se supone aria la dll dentro del notepad?, puedes poner un ejemplo de como se ejecuta una funcion de la dll de esta forma?

Saludos

Weno, tu tienes q hacerte una dll con dllmain (creo q esto en VB si q no vas a poder hacerlo, corregisme si me ekivoco), colocas esa dll en C:\ladll.dll con ese nombre y usas el codigo.

Con esto conseguiras crear un hilo remoto en el proceso del notepad q cargara la dll y ejecutara el dll main  :xD :xD asi conseguiras q el notepad haga lo q tu kieras, ideal para troyanos (asi el firewall dará permiso al IE para salir a internet) o para hacer tu proceso inmortal

Muy buen aporte Hendrix, hay q ver lo q te has tenido q complicar para hacerlo en VB xDDDD
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #3 en: 16 Junio 2007, 12:48 pm »

Si....esto es demasiado "trabajo" para el VB....comparando el fuente de C y este hay mucha diferencia....xDDD e tenido que añadir un API porque me cerraba antes de tiempo...xDDD

Un Saludo.  ;)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
cheatmaster

Desconectado Desconectado

Mensajes: 101


Ver Perfil
Re: [Source] Inyeccion Dll en VB
« Respuesta #4 en: 16 Junio 2007, 13:26 pm »

entonces, podemos hacer que un form descargue la dll, se cierre cargue otro form , con ese codigo, y ejecute la dll, M.. q bueno !!

Una duda, tiene que ser el notepad o puede ser arternativo, ejemplo... msn, IE, firefox.. o tiene que ser el notepad ?
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #5 en: 16 Junio 2007, 13:58 pm »

Vale cualkier otro proceso, aunke yo e provado en C con el lsass y ese tipo de procesos y no funcionó, pero con firefox, msn o internet explorer si q funciona  :P
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: [Source] Inyeccion Dll en VB
« Respuesta #6 en: 16 Junio 2007, 14:32 pm »

EON no te funciona con lsass por el tema de privilegios, que puedes ajustar tu mismo antes de abrir el proceso. despues lo puedes injectar donde quieras.
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #7 en: 16 Junio 2007, 15:22 pm »

Vale cualkier otro proceso, aunke yo e provado en C con el lsass y ese tipo de procesos y no funcionó, pero con firefox, msn o internet explorer si q funciona  :P

Si que puedes inyectar, leer memoria y escribir en memoria de otros procesos de SYSTEM (como lsass o svchost). Solo necesitas ejecutar tu aplicación con los privilegios heredades => a SYSTEM.

Cuando programé mi MemDumper (dumpeador de memoria de procesos) pude dumpear la memoria de svchost siempre y cuando mi aplicación se lanzara desde SYSTEM.

Para hacerlo solo tienes que usar el bug del comando AT (explicado por mí también en este foro) para pasar un proceso de Admin a SYSTEM.

Saludos!!
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: [Source] Inyeccion Dll en VB
« Respuesta #8 en: 16 Junio 2007, 15:39 pm »

no hace falta bugs para hacerlo, con AdjustTokenPrivileges lo haces. ya que de la otra forma si es un bug algun AV puede saltar.
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: [Source] Inyeccion Dll en VB
« Respuesta #9 en: 16 Junio 2007, 16:10 pm »

no hace falta bugs para hacerlo, con AdjustTokenPrivileges lo haces. ya que de la otra forma si es un bug algun AV puede saltar.

Amén....eso se hace con la API, no con el comando At aunque es una buena opcion a la API... ;) ;)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Páginas: [1] 2 3 4 5 6 7 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines