Archivo
WEB HACKING – Atacando DOJO Hackme Casino – Sesiones inseguras en Ruby On Rails – Parte XXIX
Cuando se utiliza una plataforma como Ruby OnRails, es conveniente tener presente que hay ciertas “buenas practicas” que se deben seguir para desarrollar de forma segura, muchas de esas practicas, como prácticamente todo en el mundo de la seguridad informática, son simplemente de sentido común, otras resultan un poco más complicadas de entender y de cumplir. Sin embargo, en el caso de las sesiones que se pueden manejar en Ruby OnRails, es importante para un desarrollador, entender, cumplir y comprobar que se siguen las pautas adecuadas para tener la información segura y el sistema funcionando como corresponde. La razón por la que es importante prestarle atención a las sesiones en Ruby OnRails, radica en que existen varios métodos de almacenamiento que pueden ser implementados y que si no somos lo suficientemente prudentes, nos podemos encontrar con que la información que tenemos almacenada en dichas sesiones puede ser fácilmente comprometida por un atacante, que es justo lo que ocurre con HackMe Casino. Antes de entrar en la parte practica de está publicación, intentaré explicar un poco, como es el funcionamiento de las Sesiones en Ruby OnRails (que es más flexible que en otros lenguajes de programación tradicionales como JSP o PHP)
WEB HACKING – Atacando DOJO Hacme Casino – Controladores inseguros en Ruby OnRails – Parte XXVIII
HacMe Casino es una aplicación deliberadamente vulnerable que se encuentra escrita utilizando el framework Ruby On Rails, hasta este punto se han mencionado algunas vulnerabilidades que se suelen encontrar en muchas aplicaciones web, independiente de la plataforma utilizada, tales como SQL Injections, XSS Stored/Reflected, CSRF, Session Fixation, etc. Sin embargo, para un atacante siempre resulta útil conocer como funciona la plataforma que es utilizada para servir el sitio web, tanto el lenguaje de programación como el servidor, como se ha mencionado en reiteradas ocasiones, la información es la clave, entre más información se cuente sobre un objetivo, es mucho más probable realizar ataques exitosos.
WEB HACKING – Clasificación de Ataques web – Parte XVII
Los vectores de ataque más utilizados y mejor aprovechados por atacantes en redes como internet, en un gran porcentaje están relacionados con aplicaciones y servidores web vulnerables. Una de las principales razones de esto es lo fácil que es para un atacante acceder a una potencial víctima desde cualquier ordenador conectado y utilizando herramientas tan comunes como un navegador web, además de que en muchas ocasiones por múltiples razones, se le da muy poca importancia a la seguridad de las aplicaciones y esto al final, trae consecuencias muy negativas que suelen traducirse en servidores hackeados. Todo esto no es un secreto para nadie, sin embargo seguimos desarrollando aplicaciones inseguras y por que? Pueden haber muchas razones, sin embargo esto se debe principal, por desconocimiento y falta de interés o motivación para hacer las cosas bien y al hacer las cosas bien me refiero, a que por lo menos, antes de liberar una aplicación en internet que es critica, realizar al menos, una auditoria de seguridad en profundidad.
Manipulación de Paquetes utilizando SCAPY – Escaneos, Ataques y Administración de redes – Parte VI
Estamos acostumbrados a ejecutar ataques de reconocimiento y escaneo de puertos desde herramientas como Nmap de una forma casi automática, hasta el punto en el que muchas ocasiones se suele caer en el “olvido” de los tipos de escaneo que pueden llevarse a cabo con dichas herramientas y en que circunstancias es apropiado su uso. Los tipos de escaneos que pueden llevarse a cabo desde Nmap, también se pueden llevar a cabo desde Scapy simplemente manipulando los campos de los paquetes que se envían a los objetivos, la ventaja de tener este conocimiento sobre el uso clásico de Nmap, es que como se ha comentado desde la primera publicación de esta serie, con Scapy tenemos las respuestas de los objetivos en estado “crudo” lo que quiere decir que el trabajo interpretativo se deja plenamente al programador, mientras que con Nmap, solamente se obtienen estados deterministas que son Abierto|Cerrado|Filtrado y que en muchas ocasiones resultan confusos y no dan demasiada información de lo que realmente ha sucedido con un puerto determinado.
WEB HACKING – Configurando DOJO Web Security como Hacklab – Parte III
Todas las aplicaciones web tienen recursos que deben utilizar para brindar funcionalidades consistentes a sus usuarios, dichos recursos pueden ser elementos tan simples como imágenes, hojas de estilos CSS, páginas HTML estáticas, documentos de texto y casi cualquier tipo de elemento que contenga información. En muchas ocasiones el volumen de información manejada por una aplicación puede ser tan grande que el mantenimiento y administración de estos recursos puede ser muy complejo y evidentemente, propenso a errores, es en ese momento donde pueden ocurrir fugas de información privada o sensitiva que no debería estar expuesta al publico por el contenido de la misma, así como también pueden dejarse fallos sobre la configuración del servidor web o la aplicación. En este punto, un hacker o pentester “entra en escena” recolectando y analizando toda esta información. Se trata del primer paso que siempre se debe realizar, recolectar información del sistema o aplicación objetivo y “encajar” las piezas, como si tratara de un puzzle, cada pieza de información permite tener una imagen global del funcionamiento de la aplicación y por consiguiente, de los fallos que esta puede tener.
Manipulación de Paquetes utilizando SCAPY – OS Fingerprint pasivo con p0f y Scapy – Parte V
En primer lugar, existe una gran variedad de opciones para la manipulación de conjuntos de paquetes en Scapy que no se han comentado en las publicaciones anteriores, especialmente relacionadas con las funciones de Sniffing e importación/exportación de paquetes. Con la función sniff pueden realizarse ataques pasivos de recolección de paquetes con un nivel de personalización bastante óptimo, de una forma muy similar a lo que actualmente puede conseguirse con herramientas como wireshark o tcpdump, dado que es posible cargar un fichero PCAP capturado previamente, establecer filtros con la misma sintaxis que se utiliza en TCPDump, restringir el número de paquetes que el ataque reconocimiento podrá recolectar, etc. El uso de estas características es simple, tal y como se puede ver a continuación:
Manipulación de Paquetes utilizando SCAPY – Análisis de respuestas a paquetes enviados desde Scapy – Parte IV
Una de las mejores formas de entender un sistema o una arquitectura de servicios, es simplemente enviando paquetes (correctamente formados y mal formados) para posteriormente analizar los paquetes de respuestas. En concreto resulta de especial interés saber cuales son los mensajes que el servicio ha enviado como respuesta a un petición previa, así como también buscar cualquier otra información que revele más sobre el emisor de dichos paquetes, en esencia el análisis de paquetes y su posterior interpretación es el primer paso para realizar procedimientos de descubrimiento y recolección de información en entornos de red, esto es posible conseguirlo en Scapy gracias a las funciones explicadas en la publicación anterior, tales como send, sendp, sr, srp, sr1, etc.
Manipulación de Paquetes utilizando SCAPY – Funciones en Scapy y tratamiento de paquetes – Parte III
Seguramente es una de las partes más entretenidas y útiles en Scapy, se trata la lectura de ficheros de captura y en el envío de paquetes creados desde Scapy, para esto, existen algunas funciones que consiguen dichos objetivos, en primer lugar la función rdpcap permite leer ficheros de captura existentes y volcar los paquetes en una variable, para que posteriormente esta pueda ser tratada con las mismas funciones disponibles para el tratamiento de paquetes. Su uso es muy simple:
| >>> readed=rdpcap(“/home/jdaanial/Escritorio/pcap_captured.cap”)>>> readed<pcap_captured.cap: TCP:261 UDP:28 ICMP:0 Other:0> |
Manipulación de Paquetes utilizando SCAPY – Conceptos Básicos sobre Scapy – Parte II
Como se ha mencionado anteriormente, una de las características más llamativas en Scapy es su alto nivel de personalización y la capacidad de conformar fácilmente conjuntos de paquetes que pueden ser enviados en cadena a un destino(s) determinado(s). Siguiendo por esa linea, se encuentran algunas funciones y opciones de uso que pueden ser bastante cómodas y útiles a la hora de manejar conjuntos de paquetes en Scapy.
En primer lugar, los conjuntos de paquetes en Scapy pueden ser creados y almacenados de la siguiente forma:
|
>>>layer = Ether()/IP(src=”192.168.1.33″, dst=”192.168.1.1″)/TCP(sport=22,dport=22) |
Manipulación de Paquetes utilizando SCAPY – Conceptos Básicos sobre Scapy – Parte I
Scapy es una potente librería escrita y soportada en Python la cual permite la creación, manipulación e inyección de paquetes de un entorno de red, sin embargo esta definición se queda corta a la hora de hablar de Scapy, dado que las funcionalidades que soporta le hacen una librería ideal para escribir aplicaciones que permitan realizar diferentes tareas tales como Fingerprinting, Discovering, Enumeration, entre otras. Similar a lo que hace Nmap? Si, con la diferencia de que con esta librería se tiene muchísimo más control sobre los paquetes enviados y recibidos. Con Scapy se pueden crear, capturar, manipular y analizar una gran cantidad de paquetes con varios protocolos de red existentes.
Intentando evadir mecanismos y restricciones de Seguridad – Burlando reglas de detección y alarmas de Snort utilizando W3AF – Parte IX
En esta ocasión indicaré el uso de W3AF para evadir sistemas de detección de intrusos y sistemas de prevención de intrusos (IDS/IPS), en este caso concreto, se intentará indicar las pruebas que se han realizado contra Snort ejecutándose como NIDS. Para esto se utilizan técnicas de evasión en W3AF (en algunas ocasiones accediendo y modificando directamente el código del proyecto que se encuentra escrito en Python). Estas técnicas ejecutan procedimientos de evasión partiendo de la base que muchos de los IDS/IPS del mercado detectan amenazas en función a determinadas “firmas” o patrones de comportamiento que son identificados como anómalos o maliciosos. Los “tips” de evasión presentados aquí lo que realmente hacen es modificar las peticiones realizadas a un servidor web para que dichas peticiones no se ajusten a los patrones que esperan los IDS/IPS.
Intentando evadir mecanismos y restricciones de Seguridad – Creando una puerta trasera y accediendo a información de usuarios usando un DEB malicioso – Parte IV
En la entrada anterior se ha indicado como crear un instalador DEB malicioso utilizando msfpayload, lo que ha permitido obtener una consola en la mÁquina remota que se deseaba atacar.
Partiendo de la publicación anterior, se intentará crear un programa simple que acceda a la información de todos los usuarios del sistema y dicha información se intentará enviar a una máquina remota por medio de un socket. A continuación se indica paso a paso, el uso de algunas librerías propias en C/C++ (en concreto, contenidas en el paquete libc y build-essencial) y como se ha codificado esta pequeña puerta trasera. El objetivo de lo que se indica a continuación, es solamente para fines ilustrativos, no se tienen en cuenta factores de seguridad vitales en la máquina atacada tales como firewalls, AV y/o IDS, de esta forma, un hacker con conocimientos medios en programación puede darse una idea de la cantidad de operaciones que puede llevar a cabo en una máquina objetivo con un vector de ataque como este.
Preservando el Anonimato y Extendiendo su Uso – Freenet API, Desarrollo de plugins en Freenet – Parte XLI
Anteriormente se ha mencionado la posibilidad de crear aplicaciones en I2P utilizando librerías como Streaming Library y BOB, desde FreeNet también es posible crear aplicaciones (en este caso concreto, Plugins) que permitan ejecutar diversas operaciones utilizando FreeNet como pasarela, estos Plugins como se ha enseñado anteriormente, pueden contener código que permita interactuar directamente con el nodo de FreeNet o interactuar con otros nodos disponibles en la darknet. En caso de FreeNet, el uso de las librerias disponibles es bastante similar a I2P, ya que cuenta con una API de Java bastante completa, aunque desafortunadamente con muy poca documentación disponible, por lo tanto es necesario investigar por cuenta propia, estudiando el código disponible en algunos de los plugins existentes, tales como Thaw, FreeMail o jSite. En este punto, la intensión de esta publicación, es permitirle al lector un punto de inicio en el desarrollo de plugins en FreeNet sin profundizar demasiado, (esto se hará en proximas publicaciones de este blog).
Preservando el Anonimato y Extendiendo su Uso – Relay y Bridges en TOR – Parte V
TOR es un proyecto que además de brindar la posibilidad a sus usuarios de proteger sus datos personales, también tiene un enfoque social y colaborativo, cada usuario que participa en la red de TOR libremente puede configurar un relay en su servicio de TOR y actuar como un nodo de salida para otros usuarios que también navegan de forma anónima, la razón de esto es precisamente para asegurar de una forma más eficiente el anonimato de los usuarios, ya que entre mas nodos de salida existan, será mucho más difícil determinar el origen de las peticiones de los usuarios, allí radica el valor de esta red y es una forma de contribuir con su desarrollo, además de esto, también ayuda a mejorar la experiencia de los usuarios, principalmente porque entre mas nodos de salida existan, mayor será el ancho de banda y evidentemente el rendimiento será mucho mayor.
Preservando el Anonimato y Extendiendo su Uso – Conceptos Esenciales de TOR – Parte I
Hace algunas semanas en este blog se registro una entrada sobre el uso básico de Tor, en el que solamente se indicaba el procedimiento de instalación más sencillo y como otras herramientas como ProxyChains, TorTunnel y Vidalia. En esta ocasión se intentará ir “un poco más allá” e intentar explicar algunas características avanzadas de TOR para garantizar el anonimato de las peticiones realizadas sobre redes tipo TCP y las medidas que se deben tener presentes para no permitir “fugas” de paquetes de forma directa contra el destino sin pasar por la red TOR.
