Buenas.
Ultimamente no actualizo mucho el blog que se diga, es porque (por fin) empecé a currar en una empresa (y porque soy un poco vago también…). Es a media jornada pero al menos es algo, y además de informático, que más se puede pedir
. Mientras tanto intentaré activarme con unas vitaminas, porque llevo un plan que no es normal.
Por lo demás, estoy esperando que me lleguen unos libros de Amazon: “Microsoft Windows Internals“, “Rootkits: Subverting the Windows Kernel” y “Reversing: Secrets of Reverse Engineering” (me ha dado por windows culturizarme
). Mientras me llegan dudo que haga nada, aparte de leer un txt de bofs del linux kernel a un ritmo de una página por semana +/-.
En fin, no me enrollo más.
Un saludo a los loc@s que lean esto
.
PD: Según parece Phrack #65 sale el 31 de este mes, a ver
si a esta va la vencida
.
Pues nada, que estaba viendo como pasaba el tiempo y no escribía en el blog, y me he dicho: va.., escribe algo aunque sea para decir que no haces nada, y aquí estoy
.
Llevo unos días que no sé que me pasa que estoy en plan vago (que raro…). Lo último que hice fue intentar explotar el CUPS, no con mucho éxito. Como me aburría mi colega Pepelux me sugirió un sitio sobre retos (bright-shadows); exploit-it, crack-it, etc… Está bastante bien, aunque la sección de exploits es un poco pobre, son casi todos de PHP y cosas así. Hay uno de bugs de formato que al menos me sirvió para recordar conceptos (un poco obsoletos porque ya casi no hay bugs de formato pero bueno); de como explotarlos y de automatización de exploits locales con ptrace() (también obsoleto gracias al randomize de los nuevos kernels).
Cambiando de tema, también sigo con la lectura del artículo sobre explotar el kernel de la última phrack (a todo esto, debería estar a punto de salir la número #65). La verdad es que el arti es un poco lioso, sobre todo porque mezcla x86 con otras arquitecturas, y porque el tema en sí ya es lioso. En fin, a ver si lo acabo en un par de años.
También tengo impresos un par de RFC’s sobre samba, por si me da por intentar explotarlo. Se ha hecho público un PoC/DoS para uno de los bofs que han salido. Pero digo yo, ya que el tio se curra un PoC, podia haberlo hecho sobre el bof explotable…, el que ha hecho es de sobreescribir la dirección de retorno con ceros (¿a que me recuerda eso?). En el PoC pone que es explotable, pero no sé yo. El que tiene pinta de ser explotable viendo el código fuente del samba es el del WINS, pero como por defecto WINS viene desactivado pues no tiene mucho interés.
Aparte de todo eso, he empezado un libro que me ha traido Papá Noel
. “Vida y Destino“, trata sobre la segunda guerra mundial (stalingrado), en concreto está escrito por un ruso que la vivió en primera linea como reportero de guerra. Tiene buena pinta.
Y eso es todo.
A ver si me animo a escribir/programar algo interesante de aquí a un par de meses.
Un saludo!.
Buenas.
Llevaba unos cuantos días intentando hacer un exploit para el CUPS, ya que había salido un advisory de que era explotable. Concretamente el advisory ponía esto:
—-
Alin Rad Pop (Secunia Research) discovered an off-by-one error in the
ippReadIO() function when handling Internet Printing Protocol (IPP)
tags that might allow to overwrite one byte on the stack.
A local attacker could send a specially crafted IPP request containing
“textWithLanguage” or “nameWithLanguage” tags, leading to a Denial of
Service or the execution of arbitrary code with the privileges of the
“lp” user. If CUPS is configured to allow network printing, this
vulnerability might be remotely exploitable.
—-
Bueno, pues lo estuve mirando bastante a fondo, y en el advisory se les olvidó comentar un pequeño detalle. Efectivamente el overflow (por llamarlo así) es de 1 byte, pero ese byte no se puede elegir, siempre es: 0×00. Más o menos lo que ocurre es que nosotros controlamos el valor ‘n’, y el CUPS hace: &buf[2+n] = 0×00. Claro, de ahí a decir que permite la ejecución de código arbitrario es mucho decir.
Aún así intenté hacer lo poco que se puede con tan cutre overflow, sobreescribir el ebp (o rbp en 64 bits). Pero claro, como no controlamos el byte (siempre es cero) con el que sobreescribimos, y el valor de ebp/rbp es aleatorio (ASLR), el resultado es que nunca restamos el mismo numero de bytes a ebp. Me explico: si ebp en la pila es 0×12345678, lo cambiamos a 0×12340078, es decir le restamos 0×5600. Pero si en la siguiente ejecución el ebp es 0×1234aa78, al convertirlo en 0×12340078 le restamos 0xaa00. Resumiendo, debido al ASLR nunca le restamos la misma cantidad de bytes. Y claro, la finalidad de todo esto es que el nuevo ebp apunte a una zona del stack que controlemos (controlamos 32000 bytes + o - en el stack => sizeof(buf)). Pues bien, para que eso ocurra dependemos del valor aleatorio de ese byte de ebp, si es mayor de 0×90 todo bien, si es menor tururú.
En fin, supongamos que conseguimos sobreescribir ebp/rbp para que apunte a nuestra zona de memoria. Llegará un momento en que debido a los leave-ret se ejecutará una dirección que elegimos nosotros, ¿y luego qué?. No podemos ejecutar la shellcode directamente porque para empezar no sabemos donde está (ASLR), y aunque lo supieramos no podriamos ejecutarla (PaX). Para complicarlo todo más tampoco podemos enlazar varios saltos seguidos, porque no controlamos el stack (el contenido a donde apunta esp) en el momento de nuestro salto. Y tampoco podemos modificar esp y luego saltar, porque el trozo que controlamos está varios miles de bytes por encima del valor de esp.
Mi conclusión final: no es explotable, al menos en un Linux/CPU actual. Lo que más me fastidia es que me hubiera ahorrado todo el trabajo para llegar a esa conclusión, si en el advisory hubiesen puesto que ese famoso byte SIEMPRE es 0×00.
¡Un saludo!.
Hoy he estado actualizando (por fin) algunas versiones de demonios del server, ya tocaba.
Como ya comenté en otro post, el wordpress del blog consume demasiados recursos. Como el server iba lentísimo tuve que actualizar a la última versión de MySQL5 (por cierto, fué actualizar y salir un DoS :-S), y a la última de PHP4. De momento parece que funciona bastante mejor, a ver si aguanta.
Por cierto, os recuerdo que existe una lista de correo sobre seguridad en eNYe Sec, ¿como no os apuntais?
. Están las instrucciones en la web, pero os las recuerdo: mandar un mail a majordomo@enye-sec.org con una línea en el cuerpo del mensaje (no en el subject) que ponga: ’subscribe seguridad’ (sin comillas). Tiene muy poco tráfico y está moderada para evitar SPAM.
Nada más, voy a seguir haciendo unas cosillas por aquí.
¡Saludos!.
Bueno, parece que esto va cogiendo forma
.
Después de andar retocando un poco el wordpress (y traduciendo), ya está medio decente, aunque hay un par de cosas que no me han gustado demasiado (por no decir nada). Lo primero; no sé como estará esto programado, pero tira de recursos del servidor que mete miedo, ¿hace falta tanta CPU para escribir en texto plano/semiplano?, increible :-S. Lo segundo, cuando te pones a escribir una noticia te aparece un menú muy chulo arriba a modo de editor de texto, siempre que estés en Windows…, si estás en Linux+Firefox no funciona, ¿que será que usa algo de la API de Windows o algún componente de Windows, o qué?
. En fin, habrá que seguir investigando a ver…
Cambiando de tema, he conseguido engañar a mi compañero Pepelux de eNYe Sec para que abra su blog
a 0×90 ha sido imposible jeje. Respecto a los proyectos ahora mismo no estoy trabajando en nada en concreto, estoy leyendo el texto sobre explotar bugs/overflows del kernel de la última phrack, que tiene muy buena pinta.
Y poco más que contar, así que cierro el post aquí.
Un saludo.
Pues nada, al final me he decidido y me he instalado un blog de estos (cosa curiosa esto de los blogs). Como no tenía npi sobre el tema me he instalado el wordpress éste, que parece que es el más conocido. Tengo que mirarme los advisories en bugtraq; me imagino que esto con tanta cosita petará por alguna parte (¿o no?).
En fin, ahora toca crear alguna categoria y esas cosas…, y escribir de vez en cuando. De momento voy a ver si convenzo/engaño a mis compañeros de enye-sec para que se creen su propio blog. Estaría bonito esto de que cada uno tuviera su blog, para ir contando en que proyecto esta trabajando cada uno y cosas asi (o para contar lo que nos dé la gana, que en eso se basa el mundo este de los bloggers, creo).
Bueno, de momento voy a ver si me entero un poco de como va todo este rollo del wordpress.
¡Un saludo!.