Busindre » 2008 » June

Instalar ProxyWeb (Http / Https / Ftp) usando "Php Tunneling".

June 25th, 2008 by Busindre

Php tunneling es una forma de ofrecer servicios proxy (http / https / ftp) por medio de ficheros escritos en lenguaje Php, lógicamente están más limitados que los proxyweb tipo Squid. Estos ficheros php junto con un servidor web, como puede ser Apache, otorgan al usuario la funcionalidad de poder navegar por Internet de forma anónima. El archivo/s php alojado en un determinado servidor hace de intermediario entre el usuario y una web cualquiera que se quiera visionar, creando lo que se llama un túnel http por medio de php. Escucha las peticiones (Urls) del usuario, mediante funciones php conecta a esa URL solicitada y le devuelve al usuario el código html generado como si hubiera sido el mismo el que visitase la web. De esta forma los datos encontrados en los logs de la web visitada pertenecerán al servidor que alberga dicho proxy php y no los del usuario.

A parte de funcionalidades de anonimato, este tipo de proxys se usan también para saltarse las conocidas censuras de navegación que aplican determinados países, como puede ser el caso de China, también podemos usar este tipo de proxys para mejorar la seguridad de nuestro blog, posibilitando el uso de un determinado proxy para entrar en la sección de administración protegida por IP (.htaccess), muy útil para los administradores que tienen direccionamiento dinámico. Otro uso más curioso y rebuscado podría ser el siguiente, en la popular comunidad wiffi "Fon", permiten a los miembros de la comunidad que comparten Internet mediante las Foneras, mostrar un determinado enlace a los usuarios que quieran conectarse a ese punto de acceso wireless, pudiendo ser visionado sin la necesidad de pagar o loguearse como usuario fon. De usar como enlace una dirección a un php proxy, el usuario podrá usar la conexión wiffi de fon para navegar por Internet por medio del proxy sin necesidad de loguearse o pagar, todo depende del administrador del punto de acceso Fon. Ya hemos visto en que consiste y alguno de sus usos prácticos, veamos como de fácil es instalar un proxy php en nuestro sitio web, para este caso usaremos surrogafier pero hay muchos disponibles.

Descargar: http://bcable.net/archive.php?surrogafier-1.0-rc3.php

Leer más »

Posted in Linux | Sin Comentarios »

WebSH: Usar la consola para ejecutar comandos en un servidor web con PHP (GNU/Linux | BSD)

June 20th, 2008 by Busindre

Apache + PHP como muchos saben nos ofrece la posibilidad, como otros lenguajes, de ejecutar comandos unix del servidor en el que se encuentra instalado si así se requiere y el servidor esta configurado correctamente para ello, por defecto no debería estar permitido por temas de seguridad. Que el servidor Apache pueda ejecutar programas del sistema es útil en ciertas ocasiones para ofrecer alguna funcionalidad extra a los usuarios o bien con el objetivo de realizar determinadas operaciones que mediante el uso de otros lenguajes como php o javascript supondrían un consumo de recursos excesivo para el servidor.

¿Pero que pasa si lo que queremos es poder usar esa posibilidad de ejecución de comandos de Apache desde nuestra consola?

En este post vamos a ver la forma de interactuar por medio de la consola, sin hacer uso del navegador, con un servidor web remoto que permita la ejecución de comandos modo texto, para ello usaremos la utilidad webSH.

WebSH son unos scripts que permiten ejecutar comandos en una máquina servidor remota (Que use Php) por medio de nuestra terminal, sin necesidad de usar otros protocolos como puede ser ssh, lógicamente estamos limitados por el acceso de apache a determinados comandos, todo depende de la configuración del servidor. Las instrucciones que enviamos por consola se envian a un fichero php alojado en el servidor web, el cual interpreta nuestros mandatos enviados desde la terminal y nos devuelve la salida a la misma. WebSH funciona en sistemas UNIX, por lo que podremos disfrutar de esta simple aplicación con sistemas GNU/Linux y BSD sin problemas. El programa original tiene algunos bugs por lo que hemos creado un paquete sin dichos bugs resueltos para su descarga.

Como es lógico el servidor que queremos que responda a nuestras peticiones debe permitir la ejecución de comandos por medio de PHP, para permitir el acceso de php a este tipo de funciones debemos tener en el archivo de configuración php.ini la siguiente linea:

safe_mode = Off

Leer más »

Posted in Curiosidades | Sin Comentarios »

Posibles causas de la lentitud de Internet con GNU/Linux

June 13th, 2008 by Busindre

