Archivo

Archivo para la Categoría "Programacion"

Hacking con Python Parte 2 – Reconocimiento de máquinas en el entorno de red

febrero 11, 2014 1 comentario

Automatización del uso del comando PING para la detección de máquinas activas en el segmento de red.

PingScan.py: https://github.com/Adastra-thw/pyHacks/blob/master/PingScan.py

Repositorio GIT de la serie:

https://github.com/Adastra-thw/pyHacks.git


Make a Donation Button

Explotación de Software Parte 1 – Conceptos básicos arquitectura de Ordenadores

febrero 6, 2014 1 comentario

Vídeo introductorio sobre conceptos y elementos básicos en la arquitectura de ordenadores.


Make a Donation Button

Hacking con Python Parte 1 – Banner Grabbing

febrero 4, 2014 1 comentario

Primer vídeo de la serie donde se explican los objetivos y enfoque que se va a seguir. Ademas se incluye un script simple para la detección de servicios vulnerables.

simple-bannergrabbing.py: https://github.com/Adastra-thw/pyHacks/blob/master/simple-bannergrabbing.py

Repositorio GIT de la serie:

https://github.com/Adastra-thw/pyHacks.git


Make a Donation Button

WEB HACKING – Atacando DOJO Hackme Casino – Sesiones inseguras en Ruby On Rails – Parte XXIX

mayo 16, 2013 Deja un comentario

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)

Leer más…

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.

Leer más…

WEB HACKING – Clasificación de Ataques web – Parte XVII

enero 14, 2013 Deja un comentario

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 qué? pueden haber muchas razones, sin embargo esto se debe principalmente 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, realizar al menos, una auditoria de seguridad en profundidad.

Leer más…

Manipulación de Paquetes utilizando SCAPY – Escaneos, Ataques y Administración de redes – Parte VI

julio 26, 2012 Deja un comentario

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.

Leer más…

WEB HACKING – Configurando DOJO Web Security como Hacklab – Parte III

julio 9, 2012 5 comentarios

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.

Leer más…

Manipulación de Paquetes utilizando SCAPY – OS Fingerprint pasivo con p0f y Scapy – Parte V

junio 7, 2012 Deja un comentario

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:

Leer más…

Manipulación de Paquetes utilizando SCAPY – Análisis de respuestas a paquetes enviados desde Scapy – Parte IV

mayo 28, 2012 Deja un comentario

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.

Leer más…

Manipulación de Paquetes utilizando SCAPY – Funciones en Scapy y tratamiento de paquetes – Parte III

mayo 21, 2012 Deja un comentario

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>

Leer más…

Manipulación de Paquetes utilizando SCAPY – Conceptos Básicos sobre Scapy – Parte II

mayo 14, 2012 Deja un comentario

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)

Leer más…

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.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Desactivando procesos resilientes en una máquina comprometida – Parte XV

marzo 14, 2012 14 comentarios

En esta ocasión se intentará indicar como es posible desactivar procesos resilientes en máquinas comprometidas (máquinas Windows) para evitar las dificultades que conlleva trabajar con un sistema monitorizado por un anti-virus u otro software de seguridad, para esto se utilizará en primer lugar MetaSploit Framework con una consola meterpreter establecida, IRB para ejecutar scripts escritos en Ruby contra la máquina comprometida y finalmente una DLL que permite “dormir” un proceso determinado y sus correspondientes procesos hijo, esto es todo lo que se necesita para conseguir eliminar procesos resistentes que no pueden ser detenidos o suspendidos por medio de los mecanismos convencionales.

En entradas anteriores de este blog se han indicado las bases sobre el uso de Ruby y de IRB desde Meterpreter, estos conocimientos son en esta ocasión, utilizados con el fin de crear un script que permita la carga de la librería DLL a un proceso del sistema y una vez cargada, intentará suspender el proceso. El procedimiento es realmente simple, se indica a continuación:

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Burlando reglas de detección y alarmas de Snort utilizando W3AF – Parte IX

febrero 29, 2012 Deja un comentario

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.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Evadiendo Firewalls usando MetaSploit Framework – Parte V

febrero 20, 2012 6 comentarios

