Título: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Belial & Grimoire en 19 Junio 2012, 05:27 am hola
Me podrian ayudar a entender esto Código
Esta parte no la entiendo... se movera a esi edx+40, supuestamente es el puntero a los modulos pero donde encuentro informacion sobre el porque edx+40 apunta a los nombres movzx tengo entendido que es para mover a un destino rellenando con ceros, pero porque un word [edx+38]? Código
Aqui quiero creer que lo que pasa es que lodsb leera byte por byte de mov esi, y lo metera en ax, se hara una comparacion con los ultimos 8 bits y si resulta a minuscula se hara mayuscula y saltara a not_lowercase entiendo que ror es para voltear a la derecha, pero porque 13?, add hace una suma de edi + eax?, y como que el hash?, el que yo le pongo por ejemplo push 0x876F8B31 ;hash para WinExec a pila o cual hash? y me imagino que el loop hace que repita ecx que se relizo en next_mod Código
Código
Esto creo que es edx del inicio, puntero del primer modulo, y el hash que se caba de encontrar, el cual todavia no entiendo cual Código
este me imagino que es PVOID BaseAddress Código
creo que es el PE de kernel32.dll y la suma de eax y edx mas 120 me llevara a EAT, si no hay entonces llegare a get_next_mod1 Código
me imagino que saco de la pila edi, edx y regresamos a la posicion de antes y se repite next_mod Código
posiblemente aqui se encuentra EAT me llevara a RVA donde estan las funciones del modulo Código
pero me imagino que pasa si se leen tods las funciones, aunque no entiendo como funcionaria Código
Y para finalizar Me imagino que se hace exactamente lo mismo para buscar la funcion con loop Código
esto no entiendo que hace, solo se que sirve para verfiricar que es la que buscamos, pero porque ebp-8 y ebp+36 Código
Aqui y solo me imagino que es agregar a la pila todo los datos Código
y finalizamos Código
Perdon se que son muchas preguntas pero espero me puedan ayudar poco a poco, porque ya pase varios dias leyendo y googlendo sobre muchas cosas, afortundente el formato PE lo logre entender y bueno el manual que hay para formato PE sobre windows pues sigo leyendo varias funciones que desconocia de ASM las sigo aprendiendo, ya logre hacer una shell con las direcciones de WinExec y ExitProcess, me costo un poco de trabajo porque no sabia como hacer un push a "db 'cmd.exe', 0'"... XD y buscando me di cuenta que con esas mismas direcciones se puede ejecutar una shell con PEB, esto lo encontre del blog Harmony Security Código
y pues estoy interesado en aprender a hacer cosas como esas bueno, espero me puedan ayudar salu2 Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: afdlkglfgfdgfhgf en 19 Junio 2012, 06:07 am pesca la estructura PEB y anda deduciendo, aprenderas mucho mas asi.
por tanta duda que veo, deduzco que tienes PESIMA BASE, toma un tutorial o libro de assembler, despues leete uno de la cabezera PE . Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Belial & Grimoire en 19 Junio 2012, 07:42 am pues tengo varios link sobre PEB, por ejemplo
http://el-blog-de-thor.blogspot.mx/2011/05/obtener-la-direccion-base-de.html asi que si logro entender lo mejor posible como funciona, solo que me esfuerzo para entender ASM, y eso hace que me confunda rapido y formato PE si estudie, por ejemplo http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_en_construccionsecciones_en_archivos_pe-t362515.0.html http://foro.elhacker.net/analisis_y_diseno_de_malware/que_es_un_runpe-t340360.0.html y libros si tengo, creanme que los sigo estudiando el lenguaje, tambien tengo varios link donde estuve googlendo para encontrar cosas como "movzx", "lodsb", etc... y bueno, sigo haciendo ejercicios para acostumbrarme, y durante muchos años me acostumbre al codigo de alto nivel, y el cambio a lenguaje de bajo nivel, pues me confunden varias cosas bueno, espero no una gran explicacion a todo, pero lo que puedan ayudarme seria muy bueno salu2 Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Иōҳ en 19 Junio 2012, 21:09 pm Hola, no hay documentación oficial sobre el PEB correcta, la que hay obvian muchas cosas, yo estoy escribiendo acerca de esto, llegando del curro a la casa seguramente lo termino, y te lo paso para que lo mires.
Saludos, Nox. Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Eternal Idol en 19 Junio 2012, 21:30 pm Usando WinDbg como Microsoft manda. Windows 7 32 bits (WOW 64):
0:000> dt ntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 BitField : UChar +0x003 ImageUsesLargePages : Pos 0, 1 Bit +0x003 IsProtectedProcess : Pos 1, 1 Bit +0x003 IsLegacyProcess : Pos 2, 1 Bit +0x003 IsImageDynamicallyRelocated : Pos 3, 1 Bit +0x003 SkipPatchingUser32Forwarders : Pos 4, 1 Bit +0x003 SpareBits : Pos 5, 3 Bits +0x004 Mutant : Ptr32 Void +0x008 ImageBaseAddress : Ptr32 Void +0x00c Ldr : Ptr32 _PEB_LDR_DATA +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS +0x014 SubSystemData : Ptr32 Void +0x018 ProcessHeap : Ptr32 Void +0x01c FastPebLock : Ptr32 _RTL_CRITICAL_SECTION +0x020 AtlThunkSListPtr : Ptr32 Void +0x024 IFEOKey : Ptr32 Void +0x028 CrossProcessFlags : Uint4B +0x028 ProcessInJob : Pos 0, 1 Bit +0x028 ProcessInitializing : Pos 1, 1 Bit +0x028 ProcessUsingVEH : Pos 2, 1 Bit +0x028 ProcessUsingVCH : Pos 3, 1 Bit +0x028 ProcessUsingFTH : Pos 4, 1 Bit +0x028 ReservedBits0 : Pos 5, 27 Bits +0x02c KernelCallbackTable : Ptr32 Void +0x02c UserSharedInfoPtr : Ptr32 Void +0x030 SystemReserved : [1] Uint4B +0x034 AtlThunkSListPtr32 : Uint4B +0x038 ApiSetMap : Ptr32 Void +0x03c TlsExpansionCounter : Uint4B +0x040 TlsBitmap : Ptr32 Void +0x044 TlsBitmapBits : [2] Uint4B +0x04c ReadOnlySharedMemoryBase : Ptr32 Void +0x050 HotpatchInformation : Ptr32 Void +0x054 ReadOnlyStaticServerData : Ptr32 Ptr32 Void +0x058 AnsiCodePageData : Ptr32 Void +0x05c OemCodePageData : Ptr32 Void +0x060 UnicodeCaseTableData : Ptr32 Void +0x064 NumberOfProcessors : Uint4B +0x068 NtGlobalFlag : Uint4B +0x070 CriticalSectionTimeout : _LARGE_INTEGER +0x078 HeapSegmentReserve : Uint4B +0x07c HeapSegmentCommit : Uint4B +0x080 HeapDeCommitTotalFreeThreshold : Uint4B +0x084 HeapDeCommitFreeBlockThreshold : Uint4B +0x088 NumberOfHeaps : Uint4B +0x08c MaximumNumberOfHeaps : Uint4B +0x090 ProcessHeaps : Ptr32 Ptr32 Void +0x094 GdiSharedHandleTable : Ptr32 Void +0x098 ProcessStarterHelper : Ptr32 Void +0x09c GdiDCAttributeList : Uint4B +0x0a0 LoaderLock : Ptr32 _RTL_CRITICAL_SECTION +0x0a4 OSMajorVersion : Uint4B +0x0a8 OSMinorVersion : Uint4B +0x0ac OSBuildNumber : Uint2B +0x0ae OSCSDVersion : Uint2B +0x0b0 OSPlatformId : Uint4B +0x0b4 ImageSubsystem : Uint4B +0x0b8 ImageSubsystemMajorVersion : Uint4B +0x0bc ImageSubsystemMinorVersion : Uint4B +0x0c0 ActiveProcessAffinityMask : Uint4B +0x0c4 GdiHandleBuffer : [34] Uint4B +0x14c PostProcessInitRoutine : Ptr32 void +0x150 TlsExpansionBitmap : Ptr32 Void +0x154 TlsExpansionBitmapBits : [32] Uint4B +0x1d4 SessionId : Uint4B +0x1d8 AppCompatFlags : _ULARGE_INTEGER +0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER +0x1e8 pShimData : Ptr32 Void +0x1ec AppCompatInfo : Ptr32 Void +0x1f0 CSDVersion : _UNICODE_STRING +0x1f8 ActivationContextData : Ptr32 _ACTIVATION_CONTEXT_DATA +0x1fc ProcessAssemblyStorageMap : Ptr32 _ASSEMBLY_STORAGE_MAP +0x200 SystemDefaultActivationContextData : Ptr32 _ACTIVATION_CONTEXT_DATA +0x204 SystemAssemblyStorageMap : Ptr32 _ASSEMBLY_STORAGE_MAP +0x208 MinimumStackCommit : Uint4B +0x20c FlsCallback : Ptr32 _FLS_CALLBACK_INFO +0x210 FlsListHead : _LIST_ENTRY +0x218 FlsBitmap : Ptr32 Void +0x21c FlsBitmapBits : [4] Uint4B +0x22c FlsHighIndex : Uint4B +0x230 WerRegistrationData : Ptr32 Void +0x234 WerShipAssertPtr : Ptr32 Void +0x238 pContextData : Ptr32 Void +0x23c pImageHeaderHash : Ptr32 Void +0x240 TracingFlags : Uint4B +0x240 HeapTracingEnabled : Pos 0, 1 Bit +0x240 CritSecTracingEnabled : Pos 1, 1 Bit +0x240 SpareTracingBits : Pos 2, 30 Bits Windows 7 64 bits: 0:000> dt ntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 BitField : UChar +0x003 ImageUsesLargePages : Pos 0, 1 Bit +0x003 IsProtectedProcess : Pos 1, 1 Bit +0x003 IsLegacyProcess : Pos 2, 1 Bit +0x003 IsImageDynamicallyRelocated : Pos 3, 1 Bit +0x003 SkipPatchingUser32Forwarders : Pos 4, 1 Bit +0x003 SpareBits : Pos 5, 3 Bits +0x008 Mutant : Ptr64 Void +0x010 ImageBaseAddress : Ptr64 Void +0x018 Ldr : Ptr64 _PEB_LDR_DATA +0x020 ProcessParameters : Ptr64 _RTL_USER_PROCESS_PARAMETERS +0x028 SubSystemData : Ptr64 Void +0x030 ProcessHeap : Ptr64 Void +0x038 FastPebLock : Ptr64 _RTL_CRITICAL_SECTION +0x040 AtlThunkSListPtr : Ptr64 Void +0x048 IFEOKey : Ptr64 Void +0x050 CrossProcessFlags : Uint4B +0x050 ProcessInJob : Pos 0, 1 Bit +0x050 ProcessInitializing : Pos 1, 1 Bit +0x050 ProcessUsingVEH : Pos 2, 1 Bit +0x050 ProcessUsingVCH : Pos 3, 1 Bit +0x050 ProcessUsingFTH : Pos 4, 1 Bit +0x050 ReservedBits0 : Pos 5, 27 Bits +0x058 KernelCallbackTable : Ptr64 Void +0x058 UserSharedInfoPtr : Ptr64 Void +0x060 SystemReserved : [1] Uint4B +0x064 AtlThunkSListPtr32 : Uint4B +0x068 ApiSetMap : Ptr64 Void +0x070 TlsExpansionCounter : Uint4B +0x078 TlsBitmap : Ptr64 Void +0x080 TlsBitmapBits : [2] Uint4B +0x088 ReadOnlySharedMemoryBase : Ptr64 Void +0x090 HotpatchInformation : Ptr64 Void +0x098 ReadOnlyStaticServerData : Ptr64 Ptr64 Void +0x0a0 AnsiCodePageData : Ptr64 Void +0x0a8 OemCodePageData : Ptr64 Void +0x0b0 UnicodeCaseTableData : Ptr64 Void +0x0b8 NumberOfProcessors : Uint4B +0x0bc NtGlobalFlag : Uint4B +0x0c0 CriticalSectionTimeout : _LARGE_INTEGER +0x0c8 HeapSegmentReserve : Uint8B +0x0d0 HeapSegmentCommit : Uint8B +0x0d8 HeapDeCommitTotalFreeThreshold : Uint8B +0x0e0 HeapDeCommitFreeBlockThreshold : Uint8B +0x0e8 NumberOfHeaps : Uint4B +0x0ec MaximumNumberOfHeaps : Uint4B +0x0f0 ProcessHeaps : Ptr64 Ptr64 Void +0x0f8 GdiSharedHandleTable : Ptr64 Void +0x100 ProcessStarterHelper : Ptr64 Void +0x108 GdiDCAttributeList : Uint4B +0x110 LoaderLock : Ptr64 _RTL_CRITICAL_SECTION +0x118 OSMajorVersion : Uint4B +0x11c OSMinorVersion : Uint4B +0x120 OSBuildNumber : Uint2B +0x122 OSCSDVersion : Uint2B +0x124 OSPlatformId : Uint4B +0x128 ImageSubsystem : Uint4B +0x12c ImageSubsystemMajorVersion : Uint4B +0x130 ImageSubsystemMinorVersion : Uint4B +0x138 ActiveProcessAffinityMask : Uint8B +0x140 GdiHandleBuffer : [60] Uint4B +0x230 PostProcessInitRoutine : Ptr64 void +0x238 TlsExpansionBitmap : Ptr64 Void +0x240 TlsExpansionBitmapBits : [32] Uint4B +0x2c0 SessionId : Uint4B +0x2c8 AppCompatFlags : _ULARGE_INTEGER +0x2d0 AppCompatFlagsUser : _ULARGE_INTEGER +0x2d8 pShimData : Ptr64 Void +0x2e0 AppCompatInfo : Ptr64 Void +0x2e8 CSDVersion : _UNICODE_STRING +0x2f8 ActivationContextData : Ptr64 _ACTIVATION_CONTEXT_DATA +0x300 ProcessAssemblyStorageMap : Ptr64 _ASSEMBLY_STORAGE_MAP +0x308 SystemDefaultActivationContextData : Ptr64 _ACTIVATION_CONTEXT_DATA +0x310 SystemAssemblyStorageMap : Ptr64 _ASSEMBLY_STORAGE_MAP +0x318 MinimumStackCommit : Uint8B +0x320 FlsCallback : Ptr64 _FLS_CALLBACK_INFO +0x328 FlsListHead : _LIST_ENTRY +0x338 FlsBitmap : Ptr64 Void +0x340 FlsBitmapBits : [4] Uint4B +0x350 FlsHighIndex : Uint4B +0x358 WerRegistrationData : Ptr64 Void +0x360 WerShipAssertPtr : Ptr64 Void +0x368 pContextData : Ptr64 Void +0x370 pImageHeaderHash : Ptr64 Void +0x378 TracingFlags : Uint4B +0x378 HeapTracingEnabled : Pos 0, 1 Bit +0x378 CritSecTracingEnabled : Pos 1, 1 Bit +0x378 SpareTracingBits : Pos 2, 30 Bits Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Иōҳ en 20 Junio 2012, 17:10 pm Por si te interesa:
http://www.noxsoft.net/2012/06/undocumented-peb-accediendo-los-modulos/ Saludos, Nox. Título: Re: me podrian ayudar explicandome dudas sobre PEB y shellcode porfavor Publicado por: Belial & Grimoire en 21 Junio 2012, 00:51 am a que bien, gracias por las respuestas
y gracias Nox, por el link... se ve interesante tu blog salu2 ;D |