Algunos usuarios tienen problemas con la lentitud de Internet bajo su sistema GNU/Linux, esto puede ser por varios motivos como es de suponer. En este post enumeraremos las más comunes causas por las que una conexión a Internet no rinda todo lo bien que debiera junto con algún consejo para intentar solucionarlo o por lo menos atajar el problema. Nos centraremos en lo referente a la parte del usuario, si la linea falla por el ISP contratado no se puede hacer nada excepto llamar y quejarse.

1.- De usar tecnología wifi para conectar al router Adsl debemos estar atentos a la calidad de la señal (Enlace con el router) y al cifrado que tenemos configurado. De obtener una buena calidad de enlace podemos probar a deshabilitar la protección de la linea, ya sea WEP, WPA,.. y probar si mejora la velocidad. Si por el contrario usamos cable UTP debemos asegurar que el cable cumpla los estándares o por lo menos que los pines de los conectores Rj45 conecten con el cable de forma correcta.

2.- De tener activado el servicio Dhcp en el router y no estar correctamente configurado, se pueden dar casos de renegociación de direcciones ip producidas por la caducidad de la misma o porque simplemente el Dhcp del router no funciona de forma correcta. Esto produce pequeños cortes en la conexión entre el Pc y el router que provocan una sensación de lentitud para el usuario a la hora de cargar alguna web en un determinado momento. Si no se trata de una oficina grande lo recomendable es usar direcciones IP establecidas de forma manual y desactivar la opción Dhcp en el router.

3.- Los DNS suelen ser un factor de vital importancia a la hora de hablar de velocidad en una conexión a Internet. Tener configurado en el sistema operativo unos servidores DNS lentos, se traduce en una navegación de Internet lenta, ya que actualmente la mayoría de programas y usuarios hacen peticiones por dominio, no por ip, por lo que el retardo en la resolución de una dominio provocará una conexión muy lenta. Cambiar los servidores DNS en el fichero /etc/resolv.conf de nuestro GNU/Linux ayudará a saber si el problema viene ocasionado por los DNS, o bien, debemos buscar en otro lado. Una aplicación que ayuda a tener una Internet más rápida es DNSmasq, encargada de cachear las respuestas de los DNS ahorrándonos consultarlas a posteriori. Es recomendable usar un buen listado de DNS, ya que se puede dar la probabilidad de que dos fallen en un mismo espacio de tiempo, de usar Dhcp se debe estar atento al machaque del fichero /etc/resolv.conf cada vez que se haga una solicitud Dhcp al router.

Leer más »

Posted in Linux | Sin Comentarios »

Encuestas web de forma fácil con LuckyPolls

June 10th, 2008 by Busindre

Si no se quiere perder tiempo con LuckyPolls podemos hacer de forma rápida y gratuita encuestas para nuestros sitios web. Vale con visitar la página, ir a Sign Up y crear nuestra encuesta, acto seguido nos pedirá la dirección de correo electrónico para mandarnos el id y password de la encuesta, para poder acceder a ella y modificarla cuando queramos, nada más rápido. El sistema de encuestas controla por IP el acceso a voto, como es lógico.

¿Por qué usas Debian?

El logo de la espiral ensangrentada me flipa.
He leido que es distro de hackers.
Por la fama que tiene.
Comeduras de cabeza de amigos
Pensaba que Stallman la recomendaba
Es la que más me gusta
No tengo ni idea realmente
No debería contestar, no conozco todas las distros

Resultados

Posted in Curiosidades | Sin Comentarios »

AscII Art con Libcaca en GNU/Linux y demás Unix

June 9th, 2008 by Busindre

libcaca es una librería gráfica que muestra caracteres en lugar de píxeles, esto ofrece la posibilidad de poder trabajar bajo tarjetas de video muy antiguas y en terminales de texto, es similar a la librería AAlib pero con soporte para Unicode, dispone de 2048 colores disponibles (Depende de la tarjeta de video puede que solo se soporten 16), también tiene varios algoritmos de tramado (dithering) de color y otras posibilidades que AAlib no proporcionaba. Libcaca puede trabajar en todos los sistemas Unix, incluido Mac OS X, usando las librerías S-Lang o ncurses, también funciona bajo el sistema operativo Windows de Microsoft. Libcaca, entre otras funciones, nos proporciona con sus utilidades la capacidad de ver vídeos en ASCII (mplayer / vlc), visualizar y transformar imágenes a ascii para usarlo en documentos html, texto o incluso IRC. La creación de animaciones caca se realiza mediante lenguaje C + libcaca (Picando código), tenemos muestras de animaciones con su código fuente dentro del directorio src de las fuentes de libcaca. Vamos a ver como se usa y se instala esta librería, resolviendo algunos problemas que podemos encontrarnos en su compilación.

Descargar Libcaca: http://libcaca.zoy.org/wiki/libcaca

Compilar / Instalar Libcaca