Existen diferentes técnicas para el establecimiento de una conexión entre dos máquinas que se encuentran separadas y condicionadas por un firewall que evita que determinados puertos, protocolos y/o hosts puedan establecer conexiones, aunque se trata de un mecanismo bastante eficiente, en muchas ocasiones estas reglas no restringen absolutamente todo por diferentes razones, como por ejemplo, la necesidad de tener determinados puertos abiertos para realizar conexiones a un servicio externo, entre otras cosas. Esta situación es bastante frecuente en algunas organizaciones, donde alguna de las aplicaciones internas necesita acceso a un servicio externo y para este fin se debe dejar abierto uno o varios puertos. En este escenario se puede realizar un ataque de “fuerza bruta” en busca de una conexión pasando por el firewall, para este fin se utilizan los payload windows/*/reverse_tcp_allports que intentan capturar alguno de estos puertos abiertos e iniciar la transferencia del stage.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Creando una puerta trasera y accediendo a información de usuarios usando un DEB malicioso – Parte IV

febrero 17, 2012 Deja un comentario

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.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Ataques contra plataformas Linux creando ficheros DEB maliciosos – Parte III

febrero 15, 2012 Deja un comentario

En entradas anteriores sobre Payloads en MetasSploit, se ha hecho énfasis especial sobre Payloads contra plataformas Windows y como estos conseguían burlar la seguridad de la víctima. En esta ocasión se intentará indicar el procedimiento que frecuentemente se lleva a cabo para conseguir estos mismos resultados sobre plataformas GNU/Linux, en este caso particular sobre distribuciones Debian/Ubuntu por medio de envenenamiento de paquetes de instalación (*.DEB)

El procedimiento es muy sencillo, a continuación se listan los pasos que se deben de llevar a cabo para conseguir una consola remota usando un DEB infectado.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Evadir Anti-Virus usando MetaSploit Framework y Visual Basic contra plataformas Windows – Parte II

febrero 13, 2012 2 comentarios

En la anterior entrada, se ha indicado la forma de realizar un “bypass” utilizando MetaSploit Framework y una plantilla simple escrita en lenguaje C, en esta ocasión, se intentará explicar la forma de “infectar” un documento de MicroSoft Office (word, excel, etc.) por medio de una macro maliciosa generada por metasploit framework, la virtud de tipo de ataques es que no son detectables por un AV, ya que los AV normalmente suelen confiar en el contenido que se ejecuta dentro de los procesos de programas instalados y frecuentemente utilizados, (como en este caso un programa ofimatico) lo que le permite a un atacante enviar un documento malicioso a un usuario con el fin de comprometer su máquina, no obstante, existen mecanismos de seguridad en Office que no permite la ejecución de Macros, pero si el documento es generado directamente por el atacante y enviado a la víctima, evidentemente el nivel de seguridad que intentará establecer para el documento será bajo de tal forma que cuando el objetivo del ataque abra el documento, no encontrará nada sospechoso en él.

Leer más…

Intentando evadir mecanismos y restricciones de Seguridad – Evadir Anti-Virus usando custom encoders, Lenguaje C y Metasploit Framework – Parte I

febrero 10, 2012 6 comentarios

Esta es la primera de una serie de entradas que intentarán indicar las técnicas de hacking que frecuentemente se utilizan con el fin de comprometer una maquina remota que implementa mecanismos de seguridad y restricciones que dificultan las labores de penetración de un pentester o un hacker, en esta serie de entradas se indicará como es posible evadir dichas restricciones (restricciones de AV, IDS o Firewalls).

En muchos casos nos encontramos con la necesidad de distribuir un backdoor o cualquier tipo de troyano en una maquina objetivo con el fin de tener acceso a los recursos de dicha máquina para ejecutar alguna clase de tarea, sin embargo, estos son fácilmente detectados por antivirus como NOD32, AVG, Norton, etc. Esto ocurre debido a su gran cantidad de registros e información relacionada con virus, troyanos, puertas traseras, etc. Ademas de los mecanismos que incorporan para detectar de forma efectiva algún tipo de amenaza que pueda representar un riesgo para el sistema. Un antivirus frecuentemente verifica si un fichero representa un riego o no por medio de determinadas firmas o “signatures” que tiene un programa ejecutable, estas firmas corresponden a una serie de patrones de comportamiento que tiene el programa, estos patrones son obtenidos por un antivirus por medio de un proceso de desensamblaje que convierte el código ejecutable en código en ensamblador, si dentro de este código, existe al menos una de las firmas registradas en el antivirus, este programa es marcado como no fiable, ya que probablemente se trate de un troyano o algún otro tipo de amenaza.

Leer más…

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 773 seguidores

%d personas les gusta esto: