Páginas: [1]
|
 |
|
Autor
|
Tema: Win32Create Admin User Account (Leído 1350 veces)
|
servomac
Desconectado
Mensajes: 25
Powered by Debian Sarge & Kernel 2.6.7
|
Buenas. Estoy estudiando el code de un exploit de la gente del Metasploit Project, que podeis encontrar http://metasploit.com/sc/win32_adduser.asm. Hay varias cosas que no entiendo, a ver si me podeis ayudar : 1. Lo primero que hace es restar 128 al registro sp ... supongo que es necesario para que al mover de esp a esi se pase el numero que buscamos, ¿pero porque 128? y ¿porque pasan lo que contiene esp a esi? 2. Cuando busca la dirección de un proceso determinado (en este caso ExitProcess) mete en la pila ebx (que es la dirección base del kernel32) y 73e2d87e en hexadecimal, para luego llamar a LGetProcAddress, que a su vez deja la dirección del proceso en eax. ¿Como sabe el programador el numero en hexadecimal que tiene que empujar a la pila antes de llamar a LGetProcessAddress para especificar que es ExitProcess? Me hariais favor si me ayudarais con estos pequeños problemillas que tengo, porque estoy un poco perdido. ¡¡Saludos!!
|
|
|
|
|
En línea
|
"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
|
|
|
neo_geno
Desconectado
Mensajes: 40
|
. Lo primero que hace es restar 128 al registro sp ... supongo que es necesario para que al mover de esp a esi se pase el numero que buscamos, ¿pero porque 128? y ¿porque pasan lo que contiene esp a esi? le resta 128 pq es el total de words del buffer hasta llegar al sp (stack pointer) a lo segundo no te puedo ayudar, lo siento
|
|
|
|
|
En línea
|
LLoramos al nacer pq venimos a parar a este inmenso mundo de dementes. __________________________________________
El usuario ve cosas y se pregunta el porque, el hacker ve cosas y se pregunta el pq no hacerlo.
|
|
|
Rojodos
"If you wanna be free, you must be different"
Desconectado
Mensajes: 3.525
|
73e2d87e es la direccion de la funcion ExitProcess en ¿kernel32.dll?
Habia una utilidad por ahi que te permitia ver los offsets de muchas funciones de la API de windows.... si no lo tienes o no lo encuentras, solo te queda tirar de debugger.
Te hablo de memoria, pero para pillar esa direccion, por ejemplo, codeas en C una llamada a ExitProccess y luego lo debugeas y miras el call a ver donde apunta.
Salu2
|
|
|
|
|
En línea
|
|
|
|
servomac
Desconectado
Mensajes: 25
Powered by Debian Sarge & Kernel 2.6.7
|
Ok rojodos, ¿alguna recomendación sobre el debugger a utilizar si uso la plataforma windows 2000?
Además, cuando te refieres a codear una función a ExitProcess, ¿como lo tendria que hacer desde C? Porque he usado syscalls en linux usando excve(), pero nunca he hecho nada de este estilo bajo windows.
Saludos.
|
|
|
|
|
En línea
|
"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
|
|
|
Rojodos
"If you wanna be free, you must be different"
Desconectado
Mensajes: 3.525
|
Ollydbg. El mejor de los mejores del mundo mundial xD
Bueno, hace muxotime que no codeo, pero...
#include <stdio.>
main (){ LoadLibraryA ("kernel32.dll"); asm__{ push 0 <- Esta linea faltaba (edit) call kernel32.ExitProcess } }
Algo asi xDDD
Luego, lo debugeas y miras a donde apunta el call (el offset) y ya lo tienes.
Pero te aviso que los offsets de las DLLs de windows cambian mas que el tiempo...
Salu2
|
|
|
|
« Última modificación: 20 Julio 2004, 17:54 por Rojodos »
|
En línea
|
|
|
|
Rojodos
"If you wanna be free, you must be different"
Desconectado
Mensajes: 3.525
|
Eran las 2 y pico AM, staba discutiendo en el chat (xD) y se me fue la mano.
Faltaba el push 0 como bien me recordo mek.
Creo que asi esta completo.
Salu2
|
|
|
|
|
En línea
|
|
|
|
servomac
Desconectado
Mensajes: 25
Powered by Debian Sarge & Kernel 2.6.7
|
Tengo un problema...supongo que antes de usar la función LoadLibraryA tengo que cargar alguna libreria con #include, porque el Dev-C++ me devuelve el siguiente error :
4 D:\Mis Documentos\My eBooks\prova.cpp `LoadLibraryA' undeclared (first use
¿Alguien sabe que cabecera/libreria debo utilizar para poder usar esa función?
|
|
|
|
|
En línea
|
"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
|
|
|
Rojodos
"If you wanna be free, you must be different"
Desconectado
Mensajes: 3.525
|
Ostias, lo siento  #include <windows.h>  Sorry
|
|
|
|
|
En línea
|
|
|
|
servomac
Desconectado
Mensajes: 25
Powered by Debian Sarge & Kernel 2.6.7
|
Me lo imaginava, ¡muchas gracias! Mañana lo miro en el pc de mi primo y hos digo cosas, que aqui solo tengo Debian & Red Hat  .
|
|
|
|
|
En línea
|
"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
|
|
|
servomac
Desconectado
Mensajes: 25
Powered by Debian Sarge & Kernel 2.6.7
|
Para meter asm dentro del codigo no me furula con asm__{ ... ¿alguien sabe como meter codigo ensamblador dentro de C con dev-c++ bajo windows?
¡¡Saludos!!
|
|
|
|
|
En línea
|
"Se necesita a un ladrón para atrapar a otro ladrón, y eso no lo enseña ningún catedrático." (HVC)
|
|
|
Rojodos
"If you wanna be free, you must be different"
Desconectado
Mensajes: 3.525
|
Con Dev Cpp tendras que usar ASM de AT&T, y aunque son solo dos instrucciones, a la hora de hacer asmcodes mas grandes te vas a volver loco (a no ser que domines ASM de AT&T que no es mi caso).
Creo que el codigo que te he puesto funcionara perfectamente en el VC++ 6.0 (que es el que usaba yo para codear).
Salu2
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|