David Villegas
unread,Sep 25, 2009, 4:23:39 AM9/25/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ci-12...@googlegroups.com
Un NOP (no operación), es una instrucción que le indica al procesador que no haga nada, es decir, que no ejecute ninguna instrucción en absoluto durante un ciclo del reloj. La instrucción permite que la memoria de un programa sea reacomodada mientras el programa se ejecuta, lo cual nos sirve para hackear ya que permite cambiar registros, banderas, direcciones de retorno o memoria para que el programa al ejecutarse accese al código que se ha inyectado, y es a partir de ese momento que se obtiene manejo y control de los procesos y funciones.
Pienso que el código es generado en lenguaje ensamblador debido a que este es un lenguaje de bajo nivel, lo cual permite poco o ningún nivel de abstracción con respecto a la arquitectura del conjunto de instrucciones de la máquina específica, por lo que no hay diferencia entre el lenguaje y el lenguaje máquina, permitiendo la ejecución de código sin la necesidad de un compilador o intérprete para que corra. Además el lenguaje es más universal, ya que está confomado por unos y ceros en sus diferentes representaciones (decimal, binario, hexadecimal, octadecimal, etc), y como dentro de la memoria el formato de los registros es hexadecimal, permite que se de una representación simbólica de los distintos códigos de máquina de las arquitecturas de las computadoras, así como un control más preciso de las tareas realizadas por el procesador.
La inyección de código tengo entendido que se realiza aprovechando fallos o partes vulnerables en la máquina, y aparentemente la inyección se logra mediante la lectura de archivos, el almacenamiento de
datos o por líneas de
comando, pero como todavía no lo tengo muy claro seguiré buscando... Con respecto a lo de shellcodes, leí que hay un tipo de shellcode remoto que descarga y ejecuta archivos en el sistema. Este tipo de shellcode en lugar de ejecutar un shell, lo que hace es darle a las instrucciones a la máquina para que descargue archivos ejecutables de la red, los almacena en el disco y los ejecuta, con el fin de instalar software dañino en la computadora. También hay un shellcode por etapas, donde debido a que la cantidad de datos que se desean inyectar es muy limitada para ejecutar el shellcode directamente, el shellcode se puede ejecutar por etapas, donde primero se ejecuta una parte pequeña del shellcode, y luego este código descarga el resto del código en la memoria de procesamiento y lo ejecuta.