Autor
|
Tema: Sobre inyecciones en EXE's y DLL (Leído 11,078 veces)
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Si por ejemplo, hiciera un server de troyano, tendria que poner todo el codigo en la DLL y luego dentro de la DLL hacer lalmadas a sus propias opciones que estan dentro de esa DLL???? Todo lo que hagas en la DLL va a ser hecho desde el programa que la carga, da lo mismo que sea cargada mendiante una inyeccion de codigo o por un programa diseñado para cargarla.
|
|
|
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
|
|
|
Hendrix
|
Ok...pues a eso ya lo pille....Gracias... Otra duda (esta mas peñeñita...), si inyectara la DLL en un proceso del sistema (SYSTEM) tendria esos privilegios la DLL inyectada??? Porke a eso yo ya le veo muchas posibilidades.... 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
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Otra duda (esta mas peñeñita...), si inyectara la DLL en un proceso del sistema (SYSTEM) tendria esos privilegios la DLL inyectada??? Si.
|
|
|
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
|
|
|
Hendrix
|
Weno, tengo este kode para inyectar DLL: 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 Es de cKrispin creo....Y lo que me pasa es que kon una DLL echa en VB ni me fucniona....Krispin explika que mejor ahcer las DLL en C...pero no hay ni una remota posibilidad de que en VB funcionen las DLL's??? 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
|
|
|
LuckyMonkey
Desconectado
Mensajes: 41
SCS (Simio Con Suerte)
|
Con visual basic por lo que tengo entendido sólo se puede programar librerias activex así que yo diria que es imposible hacerlo. La gracia que tiene aplicar esto para saltarte el firewall es que estos no miran lo que hace cada libreria de un programa y si una dll inyectada en iexplorer.exe se conecta a internet el firewall al tener permisos para el iexplorer no saltaría. El problema es que la última versión de zonealarm por ejemplo detecta como peligroso el uso de createremotethread y saca un mensaje. De momento se pueden usar algunas técnicas alternativas, mucho menos conocidas que puedes encontrar en google si buscas bien y estudias el tema. Pero en las proximas versiones de zonealarm se ha anunciado que se filtrarán las librerias por separado así que tampoco va a durar mucho más el tema. En dos dias sólo nos quedará la inyección en los espacios por alineación del ejecutable...... mucho más complicado y mucho más restrictivo P.D:Si tienes problemas con tu código mandame un MP y te mando un troyano con funcionalidades de rootkit que programé sobre esto mismo. Saludos
|
|
|
En línea
|
Mira!! detrás de ti!! un mono de tres cabezas!!
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
|
|
|
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
|
|
|
Krnl64
Desconectado
Mensajes: 169
Exception 0x00005
|
Eternal Idol.
Estas equivocado. Aun siguiendo ese procedimiento, no se hacen Dll's verdaderas.
No exportan funciones.
La prueba la tienes en que Si desensamblas una DLL hecha con ese procedimiento, mantiene la referencia a MSVBVM.DLL.
Es decir, que sin ese archivo no funcionara la DLL creada.
Otra forma de ver que no es 1 DLL normal es con RunDll32
Si creamos 1 DLL en VB con una funcion por ejemplo, y ponemos Rundll32 midll.dll,nombrefuncion dara error de entrypoint. Una DLL de "verdad" ejecutaria la funcion
Lo mejor es hacerla en C. ( yo se muy poco)
ah, hablando de inyeccion creo que la DLL generada de esta forma no sirve para eso.
Salu2
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Estas equivocado. Aun siguiendo ese procedimiento, no se hacen Dll's verdaderas. ¿Seguro que estoy equivocado? Te doy la posibilidad de leer el articulo COMPLETO (son 3 paginas) de nuevo y retractarte ...
|
|
|
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
|
|
|
Krnl64
Desconectado
Mensajes: 169
Exception 0x00005
|
Veras Eternal Idol, he leido varios articulos de como crear DLL "verdaderas" en VB. Entre ellos ese. Creo que no estoy equivovocado. Te pediria que lo comprobaras. Yo he probado todas las maneras posibles, incluso creando 1 compilador nuevo que reemplazaba a C2.EXE Pero no son DLL's verdaderas. Lo que no son, son DLL's ActiveX. Mantienen el vinculo a la maquina virtual de VB. mira, posteo 1 fragmento de una DLL que cree en VB: 00000000 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 MZ.......ÿÿ.. 00000010 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ¸.......@....... 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030 00 00 00 00 00 00 00 00 00 00 00 00 C0 00 00 00 ............À... 00000040 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 º.´.Í!¸LÍ!Th 00000050 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F is program canno 00000060 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 t be run in DOS 00000070 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 mode....$....... 00000080 29 0B DC DB 6D 6A B2 88 6D 6A B2 88 6D 6A B2 88 )ÜÛmj²ˆmj²ˆmj²ˆ 00000090 EE 76 BC 88 6C 6A B2 88 04 75 BB 88 6F 6A B2 88 îv¼ˆlj²ˆu»ˆoj²ˆ 000000A0 84 75 BF 88 6C 6A B2 88 85 75 B6 88 6C 6A B2 88 „u¿ˆlj²ˆ…u¶ˆlj²ˆ 000000B0 52 69 63 68 6D 6A B2 88 00 00 00 00 00 00 00 00 Richmj²ˆ........ 000000C0 50 45 00 00 4C 01 04 00 31 37 7E 44 00 00 00 00 PE..L.17~D.... 000000D0 00 00 00 00 E0 00 0E 21 0B 01 06 00 00 50 00 00 ....à.!..P.. 000000E0 00 30 00 00 00 00 00 00 90 13 00 00 00 10 00 00 .0........... 000000F0 00 60 00 00 00 00 00 11 00 10 00 00 00 10 00 00 .`........... 00000100 04 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 ............. 00000110 00 90 00 00 00 10 00 00 DC 0E 01 00 02 00 00 00 ......Ü.... 00000120 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 ............ 00000130 00 00 00 00 10 00 00 00 40 59 00 00 50 01 00 00 .......@Y..P.. 00000140 C4 53 00 00 28 00 00 00 00 70 00 00 FC 08 00 00 ÄS..(....p..ü.. 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000160 00 80 00 00 80 05 00 00 00 00 00 00 00 00 00 00 .€..€.......... 00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000190 58 02 00 00 20 00 00 00 00 10 00 00 38 01 00 00 X.. ......8.. 000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001B0 00 00 00 00 00 00 00 00 2E 74 65 78 74 00 00 00 .........text... 000001C0 90 4A 00 00 00 10 00 00 00 50 00 00 00 10 00 00 J......P..... 000001D0 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 ............ ..` 000001E0 2E 64 61 74 61 00 00 00 F4 03 00 00 00 60 00 00 .data...ô...`.. 000001F0 00 10 00 00 00 60 00 00 00 00 00 00 00 00 00 00 ....`.......... 00000200 00 00 00 00 40 00 00 C0 2E 72 73 72 63 00 00 00 ....@..À.rsrc... 00000210 FC 08 00 00 00 70 00 00 00 10 00 00 00 70 00 00 ü...p......p.. 00000220 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 ............@..@ 00000230 2E 72 65 6C 6F 63 00 00 B8 05 00 00 00 80 00 00 .reloc..¸...€.. 00000240 00 10 00 00 00 80 00 00 00 00 00 00 00 00 00 00 ....€.......... 00000250 00 00 00 00 40 00 00 42 EC CF 3A 40 10 00 00 00 ....@..BìÏ:@... ---------------------------AKI 00000260 00 00 00 00 00 00 00 00 4D 53 56 42 56 4D 36 30 ........MSVBVM60 00000270 2E 44 4C 4C 00 00 00 00 00 00 00 00 00 00 00 00 .DLL............ 00000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Si te interesa, detallo el proceso que segui y pongo el code. Por ahora, sigo diciendo que no son DLL's "verdaderas" y que no valen para inyeccion. Espero tu contestacion Salu2
|
|
« Última modificación: 16 Junio 2006, 07:25 am por Krnl64 »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Bueno, este era el mensaje que no queria tener que publicar: Estas equivocado. Aun siguiendo ese procedimiento, no se hacen Dll's verdaderas. La verdad es que NO, el que esta equivocado sos vos y en gran forma. No exportan funciones. Leyendo tremenda barbaridad me vienen a la mente dos preguntas: ¿Leiste el articulo? ¿Llevaste el procedimiento a la practica? ¿De verdad lo leiste? ¿Seguro que lo probaste? La prueba la tienes en que Si desensamblas una DLL hecha con ese procedimiento, mantiene la referencia a MSVBVM.DLL. Es decir, que sin ese archivo no funcionara la DLL creada. Entonces mi DLL mono.dll escrita en assembly no es verdadera ya que depende de mi otra DLL perro.dll escrita en C ... ¿Acaso no eso es lo que estas diciendo? Mas aun, trazando un claro paralelismo entre la MSVBVMXX.dll y la MSVCRT.dll (Run Time de C) tenemos que una DLL escrita en C y con la Run Time enlazada dinamicamente TAMPOCO es una DLL "verdadera". Bueno, la respuesta es que nuevamente estas equivocado, que siga dependiendo de MSVBVMXX.DLL no prueba absolutamente nada mas que eso. Por favor, antes de decir que alguien esta equivocado hay que sopesar si uno sabe de lo que esta hablando. Y desensamblar la DLL para ver que tiene una dependencia es una incongruencia, en el codigo no vas a ver la dependencia ya que la misma es simplemente una llamada a una direccion alojada en una tabla. Para ver las dependencias se usan programas mucho mas simples que un desensamblador como el Dependency Walker. Si creamos 1 DLL en VB con una funcion por ejemplo, y ponemos Rundll32 midll.dll,nombrefuncion dara error de entrypoint. Una DLL de "verdad" ejecutaria la funcion Vuelvo a la anterior: ¿De verdad leiste el articulo? En la segunda pagina se muestra como creando una DLL ActiveX da el error que comentas ya que ciertamente por defecto VB no permite exportar funciones pero en la tercera pagina explica como hacer que el enlazador exporte las funciones que queres mediante un par de metodos diferentes ... ah, hablando de inyeccion creo que la DLL generada de esta forma no sirve para eso. No hay que creer, sino probar y saber: estas equivocado (de nuevo).
|
|
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con 2 inyecciones SQL
Hacking
|
er_davids
|
3
|
4,225
|
30 Mayo 2011, 22:43 pm
por 4rkn63l
|
|
|
Probando inyecciones SQL - Columnas ocultas
Bugs y Exploits
|
Zeioth
|
8
|
6,555
|
9 Julio 2013, 19:27 pm
por Zeioth
|
|
|
Inyecciones en inyecciones SQL
Nivel Web
|
MichBukana
|
1
|
2,786
|
6 Octubre 2013, 00:08 am
por Stakewinner00
|
|
|
[DUDA] Inyecciones SQL con '
Nivel Web
|
bytefloat
|
3
|
3,785
|
19 Julio 2015, 06:42 am
por sqln00b
|
|
|
Duda sobre Inyecciones SQL
Dudas Generales
|
M401
|
5
|
3,255
|
2 Junio 2021, 15:20 pm
por Danielㅤ
|
|