$ tar -zxvf libcaca-0.99.beta13b.tar.gz
$ cd libcaca-0.99.beta13b/
$ ./configure --prefix=/usr --enable-ncurses --enable-slang --enable-x11 --enable-gl --enable-network --enable-imlib2 --enable-plugins
$ make
# make install ó checkinstall

NOTA: Imlib2 es una dependencia necesaria para que libcaca pueda hacer uso de ficheros que no sean BMP, por eso debemos añadir esta dependencia antes de realizar el .configure de no tenerla instalada.

Leer más »

Posted in Curiosidades | 1 Comentario »

Solucionar los problemas compilando LibVNCServer y el directorio ".deps"

June 6th, 2008 by Busindre

En este pequeño post comentamos como compilar LibVNCServer de forma correcta, para que no se muestre este error que enseñamos a continuación al ejecutar "make" sobre el directorio de fuentes de LibVNCServer.


cd . && /bin/sh ./config.status rfbconfig.h
config.status: creating rfbconfig.h
make all-recursive
make[1]: se ingresa al directorio `/home/busi/LibVNCServer-0.9.1'
Making all in libvncserver
make[2]: se ingresa al directorio `/home/busi/LibVNCServer-0.9.1/libvncserver'
Makefile:351: .deps/auth.Plo: No existe el fichero o el directorio
Makefile:352: .deps/cargs.Plo: No existe el fichero o el directorio
Makefile:353: .deps/corre.Plo: No existe el fichero o el directorio
Makefile:354: .deps/cursor.Plo: No existe el fichero o el directorio
Makefile:355: .deps/cutpaste.Plo: No existe el fichero o el directorio
Makefile:356: .deps/d3des.Plo: No existe el fichero o el directorio
Makefile:357: .deps/draw.Plo: No existe el fichero o el directorio
Makefile:358: .deps/filelistinfo.Plo: No existe el fichero o el directorio
Makefile:359: .deps/filetransfermsg.Plo: No existe el fichero o el directorio
Makefile:360: .deps/font.Plo: No existe el fichero o el directorio
Makefile:361: .deps/handlefiletransferrequest.Plo: No existe el fichero o el directorio
Makefile:362: .deps/hextile.Plo: No existe el fichero o el directorio
Makefile:363: .deps/httpd.Plo: No existe el fichero o el directorio
Makefile:364: .deps/main.Plo: No existe el fichero o el directorio
Makefile:365: .deps/minilzo.Plo: No existe el fichero o el directorio
Makefile:366: .deps/rfbregion.Plo: No existe el fichero o el directorio
Makefile:367: .deps/rfbserver.Plo: No existe el fichero o el directorio
Makefile:368: .deps/rfbtightserver.Plo: No existe el fichero o el directorio
Makefile:369: .deps/rre.Plo: No existe el fichero o el directorio
Makefile:370: .deps/scale.Plo: No existe el fichero o el directorio
Makefile:371: .deps/selbox.Plo: No existe el fichero o el directorio
Makefile:372: .deps/sockets.Plo: No existe el fichero o el directorio
Makefile:373: .deps/stats.Plo: No existe el fichero o el directorio
Makefile:374: .deps/tight.Plo: No existe el fichero o el directorio
Makefile:375: .deps/translate.Plo: No existe el fichero o el directorio
Makefile:376: .deps/ultra.Plo: No existe el fichero o el directorio
Makefile:377: .deps/vncauth.Plo: No existe el fichero o el directorio
Makefile:378: .deps/zlib.Plo: No existe el fichero o el directorio
Makefile:379: .deps/zrle.Plo: No existe el fichero o el directorio
Makefile:380: .deps/zrleoutstream.Plo: No existe el fichero o el directorio
Makefile:381: .deps/zrlepalettehelper.Plo: No existe el fichero o el directorio
make[2]: *** No hay ninguna regla para construir el objetivo `.deps/zrlepalettehelper.Plo'. Alto.
make[2]: se sale del directorio `/home/busi/LibVNCServer-0.9.1/libvncserver'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/home/busi/LibVNCServer-0.9.1'
make: *** [all] Error 2

Leer más »

Posted in How To | Sin Comentarios »

Letras / palabras / texto en ASCII Art con Figlet (GNU/Linux / BSD)

June 5th, 2008 by Busindre

FIGlet muestra un texto, frase o palabra en formato ASCII Art, muy usado para tutoriales en txt y firmas en correos o foros. Puede imprimir en una gran variedad de fuentes que podemos descargar desde la página del proyecto, tanto alinear las salidas de izquierda a derecha como de derecha a izquierda, con el texto justificado, etc... Puede ser útil en la creación de algún script para decorar ciertas salidas o su documentación o para cualquier frikada que se nos ocurra. Veremos sus opciones más comunes y útiles junto con algunos ejemplos de su uso.

