Facilitador: Ing.
Marco Antonio Isidro Abril Materia: Sistemas Operativos Tema: Vulnerabilidades/Test de penetracin/Zero Day/Comandos/Script/Cookies Alumna: Beatriz Villeda Guerrero 3er Semestre Ing. En Sistemas Computacionales
Sistemas Operativos
Pgina 1
Test de penetracin
Test de Penetracin, tambin llamado a veces hacking tico es una evaluacin activa de las medidas de seguridad de la informacin. En los entornos de red complejos actuales, la exposicin potencial al riesgo es cada vez mayor y securizar los sistemas se convierten en un autntico reto. A travs del Test de Penetracin es posible detectar el nivel de Seguridad Interna y Externa de los Sistemas de Informacin de la empresa, determinando el grado de acceso que tendra un atacante con intenciones maliciosas. Adems, el servicio chequea las vulnerabilidades que pueden ser vistas y explotadas por individuos no autorizados, crackers. Los servicios de Test de Penetracin permiten:
Evaluar vulnerabilidades por medio de la identificacin de debilidades de configuracin que puedan ser explotadas. Analizar y categorizar las debilidades explotables basadas en el impacto potencial y posibilidad de ocurrencia. Proveer recomendaciones priorizadas para mitigar y eliminar las debilidades.
El Test de Penetracin est dirigido a la bsqueda de agujeros de seguridad de forma focalizada en uno o varios recursos crticos, como puede ser el firewall o el servidor Web. Este ser el espacio de recopilacin de todos los Post relacionados con los entornos, retos, pruebas, wargames (serie de pruebas con simulaciones de vulnerabilidades web, pruebas de ingeniera inversa, y criptografa, as como problemas de programacin y algoritmia), CTF y documentacin de la temtica Test de Penetracin. La finalidad ser desarrollar los objetivos propuestos por los desarrolladores de las pruebas.
Que es: Zero Day
(Es un ataque contra una aplicacin o sistema que tiene como objetivo la ejecucin de cdigo malicioso gracias al conocimiento de vulnerabilidades que, por lo general, son desconocidas para la gente y el fabricante del producto). Estos ataques reflejan las peores pesadillas de los Webmsaters, ya que muchas
Sistemas Operativos
Pgina 2
veces no hay una proteccin privada para las webs que les salve de ste tipo de ataques. Los atacantes del Zero-Day descubren vulnerabilidades que slo ellos conocen y que logran regatear todas las protecciones antivirus de puertos y redes.
Como explotar vulnerabilidades
Exploit: Exploit es un programa informtico malicioso, o parte del programa, que trata de forzar alguna deficiencia o vulnerabilidad de otro programa (llamadas bugs). El fin del Exploit puede ser la destruccin o inhabilitacin del sistema atacado, aunque normalmente se trata de violar las medidas de seguridad para poder acceder al mismo de forma no autorizada y emplearlo en beneficio propio o como origen de otros ataques a terceros. Un "exploit" es usado normalmente para explotar una vulnerabilidad en un sistema y acceder a l, lo que es llamado como "rootear" tener privilegios de root (administrador). Los exploits se pueden clasificar segn las categoras de vulnerabilidades utilizadas: 1.-De desbordamiento de buffer. un desbordamiento de buffer (del ingls buffer overflow o buffer overrun) es un error de software que se produce cuando se copia una cantidad de datos sobre un rea que no es lo suficientemente grande para contenerlos, sobrescribiendo de esta manera otras zonas de memoria. Como consecuencia, se producir una excepcin del acceso a memoria seguido de la terminacin del programa o, si se trata de un usuario obrando con malas intenciones, la explotacin de una vulnerabilidad o agujero de seguridad. En algunas ocasiones eso puede suponer la posibilidad de alterar el flujo del programa pudiendo hacer que ste realice operaciones no previstas. Esto es posible dado que en las arquitecturas comunes de computadoras, la memoria no tiene separacin entre la dedicada a datos y a programa.
Sistemas Operativos
Pgina 3
Si el programa que tiene el error en cuestin tiene privilegios especiales se convierte adems en un fallo de seguridad. El cdigo copiado especialmente preparado para obtener los privilegios del programa atacado se llama shellcode. 2.-De condicin de carrera (race condition). Una condicin de carrera describe el error que se produce en programas o circuitos lgicos cuando no han sido diseados adecuadamente para su ejecucin simultnea con otros. Un ejemplo tpico es el interbloqueo que se produce cuando dos procesos estn esperando a que el otro realice una accin. Como los dos estn esperando, ninguno llega a realizar la accin que el otro espera. Este tipo de errores de programacin pueden ser aprovechados por exploits locales para vulnerar los sistemas. 3.De error de formato de cadena (format string bugs).
4.-De Cross Site Scripting (XSS). XSS es un ataque basado en explotar vulnerabilidades del sistema de validacin de HTML incrustado. Su nombre original "Cross Site Scripting", y renombrado XSS para que no sea confundido con las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar cdigo de "scripting", como VBScript o javascript, en el contexto de otro dominio. 5.De Inyeccin SQL. Inyeccin SQL es una vulnerabilidad informtica en el nivel de la validacin de las entradas a la base de datos de una aplicacin. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con cdigo SQL. Es, de hecho, un error de una clase ms general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programacin o de script que est incrustado dentro de otro. Una inyeccin SQL sucede cuando se inserta o "inyecta" un cdigo SQL "invasor" dentro de otro cdigo SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el cdigo "invasor" en la base de datos. La inyeccin SQL es un problema de seguridad informtica que debe ser tomado en cuenta por el programador para prevenirlo. Un programa hecho con descuido, displicencia, o con ignorancia sobre el problema, podr ser vulnerable y la seguridad del sistema puede quedar ciertamente comprometida.
Sistemas Operativos Pgina 4
Esto puede suceder tanto en programas corriendo en computadores de escritorio, como en pginas Web, ya que stas pueden funcionar mediante programas ejecutndose en el servidor que las aloja. La vulnerabilidad puede ocurrir cuando un programa "arma" descuidadamente una sentencia SQL, con parmetros dados por el usuario, para luego hacer una consulta a una base de datos. Dentro de los parmetros dados por el usuario podra venir el cdigo SQL inyectado. Al ejecutarse esa consulta por la base de datos, el cdigo SQL inyectado tambin se ejecutar y podra hacer un sinnmero de cosas, como insertar registros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar cdigo malicioso en el computador. 6.-De Inyeccin de Caracteres (CRLF).
7.De denegacin del servicio un ataque de denegacin de servicio, tambin llamado ataque DoS (de las siglas en ingls Denial of Service), es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea inaccesible a los usuarios legtimos. Normalmente provoca la prdida de la conectividad de la red por el consumo del ancho de banda de la red de la vctima o sobrecarga de los recursos computacionales del sistema de la vctima. Se genera mediante la saturacin de los puertos con flujo de informacin, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice "denegacin", pues hace que el servidor no de abasto a la cantidad de usuarios. Esta tcnica es usada por los llamados crackers para dejar fuera de servicio a servidores objetivo. El llamado DDoS (siglas en ingls de Distributed Denial of Service, denegacin de servicio distribuida) es una ampliacin del ataque DoS, se efecta con la instalacin de varios agentes remotos en muchas computadoras que pueden estar localizadas en diferentes puntos. El invasor consigue coordinar esos agentes para as, de forma masiva, amplificar el volumen del flood o saturacin de informacin, pudiendo darse casos de un ataque de cientos o millares de computadoras dirigido a una mquina o red objetivo. Esta tcnica se ha revelado como una de las ms eficaces y sencillas a la hora de colapsar servidores, la tecnologa distribuida ha ido sofisticndose hasta el punto de otorgar poder de causar daos serios a
Sistemas Operativos Pgina 5
personas
con
escaso
conocimiento
tcnico.
En ocasiones, esta herramienta ha sido utilizada como un notable mtodo para comprobar la capacidad de trfico que un ordenador puede soportar sin volverse inestable y perjudicar los servicios que desempea. Un administrador de redes puede as conocer la capacidad real de cada mquina. 8.-De Inyeccin mltiple HTML (Multiple HTML Injection).
Historial de comandos en la terminal de GNU/LINU
La Terminal es capaz de almacenar hasta 500 comandos antiguos. Para ver todos los comandos que hemos insertado anteriormente tan solo tenemos que usar el comando: history Si en vez de ver todos los resultados quisiramos ver los 10 ltimos por ejemplo, tendramos que agregarle el numero seguido del comando: history 10 Cuando los comandos que ejecutamos en la Terminal son cortos como ls, cd, rm, etc no tendremos la necesidad de buscar un comando anterior en nuestraTerminal pero si la linea que necesitamos volver a ejecutar es por ejemplo cp -r /home/forat/img/donkey/pics/isla.jpg /home/www/web/info/pics/ nos puede hacer la tarea mas sencilla tan solo llamando al nmero con el que nos identifica el comando history con un signo ! y seguido del nmero de lnea: !401 /lost+found Aqu se va la informacin y los procesos que se estaban ejecutando cuando el sistema se cae. /mnt Directorio para poder montar sistemas de ficheros Linux.
/proc Al acceder a este directorio, se consigue obtener informacin de los procesos que se ejecutan en el sistema.
Sistemas Operativos
Pgina 6
/tmp Contiene ficheros temporales, resultado de la necesidad que tienen muchos programas del sistema de general informacin temporal y posteriormente guardarla en dichos ficheros. /usr Es uno de los directorios ms importantes del sistema puesto que contiene los programas de uso comn para todos los usuarios. Su estructura suele ser similar a la siguiente.
/tmp Aqu se guardan los archivos temporales que crean los programas que son ejecutados.
Comandos para administrar un servidor Linux Comando Uptime Muestra el tiempo que ha transcurrido desde que el sistema se abri. uptime Adems tambin muestra los usuarios que estn conectados al equipo en ese instante y las medias de carga en los ltimos 1, 5 y 15 minutos.
Como robar cookies en la red
Directa: Este tipo de XSS es el que normalmente es censurado; as que es muy poco comn que puedas usar tags como <script> o <iframe> Indirecta: Esta es un tipo de vulnerabilidad, muy comn y muy poco explotada. Consiste en modificar valores que la aplicacin web utiliza para pasar variables entre dos pginas, sin usar sesiones. Indirecta Sucede cuando hay un mensaje o una ruta en la URL del navegador o en una cookie. Para saber el contenido de una cookie, sin usar ningn tipo de iecv o addin para tu navegador, puedes usar el siguiente script de jasildbg. Slo colcalo en la barra de direcciones, y presiona Enter. javascript:for(var g in document.cookie.split(;))void(prompt(Valor de cookie +document.cookie.split(;)[g].split(=)[0],document.cookie.split(;)[g].split(= )[1]));alert (Cookies:\n+document.cookie.replace(/;/,\r\n));
Sistemas Operativos
Pgina 7
Una vez dentro se puede modificar la cookie a tu antojo. Si pones cancelar la cookie se borrar. Qu podemos ver con este ejemplo? Que podemos meter comandos javascript solo modificando una URL. Usando FrameSets: Regresemos al ejemplo del frameset, que segn la pgina que coloques te crea un frame a esa pgina. Qu pasara si pones en esa URL? javascript:while(1)alert(Te estoy inundando de mensajes!); Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dir, bueno, es del mismo dominio, no puede ser nada malo.. y de resultado tendr un loop infinito. Hasta ah llegan los newbies. Pero vamos a ponernos en la piel de un experto. Se trata de colocar un script que tome tu cookie, y mande un mp al administrador, o incluso, que borre todos los mensajes de un foro. El robo de cookies es lo ms bsico, y tiene como objetivo robar la cookie. Y eso de qu sirve? Tengo el PHPSESSID, y si el usuario cierra sesin no sirve de nada. Cierto, pero con el uso de la librera cURL un usuario malintencionado, podra al recibir tu cookie, entrar a la pgina, y dejarla en cach, para que el atacante cuando quiera, pueda entrar como t, sin siquiera necesitar tu contrasea. Otro uso comn para estas vulnerabilidades es lograr hacer phishing; o colocar un exploit. Quiere ello decir que t ves la barra de direcciones, y ves que ests en una pgina, pero realmente ests en otra. Introduces tu contrasea y la fastidiaste. Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo. Esas pginas web son vulnerables a ataques XSS indirectos. O sea que un intruso puede colocar una imagen con enlace al sitio malicioso, y se ejecuta, sin que el usuario lo sepa. Mensaje personalizado: La tcnica slo funciona con imgenes: error.php?error=Usuario%20Invalido Esa pgina es vulnerable a XSS indirecto. Un <script> que cree otra sesin bajo otro usuario y tu sesin actual la mande al atacante (lo explicado de cURL ms arriba), puede causar estragos.
Sistemas Operativos
Pgina 8
Este cdigo (muy peligroso) borra todo el contenido de la pgina en cuestin, y escribe otra cosa: <script> document.documentElement.innerHTML=NADA; </script> Directa: Funciona localizando puntos dbiles en la programacin de los filtros. As que si, por ejemplo, logran quitar los <iframe>, <script>, el atacante siempre puede poner un <div> malicioso, o incluso un <u> o <s>. Tags que casi siempre estn permitidos. Ejemplos de Scripts donde no son comunes de encontrar <BR SIZE=&{alert(XSS)}> <FK STYLE=behavior: url(http://yoursite/xss.htc);> <DIV STYLE=background-image: url(javascript:alert(XSS))> Usar estilos es increblemente fcil, y lo malo es que muchos filtros son vulnerables. Se puede crear un DIV con background-image: url(javascript:eval(this.fu)) como estilo y aadir al DIV un campo llamado fu que contenga el cdigo a ejecutar, como por ejemplo alert(Hola): <div fu=alert(Hola); STYLE=background-image: url(javascript:eval(this.fu))> Ajax: ste es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo de vulnerabilidad para introducir un objeto XMLHTTP y usarlo para enviar contenido POST, GET, sin conocimiento del usuario. El siguiente script de ejemplo obtiene el valor de las cabeceras de autenticacin de un sistema basado en Autenticacin Bsica (Basic Auth). Slo falta decodificarlo, pero es ms fcil mandarlo codificado al registro de contraseas. La codificacin es base64.
Sistemas Operativos
Pgina 9
Glosario:
Hacker: es una persona con amplios conocimientos informticos que usa sus conocimientos como reto intelectual. Cracker: es una persona con amplios conocimientos informticos, que usa sus conocimientos para cometer delitos informticos (robo de datos,robo de passwords) Puerta trasera: agujeros de seguridad que dejan los creadores de un sistema operativo para poder romer la seguridad del sistema a travs de estos. DoS: Denial of Service, el ataque DoS consiste en tratar de colapsar un sistema informtico mediante peticiones errneas al sistema, este al tratar de dar la respuesta de error a todas ellas termina bloquendose y es en ese momento donde el atancante tratar de acceder al mismo para tomar el control de este. DDoS: Distributed Denial of Service, mucho ms potente que el DoS que est basado en el mismo ataque pero desde mltiples orgenes. Virus: fragmento de cdigo que reside en un ejecutable. Cuando se ejecuta se expande a travs de ms ejecutables. Troyano: fragmento de cdigo que reside en los programas tiles y que al ejecutarse abren puertas traseras. Gusano: programa que al ejecutarse, realizar copias de s mismo y las distribuye a travs de la red a la que est conectado el ordenador. Xss: Ataque basado en la explotacin de vulnerabilidades del sistema de validacin de HTML incrustado. Su nombre, del ingls Cross Site Scripting, y renombrado XSS para que no sea confundido con las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar cdigo de scripting, como VBScript o javascript, en el contexto de otro dominio.
Sistemas Operativos
Pgina 10