Archivo
Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte XVII
Anteriormente se ha visto como “enjaular” usuarios en una chrootjail (ver dicha entrada en este blog desde aquí) en donde cada usuario solamente contará con determinadas herramientas y en ningún caso podrá acceder de forma directa a otros directorios que se encuentren fuera de la extensión de la jaula. Así como en la entrada anterior se definió el mecanismo para crear dicho “cerrojo” en esta ocasión se indica como soltarlo y navegar libremente en la estructura real del servidor sin ningún tipo de restricción Aunque cabe aclarar que este es solamente una forma de hacerlo, en realidad es un estudio complejo y pueden existir muchas formas de conseguir el mismo objetivo, pero dependerá de forma directa de la creatividad del atacante.
Herramientas para Hacking en Entornos de Red – Hacking con SSH, Procesamiento Paralelo – Parte XVI
Anteriormente se ha visto el uso de PDSH para la ejecución de comandos de forma paralela sobre varios sistemas desde una única ejecución, se han hablado sobre las diferentes perspectivas y usos que se le puede dar a este tipo de herramientas y como realmente simplifican la vida de un administrador (o un hacker) a la hora de realizar operaciones comunes sobre múltiples sistemas, en esta ocasión se utilizará una herramienta que ha sido de las primeras en el área de procesamiento distribuido utilizando SSH, actualmente se encuentra en un estado bastante maduro y su desarrollo ha finalizado en el verano del 2003, no obstante se trata de una herramienta bastante robusta y sencilla que permite ejecutar justo lo que el administrador (o hacker) quiere hacer: Ejecutar comandos de forma paralela sobre un conjunto de sistemas, esta herramienta es FANOUT la cual se encuentra dividida en dos ejecutables llamados “fanout” y “fanterm”, estas dos herramientas permiten ejecutar cualquier comando UNIX/Linux sobre varias maquinas de forma paralela la diferencia entre estas herramientas esta en que la primera solamente ejecuta comandos no interactivos, mientras que la segunda permite crear una nueva consola sobre las maquinas indicadas y ejecutar comandos que requieren la interacción con el usuario.
Herramientas para Hacking en Entornos de Red – Hacking con SSH, Procesamiento Paralelo – Parte XV
Independiente del rol desempeñando por un administrador/responsable de sistemas o el de un hacker malicioso, en ocasiones es necesario tener control de forma distribuida o paralela sobre varias maquinas, teniendo la capacidad de ejecutar comandos que se repliquen a estas y que a su vez cada una retorne los resultados correspondientes al comando ejecutado. Esto es especialmente útil desde el punto de vista de un administrador de sistemas cuando un segmento de red con varias maquinas se han visto involucradas en un ataque y posiblemente ahora se encuentran comprometidas, utilizando una herramienta que le permita ejecutar comandos de forma paralela le permitirá tomar acciones y reaccionar de una forma mucho mas adecuada y rápida sobre todas las maquinas en un segmento de red. Por otro lado, desde la perspectiva de un atacante o pentester, es muy útil poder ejecutar comandos de forma paralela sobre un conjunto de maquinas comprometidas, esto le permitirá ejecutar con mayor rapidez y eficiencia las etapas correspondientes al proceso de post-explotación, que puede incluir acciones como establecimiento de puertas traseras o instalación de rootkits, realizar estas tareas de forma paralela sobre un conjunto de maquinas comprometidas facilita muchísimo las cosas.
Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte XII
Creando Redes VPN utilizando SSH
Con OpenSSH es posible establecer redes virtuales privadas de una forma fácil y segura, una característica que pocas veces se menciona, pero sin embargo es bastante útil en un escenario típico de entornos con firewalls restrictivos. El concepto de red VPN indica que cuando se establece una red privada, el sistema operativo monta una interfaz de red “virtual” que se encuentra completamente abstraída de la(s) interface(s) de red que existan en la maquina, no obstante cuenta con una dirección IP valida que puede efectuar una conexión con una maquina remota.
Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte XI
ChrootJail con OpenSSH
Cuando se presta un servicio como SSH a usuarios externos (o incluso internos), existen una gran cantidad de riesgos que pueden causar daños importantes desde el robo de información sensible hasta la perdida de control sobre maquinas pertenecientes al segmento de red (cuando un atacante logra comprometer una red interna por medio de ataques inside-out). Todos estos indeseables efectos pueden ser causados simplemente por tener usuarios que “pueden acceder a mas recursos de los deberían”, por ejemplo si un desarrollador necesita ingresar a un servidor SSH, cabe preguntarse que directorios y que comandos podrá ejecutar dicho usuario en la maquina remota, es justo aquí donde entra en juego el concepto de “chroot-jail” el cual consiste básicamente en la definición de comandos, privilegios y directorios a los que puede acceder cada usuario que ingrese al sistema por medio de SSH. Esta no es una tarea trivial y requiere esfuerzo en determinar “la caja de herramientas” que tendrá el usuario enjaulado y los recursos a los que podrá acceder, por este motivo aunque aquí se indique un procedimiento básico para la creación un entorno chrooted, es necesario un análisis previo para determinar “que puede” y “que no puede” hacer el usuario enjaulado..
Herramientas para Hacking en Entornos de Red – Hacking con SSH – Parte X
Después de profundizar en el servicio SSH y OpenSSH de las ultimas entradas de este blog, es la oportunidad de intentar enseñar algunas técnicas empleadas por hackers (al referirnos a hackers, no significa que este colectivo siempre se encuentre en la posición de atacante). Se trata de algunas técnicas empleadas para comprometer/defender este tipo de servicios.
Herramientas para Hacking en Entornos de Red – Conceptos Básicos y Avanzados de SSH – Parte IX
En las entradas anteriores he intentado indicar un poco el uso de las características mas interesantes de OpenSSH y el protocolo SSH, dichas características permiten establecer de forma segura diversos tipos de conexiones y mecanismos de autenticación, así como diversos “tips” que son frecuentemente tomados por los administradores como medidas de seguridad que permiten a un servicio SSH prestarse con unos niveles mínimos de confianza sobre redes no confiables como por ejemplo Internet. En esta ocasión se intentará, como ya se ha dicho, profundizar un poco más en la utilización de SSH.
Herramientas para Hacking en Entornos de Red – Conceptos Básicos y Avanzados de SSH – Parte VIII
Forwarding de Conexiones SSH
SSH permite redireccionar muchos tipos de información desde un punto hacia otro de forma segura utilizando un canal cifrado (como todas las comunicaciones con SSH) este mecanismo también es conocido como port-forwarding y permite a clientes y servidores SSH abrir puertos para enrutar el trafico hacia un algún destino en la red.
Este mecanismo es utilizado con frecuencia para evadir restricciones de firewall y filtros establecidos en la red, de esta manera es posible recibir y enviar paquetes desde destinos que no se encuentran permitidos por firewalls o proxies de manera explicita. En general, la analogía del “enrutador de llamadas” en una linea telefónica clásica puede ser un ejemplo perfecto de este mecanismo, donde una conexión de entrada es recibida por un intermediario que lo único que hace es enviar la llamada a su correspondiente destino, esto es justo lo que hace un túnel SSH (port-forwarding). Ahora bien existen 3 tipos de túneles distintos estos son: Local, Remoto y Dinámico, La diferencia entre estos tipos de túneles radica principalmente en la dirección de la comunicación.
Herramientas para Hacking en Entornos de Red – Conceptos Básicos y Avanzados de SSH – Parte VII
Utilización de SSH-AGENT y SSH-ADD
En la entrada anterior de esta serie, se ha visto como establecer un mecanismo de autenticación basado en claves publicas y privadas utilizando RSA como algoritmo de cifrado, sin embargo con OpenSSH este mecanismo puede ser optimizado gracias a las utilidades SSH-AGENT y SSH-ADD que permiten cargar en la maquina del cliente la clave para conectarse con el servidor para que de esta forma, no sea necesario ingresar una y otra vez la passphrase de la clave. SSH-AGENT permite cachear las credenciales de acceso para establecer una sesión con un servidor SSH, es un programa que almacena las claves privadas de un cliente para utilizar autenticación publica utilizando RSA o DSA. Por otro lado SSH-ADD es utilizado para adicionar identidades RSA o DSA al agente de autenticación.
Herramientas para Hacking en Entornos de Red – Conceptos Básicos y Avanzados de SSH – Parte VI
Continuando con esta serie de entradas correspondientes a OpenSSH/SSH en esta entrada se tratarán otras características interesantes en OpenSSH relacionadas con las medidas de seguridad que se pueden llevar a cabo, túneles y conceptos relacionados con generación de claves entre otras cosas.
Herramientas para Hacking en Entornos de Red – Conceptos Básicos y Avanzados de SSH – Parte V
En ocasiones un administrador de sistemas tiene que realizar actividades de mantenimiento o acceso a información que se encuentra ubicada en servidores remotos, antiguamente, como ya se ha comentado en post anteriores, para el acceso a maquinas remotas se solía implementar soluciones como Telnet, sin embargo debido a las vulnerabilidades encontradas en dicha herramienta, rápidamente los administradores de sistemas optarón por un enfoque distinto donde la seguridad en el canal de comunicación y la transmisión de datos tuviera unos mínimos de seguridad, con esta idea, surgió SSH (Secure Shell).
Herramientas para Hacking en Entornos de Red – Tipos de Conexiones Avanzadas con Socat (SSL, Sockets, Proxy)- Parte IV
En las entradas anteriores se ha indicado el uso de Socat con algunos ejemplos básicos que permiten comprender su funcionamiento de una forma sencilla y practica, sin embargo, Socat es una herramienta bastante sofisticada para diferentes tareas en un entorno de red, por este motivo se van a dedicar unas cuantas entradas enfocadas en Socat y en sus funcionalidades un poco más avanzadas, con esto se definirán las bases de un próximo post que es bastante interesante, será sobre como utilizar Socat y otras herramientas para evadir IDS, Firewalls y proxys en un entorno de red restrictivo, como frecuentemente es un entorno de red empresarial, donde los empleados tienen fuertes restricciones de conectividad a determinados servicios y sitios en internet, utilizando Socat y siendo un poco creativos se pueden conseguir unos resultados muy interesantes.
Herramientas para Hacking en entornos de Red – Conectividad con Socat – Parte III
Socat es conocido también como Netcat++ debido a que es una herramienta que extiende de manera significativa las potencialidades que proporciona Netcat. Permite realizar cosas (especialmente lo relacionado con diferentes tipos de conexiones) que con Netcat no es posible realizar por si solo, por otro lado es una herramienta mucho mas moderna y responde mejor a las necesidades de un hacker y/o administrador de red utilizando nuevas tecnologías en el campo de la conectividad y protocolos de comunicación. A diferencia de Netcat, esta herramienta cuenta con muchísimas mas opciones y su uso es un poco mas complejo, se necesitan conocimientos de redes de datos y conocer los protocolos de comunicación que se pueden utilizar con Socat para sacarle el máximo provecho a esta herramienta. Como ya se ha dicho, se trata de una herramienta un poco mas completa y compleja, por este motivo, esta será la primera entrada donde se planten las bases del uso de Socat y algunos conceptos teóricos necesarios para saltar a la practica y utilizar de forma adecuada las potencialidades que esta estupenda herramienta pone a nuestra disposición.
Herramientas para Hacking en entornos de Red – Netcat– Parte II
Una estupenda herramienta, conocida como la “Navaja suiza de los hackers” gracias a su versatilidad a la hora de leer y escribir datos sobre conexiones de red usando protocolo TCP o UDP, tal como se indica en el sitio oficial “Netcat es una herramienta que permite la depuración y exploración de redes ya que permite crear casi cualquier tipo de conexiones entre dos o varios nodos de un segmento de red” puede tratarse de una red local LAN o en una red de amplia longitud como Internet. Netcat es una herramienta que ha cesado su desarrollo en el año 2004 y que cumple perfectamente con los objetivos planteados en su diseño original, es decir, brindar conexiones entrantes y salientes con TCP o UDP desde y hacia cualquier puerto. Por otro lado Netcat permite de una forma bastante primitiva, realizar escaneos de puertos, sin embargo, no esta pensada para ejecutar técnicas de evasión de sistemas de seguridad como IDS/IPS por esta razón (y muchas otras), es mucho mejor utilizar Nmap para este cometido. Ha sido una de las primeras herramientas que permitía crear túneles de conexiones con la capacidad de indicar varios parámetros de red, aunque actualmente existen utilidades que permiten realizar lo mismo de una forma un poco mas optima y segura utilizando mecanismos de cifrado entre otras cosas (Socat, que se verá en la próxima entrada) es bastante útil para crear puertas traseras livianas e iniciar servicios en la maquina local en espera de cualquier tipo de conexión remota para intercambio de datos. Sin lugar a dudas es una herramienta que cualquier hacker debe conocer y dominar.
Herramientas para Hacking en entornos de Red – Telnet – Parte I
Telnet, Netcat, Socat… quien involucrado en el mundo de la seguridad informática nunca ha escuchado y/o usado estas herramientas? Cuantos sistemas se han visto vulnerados en el pasado involucrando alguna de ellas? Probablemente hoy en día se les recuerda con añoranza o como protocolos obsoletos y que ya no representan ninguna amenaza (en el caso de Telnet especialmente ya que actualmente ha sido prácticamente reemplazado por completo por SSH) sin embargo, dada su versatilidad y facilidad de uso aun son utilizadas por muchos hackers para distintos tipos de tareas relacionadas con el flujo de paquetes en una red de ordenadores, sin ir muy lejos, algunas organizaciones aun utilizan Telnet para conexiones remotas desde sus redes corporativas internas (aunque supongo que serán realmente pocas las organizaciones que lo utilizan).
Usando Preprocessors en Snort – Parte VI – Preprocessor SSL/TLS y ARP Spoof
PREPROCESSOR SSLPP
Este modulo decodifica el trafico SSL y TLS, solamente sobre una conexión plenamente establecida, es decir, por defecto este preprocessor intentará determinar si una conexión dada ha sido completamente establecida con un “Handshake”, una vez inspecciona que el trafico se encuentra cifrado, no inspecciona los datos sobre la conexión establecida. Para realizar esto, el preprocessor inspecciona el trafico en ambos lados (cliente y servidor) si uno de los dos lados responde con indicios de que algo no ha ido bien en el establecimiento del handshake la sesión no es marcada como encriptada, esto le permitirá a Snort verificar dos cosas, en primer lugar que el ultimo paquete handshake enviado por el cliente no ha sido creado para evadir las reglas de Snort y por otro lado que el trafico ha sido legítimamente cifrado.