I Love GNU... Busindre
 ___   _                         ____  _   _  _   _           ____               _             _           
|_ _| | |     ___ __   __ ___   / ___|| \ | || | | |         | __ )  _   _  ___ (_) _ __    __| | _ __  ___
 | |  | |    / _ \\ \ / // _ \ | |  _ |  \| || | | |         |  _ \ | | | |/ __|| || '_ \  / _` || '__|/ _ \
 | |  | |___| (_) |\ V /|  __/ | |_| || |\  || |_| |_  _  _  | |_) || |_| |\__ \| || | | || (_| || |  |  __/
|___| |_____|\___/  \_/  \___|  \____||_| \_| \___/(_)(_)(_) |____/  \__,_||___/|_||_| |_| \__,_||_|   \___|

Descargar:

Mirror 1: ftp://ftp.figlet.org/pub/figlet/program/unix/
Mirror 2: http://www.sfr-fresh.com/unix/misc/figlet222.tar.gz

Leer más »

Posted in How To, General | Sin Comentarios »

Revisar la integridad de los ficheros de un sistema GNU/Linux / BSD (Checksum md5)

June 4th, 2008 by Busindre

En entornos de servidor es muy común necesitar de la comprobación de integridad de determinados ficheros o directorios del sistema operativo cada cierto tiempo. Normalmente ese control de integridad se realiza para comprobar que no se produjeron cambios en ciertos tipos de ficheros desde la anterior comprobación, ficheros que pueden ser documentos de texto, backups, en ambientes de hosting encontraríamos interés en ficheros php, html, jsp, librerías o cualquier cosa que se necesite saber si ha sufrido algún tipo de cambio en un determinado espacio de tiempo, ya sea en el nombre del fichero o en su contenido, cualquier tipo de cambio. Esto se puede hacer con el algoritmo md5 y la utilidad md5sum del paquete coreutils.

Para revisar esa integridad se trata de crear una base de datos con los hashes md5 de los ficheros que queremos controlar y luego consultarla mientras se comprueba de nuevo los hashes de esos mismos ficheros, de haber alguna variación es que algún fichero ha sido modificado. Veamos como hacerlo con un ejemplo, luego cada uno que lo adapte a sus necesidades.

Si queremos hacer uso de subdirectorios necesitaremos instalar md5deep, que entre otras cosas aporta un modo de md5sum recursivo, cosa que no realiza el ejecutable del paquete coreutils.

Descargar md5deep: http://md5deep.sourceforge.net/#download

Compilar / Instalar md5deep:

$ tar -zxvf md5deep-3.0.tar.gz
$ cd md5deep-3.0
$ ./configure
$ make
# make install o checkinstall

Leer más »

Posted in How To, General | Sin Comentarios »

Permisos de directorios de Apache + safe_mode y sus peligros (Apache/Php)

June 3rd, 2008 by Busindre

Con este articulo queremos mostrar de forma comprensible, la importancia en materia de seguridad de tener una correcta configuración de Apache y Php. Lo haremos mediante una sencilla prueba de concepto en la que intentaremos crear un acceso shell (Ssh) por medio de un servidor web que no este debidamente protegido y tenga un kernel vulnerable a un conocido exploit. Usaremos para ello el famoso código (Con alguna modificación) que aprovecha una vulnerabilidad de los kernel 2.6.x - 2.6.24.1 para conseguir acceso a root. De lo que trata todo esto es de que Apache consiga acceso a comandos de root y de esa forma crearnos una entrada al sistema de forma remota. Para ello necesitamos un Pc con kernel vulnerable, un acceso a los ficheros php (Con los que ejecutar el script) mediante ftp por ejemplo y que el servidor Apache no tenga configurada la directiva "safe_mode" del archivo php.ini, encargada de permitir o denegar las funciones de acceso a comandos Linux desde Php. Los pasos serían los siguientes:

1.- Acceder al servidor mediante Ftp.
2.- Subir el fichero Php que tiene como función ejecutar comandos.
3.- Subir el Exploit que nos dará acceso a root.
4.- Subir el ejecutable con los comandos que se quiere que Apache ejecute como root, en nuestro caso la creación de un usuario con el que poder acceder via ssh, pero se podría hacer cualquier otra maldad que se nos ocurra.
5.- Ejecutar el Exploit desde el documento php.
6.- Acceder al sistema vía ssh.

Esto es factible en cualquier otro lenguaje, como puede ser jsp, pero para el artículo usamos php que es lo más común de encontrar en tema hosting, lo realmente importante como siempre es la lógica. Veamos que tenemos que hacer y que debemos tener claro para empezar.

Leer más »

Posted in Linux | Sin Comentarios »