Título: Principio de Troyano ASM Publicado por: Vaagish en 15 Mayo 2013, 02:44 am Buenas amigos del foro!! Hoy ando regalon...
Como el foro casi siempre me supo responder mis preguntas, hoy voy a colaborar yo... voy a aclarar que soy nuevo en asm, y quizas el codigo no es el mejor, pero lo voy a compartir, asi que no sean crueles jajaja Bueno, en un principio no queria exponerlo, pero como me decidi a hacer diferente mi aplicacion de "administracion remota" lo voy a poner aca... Lo probe con virustotal y asi como esta tiene 4 detecciones: VBA32 Malware-Cryptor.Win32.Allblock Norman Crypt.AWHI F-Prot W32/Threat-HLLSI-based!Maximus Commtouch W32/Threat-HLLSI-based!Maximus Aclaro que, a lo mejor ven alguna rutina que han visto en Internet, eso se debe a que he investigado muchísimo, (no se olviden que soy nuevo, y bueno.. así se aprende... ) y no he encontrado otra forma mejor de implementarlas, por eso son iguales,, las iba a cambiar, pero como voy a empezar otro troyano, este lo dejo como esta.. Sin mas que decir: Código: .386 Bueno, ahi esta... Si alguien quiere colaborar con ideas, opiniones y demais, yo muy agradecido.. Saludos! Título: Re: Principio de Troyano ASM Publicado por: xv0 en 16 Mayo 2013, 14:58 pm Hola
Estas en ASM te podrias ahorrar las funciones inet_addr y htons investiga un poco. Un saludo y felicidades. Título: Re: Principio de Troyano ASM Publicado por: 0xDani en 16 Mayo 2013, 15:51 pm Hola Estas en ASM te podrias ahorrar las funciones inet_addr y htons investiga un poco. Un saludo y felicidades. En cuanto a htons sólo se me ocurre que se podría hacer un bswap. Cómo se podría ahorrar el uso de estas dos funciones? Título: Re: Principio de Troyano ASM Publicado por: xv0 en 16 Mayo 2013, 16:16 pm Pues cargando los bytes directamente en la pila.
Código
Así no tienes que utilizar esas funciones. Un saludo. P.D: Cualquier duda pregunta. Título: Re: Principio de Troyano ASM Publicado por: Vaagish en 16 Mayo 2013, 19:33 pm Hola colegas! No se me habia ocurrido ese tipo de ventaja,, es muy buena...
Gracias por comentar! Saludos! Título: Re: Principio de Troyano ASM Publicado por: 0xDani en 16 Mayo 2013, 20:30 pm Pues cargando los bytes directamente en la pila. Código
Así no tienes que utilizar esas funciones. Un saludo. P.D: Cualquier duda pregunta. Y qué valores cargas en la pila? En el caso de htons, el número del puerto con el endianess ajustado al de la red, pero y en el de inet_addr? Título: Re: Principio de Troyano ASM Publicado por: xv0 en 16 Mayo 2013, 20:52 pm El de inet_addr es el primer push.
Creo que también podria utilizar INADDR_LOOPBACK que esta definida en la cabezera in.h, pero creo que eso es más para sistema Posix. Un saludo. Título: Re: Principio de Troyano ASM Publicado por: Vaagish en 16 Mayo 2013, 21:57 pm Bueno, me estoy perdiendo un poco, tendré que averiguar que es el Posix...
Yo calcule abrir el olly, ver que ponía la función inet_addr y copy-pase... despues de todo, la direccion ip va a ser siempre la mia, como una constante.. asi que deberia ser siempre lo mismo... no ? msdn: The inet_addr function converts a string containing an IPv4 dotted-decimal address into a proper address for the IN_ADDR structure. Luego de averiguar con el olly el resultado de la funcion, le pongo el valor directo dentro de sa.sin_addr y gol! :D Título: Re: Principio de Troyano ASM Publicado por: 0xDani en 16 Mayo 2013, 22:09 pm El de inet_addr es el primer push. Creo que también podria utilizar INADDR_LOOPBACK que esta definida en la cabezera in.h, pero creo que eso es más para sistema Posix. Un saludo. Ok, ya lo comprendo, gracias! Título: Re: Principio de Troyano ASM Publicado por: Vaagish en 28 Mayo 2013, 07:26 am Buenas señores! Primero que nada, perdon por volver a escribir en este post, pero no daba para empezar otro hilo.. ( me parece )
Estoy teniendo problemas para hacer el push de htoons y inet.. Código: INET equ 0100007fh Y luego Código: ThreadProc PROC El problema es que cuando lo ejecuto funciona, pero me empieza a abrir este proceso: vsjitdebugger.exe infinitas veces, hasta que supongo yo, colapse la memoria :-\ Que puede estar pasando ? tendira que sacar de la pila despues que pusheo ? Gracias por leer !! Título: Re: Principio de Troyano ASM Publicado por: xv0 en 29 Mayo 2013, 02:17 am Código: INET equ 0100007fh Para que declaras eso? si vas a cargar directamente los valores en la pila. El de htons esta mal, solo es 0xb822, 0x2 es el valor de AF_INET y el 0x00 es el valor que pones al miembro sin_len de la estructura sockaddr_in, que no existe por lo que veo en windows me confundí pensaba que era como unix-like, linux etc... MSDN: Código: struct sockaddr_in{ Código
Sería en mi caso, muevo la dirección de la estructura sockaddr_in al 2 arg, tú la tendrías que copiar a addr, por lo que veo en esos invoke, o "pushear" y luego hacer un call que es lo que hace ese invoke si no me equivoco. Haciendo eso creo que podrías tener problemas con el ret, incrementa el stack luego de copiar la estructura a addr por el valor sustraído, ya sabes cual es. Código
Eso no es lógico, creo que haces cosas que no entiendes. Un saludo. Título: Re: Principio de Troyano ASM Publicado por: Vaagish en 29 Mayo 2013, 05:00 am Gracias cpu2! Ahora lo intentare !!
las constantes las declare para no escibir una y otra vez los valores mientras probaba como hacer funcionar esto que explicas con tanta naturalidad jajaja por otro lado,, es verdad, aun no domino el arte de los registros y el stack...hay cosas que aun no se :-\ pero mi experiencia dice: "Hacer y entender" ( Aunque un libro tampoco estaria mal en asm ) jajajaja Igual, juro que he leido! ( Hace 2 meses siquiera pensaba en programar en asm... ) Saludos! |