CategoríaGNU/Linux

Temas Referente a Linux

Esteganografía: Ofuscación de archivos (parte 2)

Luego de haber enseñado como ofuscar un archivo dentro de otro, llegó el momento de saber como “separarlos”. En la primera parte, hubo comentarios de quienes tenian problemas porque se corrompía el archivo y no todas las versiones de unrar o unzip lo podían descomprimir, ya que obviamente, el archivo tiene muchos bits y bytes extras que no corresponden al zip, al rar o al archivo que escondimos. Una vez separado el archivo que hemos escondido, evitaremos todos estos problemas y tendremos nuestro archivo íntegro.

Para separar el archivo vamos a usar el comando split, que nos permite “dividir” o “cortar” un archivo por líneas, bytes, etc. En este caso, separaremos por bytes el archivo.
La sintaxis de split para separar un archivo es tan simple como:

$ split --bytes=XXX archivo
o tambien
$ split -b XXX archivo

De esta forma, el split separará el archivo cada XXX bytes, creando archivos de la forma xab, xac, xad, … xaN.
Ejemplo:
[zerial@balcebu ejemplo_split]$ du -sh archivo.jpg
48K archivo.jpg
[zerial@balcebu ejemplo_split]$ split -b 10000 archivo.jpg
[zerial@balcebu ejemplo_split]$ ls
archivo.jpg xaa xab xac xad xae
[zerial@balcebu ejemplo_split]$ du -csh *
48K archivo.jpg
12K xaa
12K xab
12K xac
12K xad
8.0K xae
104K total
[zerial@balcebu ejemplo_split]$

Para poder separar el archivo ofuscado, vamos a necesitar saber de antemano el tamaño del archivo original, para poder separarlo por esa cantidad de bytes.

Seguir leyendo

Jornadas Regionales del Software Libre 2010 en San Luis (.ar)

Hace dos semanas asistí y participé de las Jornadas Regionales del Software Libre (JRSL) en San Luis, Argentina. Fue una experiencia muy buena, estuve con gente que ya había conocido antes en otros eventos allá en Argentina y en Chile. A este evento asistió gente de Uruguay, Chile, EE.UU y obviamente Argentina. Una amplia variedad de charlas y talleres de muy buena calidad.
En esta oportunidad asistí como charlista/expositor y como asistente a otras charlas como criptografía, la típica charla sobre redes mesh, python/web2py, entre otras. Debido a que el publico no era muy “técnico” y el enfoque del evento no es algo netamente de seguridad, sino de difusión y de filosofía del SL, mi charla fue muy justa, 35 o 40 minutos que pasaron muy rapido, mostrando scripts y técnicas para apoderarse de los WordPress de un servidor, hacer peticiones automaticas para la extracción de información de sitios los cuales no protegen los datos de sus usuarios, etc.

Esteganografía: Ofuscación de archivos (parte 1)

Entendamos como “ofuscación de archivos” el hecho de esconder un archivo dentro de otro. Es posible, usando comandos básicos de Unix, ofuscar un archivo y que pase desapercibido. En esta etapa solo usaremos el comando para concatenar archivos cat.

Teóricamente, lo que haremos será concatenar dos tipos de archivos, en este caso un archivo de imagen junto con un zip o un rar. Si ponemos nuestro fichero comprimido al final de un archivo de imagen, podremos ver la imagen sin problemas y poder debajo tener nuestro archivo ofuscado. Hice algunas pruebas en M$ Windows con distintos antivirus enviando el archivo por correo electrónico y descargandolo, sin que se detectara el archivo ofuscado.

El comando es ultra sencillo, lo único que haremos sera concatenar dos (o más) archivos al final de nuestro fichero de imágen. Tenemos una nuestra imagen “imagen.jpg” y nuestro zip “archivo.zip“:

$ cat imgen.jpg archivo.zip >archivo_ofuscado.jpg

Ahora “archivo_ofuscado.jpg” tiene un tamaño igual a la suma de imagen.jpg con archivo.zip.

Seguir leyendo

Filtrar inyecciones SQL y XSS con Mod_Rewrite en Apache

Revisando un servidor me encontré con la siguientes reglas para el módulo ModRewrite de apache, que nos ayudan a filtrar las URLs potencialmente maliciosas. Este codigo nos va a ayudar a proteger el servidor de las aplicaciones que tengan fallas de seguridad.

RewriteEngine On         
########## Begin - Rewrite rules to block out some common exploits
        #
        # Block out any script trying to set a mosConfig value through the URL
        RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
        # Block out any script trying to base64_encode crap to send via URL
        RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
        # Block out any script that includes a <script> tag in URL
        RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
        # Block out any script trying to set a PHP GLOBALS variable via URL
        RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
        # Block out any script trying to modify a _REQUEST variable via URL
        RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
        # Send all blocked request to homepage with 403 Forbidden error!
        RewriteRule ^(.*)$ index.php [F,L]
######### End - Rewrite rules to block out some common exploits

Nos protegerá de ataques XSS y SQL Injection. Este script podría afectar el funcionamiento de algunas aplicaciones.

[Tip] Limitar el uso de ancho de banda con Trickle

trickle is a portable lightweight userspace bandwidth shaper. It can run in collaborative mode (together with trickled) or in stand alone mode.

Con esta herramienta podemos limitar la velocidad de subida y bajada de cualquier aplicación. Como dice en la descripción, puede trabajar “solo” y tambien como demonio. Si ejecutamos el demonio, todas las aplicaciones que se corran usando trickle (sin especificar subida ni bajada) correrán con el límite señalado. Por ejemplo, si corremos el demonio con los parametros:

trickled -d 150 -u 20
Establecemos que la velocidad de bajada y subida será de 150 y 20 Kb/s, respectivamente. Desde ahora, todas las aplicaciones corridas con trickle tendran esa configuración, por ejemplo:

trickle axel https://domain.com/download.tbz2
Limitará la bajada a 150kb/s.

Podemos pasarle parametros a trickle directamente, por ejemplo trickle -d 100 -u 100 wget https://domain.com/file.tbz2, de esta forma se limitara a wget solo descargar a 100kb/s.

Aunque wget tiene la opción –limit-rate que nos permite limitar el RATE, y –max-speed que nos permite limitar la máxima velocidad en axel, trickle nos puede servir para limitar el ancho de banda de cualquier aplicación.

Tip: Ver y modificar los parametros de tu tarjeta de red

Para ver y modificar los parametros de configuración de tu tarjeta de red puedes usar las herramientas mii-tool y ethtool, aunque la primera herramienta está obsoleta (deprecated), aún sirve para sistemas con instalaciones antiguas.

mii-tool – view, manipulate media-independent interface status
ethtool – Display or change ethernet card settings

Para modificar la velocidad de transferencia de las tarjetas usamos el siguiente comando:

ethtool eth1 speed 1000 duplex full

Para dejarla a 1Gbps full duplex. Podemos setear la tarjeta a 10, 100 o 1000mbps según su capacidad, tambien decirle si es half o full duplex, activar y desactivar la autonegociación, modiicar el tamaño de los Jumbo Frames, etc.

Para conocer la configuración actual de la tarjeta de red sólo debemos ejecutar ethtool y especificarle el dispositivo: