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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Inyectar DLL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Inyectar DLL  (Leído 6,280 veces)
XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Inyectar DLL
« en: 25 Mayo 2006, 01:31 am »


-


« Última modificación: 6 Junio 2006, 22:09 pm por XP. » En línea

XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Re: Inyectar DLL
« Respuesta #1 en: 26 Mayo 2006, 18:29 pm »

Bueno, encontre este codigo pero nose donde ponerle el nombre de la DLL o el ejecutable a descargar

Código:
'--------------------------------------------------------------
'Descargar una DLL o EXE que esté en memoria        ( 6/Jul/97)
'
'Basado en un código de Bruce McKinney y que realiza la misma
'tarea que WPS.exe para descargar módulos y ejecutables.
'(se supone)
'--------------------------------------------------------------
Option Explicit

Declare Function GetModuleHandle Lib "Kernel" (ByVal lpModuleName As String) As Integer
Declare Function GetModuleUsage Lib "Kernel" (ByVal hModule As Integer) As Integer
Declare Sub FreeModule Lib "Kernel" (ByVal hModule As Integer)

Public Sub Main()
    Dim hModule As Integer

    'El módulo a librerar se pasa en la línea de comandos
    hModule = GetModuleHandle(Command$)
    If hModule = 0 Then Exit Sub
    'Libera todas copias de este módulo
    Do While GetModuleUsage(hModule) > 0
        Call FreeModule(hModule)
    Loop
End Sub


En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #2 en: 26 Mayo 2006, 18:33 pm »

 :o :o :o :o eso es todo el kode???? porke este kode esta bastante interesante.... :P :P :P

Si esta todo completo dimelo y me meto a analizarlo....

PD: Esto no creo que te vaya a servir para inyectarte en una DLL, si akaso terminarla para luego inyectarte...pero esto no sirve para inyectar...

Salu2

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
XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Re: Inyectar DLL
« Respuesta #3 en: 26 Mayo 2006, 18:41 pm »

Nop, esto es para desinyectar la DLL y si creo que esta completo.

EDIT: Me equivoque de tema no tendria que haberlo puesto aca ya que el tema es injectar una DLL y no descargarla pero bueno  :-\
« Última modificación: 26 Mayo 2006, 18:42 pm por XP. » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #4 en: 26 Mayo 2006, 19:05 pm »

Ya enkontre la fuente de eso kode...y mira lo que pone:

Esto puede servir para descargar una aplicación o librería dinámica de la memoria de nuestro Windows. La forma es sencilla, sólo hay que crear un módulo BAS y escribir este código en el SUB MAIN, como parámetro debemos pasarle la DLL o EXE que queremos "eliminar" y este programita se encargará del resto...

AVISO: Esto sólo funcionará de forma correcta en Windows 3.xx NO USARLO EN WINDOWS 95.
A mí no me ha funcionado bien en Win95 y deja colgado el Explorer, al menos el que se incluye con el IE 4.0 beta.
El que avisa...

Asi que ya no es nada kompatible.... ;) ;)

Salu2

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
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #5 en: 26 Mayo 2006, 19:06 pm »

La forma mas simple de inyectar una DLL es reservar memoria en el proceso (VirtualAlloc), escribir ahi el nombre de la DLL en cuestion (WriteProcessMemory) y despues crear un hilo cuyo punto de entrada sea LoadLibraryA y su parametro la memoria reservada anteriormente.
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
krispin

Desconectado Desconectado

Mensajes: 90


Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #6 en: 26 Mayo 2006, 19:17 pm »

La forma mas simple de inyectar una DLL es reservar memoria en el proceso (VirtualAlloc), escribir ahi el nombre de la DLL en cuestion (WriteProcessMemory) y despues crear un hilo cuyo punto de entrada sea LoadLibraryA y su parametro la memoria reservada anteriormente.
Efectivamenteeeeeeeeeee!!
aquí teneis un ejemplo:

Código:
Option Explicit

Public hModule          As Long
Public hProcess         As Long
Public dwSize           As Long
Public dwPid            As Long
Public dwBytesWritten   As Long
Public dwTid            As Long

Public SE               As SECURITY_ATTRIBUTES

Public Const PAGE_READONLY              As Long = &H2
Public Const PAGE_READWRITE             As Long = &H4
Public Const PAGE_EXECUTE               As Long = &H10
Public Const PAGE_EXECUTE_READ          As Long = &H20
Public Const PAGE_EXECUTE_READWRITE     As Long = &H40
Public Const MEM_RELEASE                As Long = &H8000
Public Const MEM_COMMIT                 As Long = &H1000
Public Const MEM_RESERVE                As Long = &H2000
Public Const MEM_RESET                  As Long = &H80000
Public Const STANDARD_RIGHTS_REQUIRED   As Long = &HF0000
Public Const SYNCHRONIZE                As Long = &H100000
Public Const PROCESS_ALL_ACCESS         As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Public Const INFINITE                   As Long = &HFFFFFF

Public Type SECURITY_ATTRIBUTES
       nLength                 As Long
       lpSecurityDescriptor    As Long
       bInheritHandle          As Long
End Type

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
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Public Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Sub Main()
Inject App.Path & "\Ejemplo.dll", "Notepad"
End Sub

Public Function Inject(szDll As String, szTargetWindowClassName As String) As Boolean
Dim hWnd        As Long
Dim k32LL       As Long
Dim Thread      As Long

   SE.nLength = Len(SE)
   SE.lpSecurityDescriptor = False
   
   'Encontrar la ventana y abrir el proceso
   hWnd = FindWindow(szTargetWindowClassName, vbNullString)
   GetWindowThreadProcessId hWnd, dwPid
   hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, dwPid)
   If hProcess = 0 Then GoTo Inject_Error
   k32LL = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
   
   'Reservamos memoria
   hModule = VirtualAllocEx(hProcess, 0, LenB(szDll), MEM_COMMIT, PAGE_READWRITE)
   If hModule = 0 Then GoTo Inject_Error
   WriteProcessMemory hProcess, ByVal hModule, ByVal szDll, LenB(szDll), dwBytesWritten
   
   Thread = CreateRemoteThread(hProcess, SE, 0, ByVal k32LL, ByVal hModule, 0, dwTid)
   If Thread = 0 Then GoTo Inject_Error
   
   'Clean up a bit
   WaitForSingleObject Thread, 100
   VirtualFreeEx hProcess, hModule, 0&, MEM_RELEASE
   CloseHandle Thread

Exit Function

Inject_Error:
   Inject = False
   MsgBox "error"
   Exit Function
End Function

En línea

XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Re: Inyectar DLL
« Respuesta #7 en: 26 Mayo 2006, 19:25 pm »

----
« Última modificación: 17 Julio 2006, 23:19 pm por XP. » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #8 en: 26 Mayo 2006, 19:34 pm »

Si en lugar de inyectar una DLL inyectaramos un EXE que pasaria???un desbordamiento???

Salu2

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
krispin

Desconectado Desconectado

Mensajes: 90


Ver Perfil WWW
Re: Inyectar DLL
« Respuesta #9 en: 26 Mayo 2006, 19:42 pm »

todo en un form? o uso modulo?
Sin comentarios.
Primero hecha un vistazo al codigo, y luego habla. Si no sacas nada en claro de ese code dedicate a aprander un poco VB antes de empezar a querer hacer cosas raras.
el ejemplo es clarisimo.
Sin comentarios.

Si en lugar de inyectar una DLL inyectaramos un EXE que pasaria???un desbordamiento???

Salu2


Con ese code claramente no chuta, la razon es obvia.

En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Inyectar dll Pregunta...
Análisis y Diseño de Malware
dRak0 6 3,441 Último mensaje 28 Enero 2014, 00:46 am
por x64core
Consulta inyectar dll32 en proceso64
Programación C/C++
Cromatico 2 1,968 Último mensaje 17 Junio 2014, 23:04 pm
por Cromatico
inyectar inframe a una pag web
Bugs y Exploits
teloponeahi 1 2,751 Último mensaje 22 Febrero 2015, 04:09 am
por .:UND3R:.
Inyectar javascript
Hacking
TheH4ck 2 3,760 Último mensaje 10 Octubre 2015, 04:38 am
por TheH4ck
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines