Archive for Herramientas Utiles

noviembre 27th 2017

Renombrar varios archivos a la vez, en lote, desde consola (linux)

Número de lecturas: 785
{lang: 'es-419'}

Muchas veces tenemos un montón de ficheros y queremos modificar en lote su nombre de archivo por alguna circunstancia, añadir texto, suprimir texto, reemplazar algún carácter por otro… y nos llevaría mucho tiempo ir editando uno a uno cuando lo que queremos es hacer la misma edición para todos. Para ello podemos renombrar todos los archivos en lote, todos a la vez, usando desde una consola Linux el comando rename (*ver pie) con expresiones regulares que nos permitan reemplazar lo que necesitemos. Mostraremos características, algunos ejemplos y la explicación de expresiones regulares para usar con rename:

Características:

Parámetros del comando rename:
-v (Verbose: modo detallado, nos saca en pantalla lo que se va haciendo en el proceso)
-n (No Action: no realiza la acción, solo nos muestra lo que haría, es importante poner este parámetro junto con -v la primera vez que ejecutamos para comprobar que el resultado que vamos a obtener es el que queremos)
-f (Force: sobrescribe los ficheros existentes)
*.* para que trate todos los archivos con extensión del directorio
\ Localiza caracteres especiales tipo [ , {, (, -, _, “.”, …

 

Ejemplos:

1) Añadir algo tras una parte del nombre del archivo que es común en todos los ficheros.
Ejemplo:
imagenXXXX.jpg por imagen_NEW_XXXX.jpg

# rename 's/imagen/imagen_NEW_/' *.jpg -v-n

2) Renombrar un grupo de imágenes con nombres diferentes. Si tenemos un grupo de imágenes (por ejemplo PNG) a las que les queremos añadir una información en la parte final del nombre de la imagen antes de la extensión.
Ejemplo:
nombreimagen.png por nombreimagen_150x150.png

# rename 's/\.png/\_150x150.png/' *.png -v -n

3) Vamos a suponer que queremos reemplazar los guiones bajos por guiones medios (“_” por “-“) en los nombres de nuestros archivos de un directorio determinado.

# rename 's/_/-/' *.jpg -v -n

Podemos ejecutar repetidamente por si hay varios guiones bajos en el nombre del archivo o utilizar expresiones regulares de repetición tipo {m} {n}… * Ver más abajo la referencia de expresiones regulares

4) Añadir texto al inicio del nombre del fichero. Con el carácter ^ le indicamos al comando rename que se sitúe en el comienzo del nombre del fichero y ahí inserte o ejecute la segunda parte.
Ejemplo:
leccion 1.doc,
leccion 2.doc
por
tema – leccion 1.doc,
tema – leccion 2.doc …

# rename 's/^/tema – /' *.doc -v -n

5) Si queremos eliminar varios caracteres antes de un punto de corte determinado.
Ejemplo:
texto1_abc_001_small.jpg,
texto2_abc_002_small.jpg,
texto3_abc_003_small.jpg
por
texto1_small.jpg,
texto2_small.jpg,
texto3_small.jpg

Utilizamos para el corte la cadena “_small” y le decimos que nos elimine los 8 caracteres (\w) anteriores, o los reemplace por lo que indiquemos en la segunda parte del comando rename.

# rename 's/\w{8}\_small/_small/' *.jpg -v -n

5b) Si queremos reemplazar desde un punto determinado de corte, pero respetando un número concreto de caracteres numéricos antes de la parte donde se produce el corte. Para este caso usamos el elemento “$1” en la cadena de la parte derecha, para que nos coja esa variable obtenida de la parte izquierda.  Viendo el ejemplo se entenderá mejor.
Ejemplo:
texto1_uno001_small.jpg,
texto2_otro002_small.jpg,
texto3_cualquiera003_small.jpg …
por
texto1_uno_ADD-001_small.jpg,
texto2_otro_ADD-002_small.jpg,
texto3_cualquiera_ADD-003_small.jpg …

Utilizamos para el corte la cadena “_small” y le decimos que nos guarde los 3 caracteres numéricos (\d) anteriores (001, 002, 003…) utilizando el $1 en la segunda parte del comando (la expresión de la derecha) Nos añadirá o modificara lo indicado en la segunda parte del comando rename justo antes de esos 3 caracteres reservados antes del corte.

# rename 's/(\w{3})\_small/_ADD–$1_small/' *.jpg -v -n

6) Cambiar mayúsculas y minúsculas.
Ejemplo:
mi_fichero.txt por MI_FICHERO.TXT

# rename 'y/a-z/A-Z/' *.txt -v -n

7) Eliminar del nombre del fichero caracteres especiales que no están entre la letra a y la z (a-z) . Dejando en el nombre del fichero solo caracteres alfanuméricos.
Ejemplo:
mi-fichero.txt por mifichero.txt

# rename 'v/[^a-z]//' *.* -v -n

Para cambiar varios caracteres lo ejecutamos varias veces:
Ejemplo:
mi-fichero-con-varios-caracteres.txt por mificheroconvarioscaracteres.txt
Lo ejecutaremos 4 veces.

 

Expresiones regulares:

A continuación dejo un listado explicando (en inglés) las expresiones regulares que se pueden utilizar con este comando rename:

^ matches the beginning of the line
$ matches the end of the line
. Matches any single character
(character)* match arbitrarily many occurences of (character)
(character)? Match 0 or 1 instance of (character)
[abcdef] Match any character enclosed in [] (in this instance, a b c d e or f) ranges of characters such as [a-z] are permitted. The behaviour of this deserves more description.
[^abcdef] Match any character NOT enclosed in [] (in this instance, any character other than a b c d e or f)
(character){m,n} Match m-n repetitions of (character)
(character){m,} Match m or more repetitions of (character)
(character){,n} Match n or less (possibly 0) repetitions of (character)
(character){n} Match exactly n repetitions of (character)
(expression) Group operator.
\n Backreference – matches nth group
expression1|expression2 Matches expression1 or expression 2. Works with GNU sed, but this feature might not work with other forms of sed.
\w matches any single character classified as a “word” character (alphanumeric or “_”)
\W matches any non-“word” character
\s matches any whitespace character (space, tab, newline)
\S matches any non-whitespace character
\d matches any digit character, equiv. to [0-9]
\D matches any non-digit character

 

* Please note that the rename command is part of the util-linux package and can be installed on a Debian or Ubuntu Linux, using the following syntax:

$ sudo apt-get install renameutils

Fuente:
bonaval.com

noviembre 24th 2017

¿Qué es y para que sirve un sandbox en la informática?

Número de lecturas: 282
{lang: 'es-419'}

A continuación veremos una explicación simple para que todo el mundo pueda comprender lo que es un sandbox en el mundo de la informática.

¿QUÉ ES UN SANDBOX?

Un sandbox es un mecanismo de seguridad para disponer de un entorno aislado del resto del sistema operativo.

Todos los programas que se ejecutan dentro de un sandbox lo hacen de forma controlada mediante los siguientes aspectos:

  1. Se les asigna un espacio en disco. Estos programas no podrán acceder a ningún espacio del disco que no les haya sido asignado previamente.
  2. Podemos hacer que nuestros programas se ejecuten en un sistema de archivos temporal (tmpfs) para aislarlos del resto del sistema operativo.
  3. También se les asigna un espacio en memoria. Los programas no podrán acceder a otras partes de la memoria que no les hayan sido asignadas.
  4. Les podemos dar o restringir la capacidad para acceder y consultar dispositivos de almacenamiento externos.
  5. Les restringimos la capacidad para que puedan inspeccionar la máquina anfitrión.
  6. Podemos restringir el acceso de los programas a la red, al servidor de las X, al servidor de sonido, etc.
  7. Podemos limitar el ancho de banda que usa un determinado programa.
  8. Etc.

Consecuentemente podemos afirmar que los programas se ejecutan en un entorno controlado y separado del sistema operativo. Por lo tanto el hecho de ejecutar un programa en un sandbox es un ejemplo específico de virtualización.

¿QUÉ UTILIDAD TIENE UN SANDBOX?

Nos podemos hacer la idea que su principal utilidad es ejecutar programas de forma segura y sin peligro de comprometer el resto del sistema operativo.

Algunos ejemplos de los casos en que podemos utilizar un sandbox son los siguientes:

  1. Instalar y usar de forma segura programas que no son fiables y/o pueden contener virus y/o código malicioso.
  2. Usar programas que tienen el potencial de comprometer la seguridad de nuestro sistema operativo como por ejemplo un navegador web, Skype, un lector de pdf, un keygen descargado de Internet, etc.
  3. Crear un entorno de pruebas para ejecutar programas o un código que acabamos de crear.
  4. Para descargar Torrents.
  5. Etc.

Por lo tanto podemos ver que un sandbox no es de uso exclusivo para programadores o expertos informáticos. También es útil para todo tipo de usuarios.

Algunos de los navegadores web que usamos disponen de su propio sandbox. No obstante no es mala idea usar dos capas de protección porque los navegadores web son altamente susceptibles de sufrir problemas de seguridad.

¿CÓMO PODEMOS USAR UN SANDBOX?

En función del sistema operativo que usemos existen diferentes software que nos permitirán ejecutar programas dentro de un sandbox. Algunos ejemplos son los siguientes:

  1. GNU-Linux: Firejail, Glimpse.
  2. Windows: Sandboxie, Shadow Defender.

Fuente:

geekland.eu

 

agosto 28th 2017

Escanea la seguridad de tus aplicaciones Web con Spaghetti

Número de lecturas: 858
{lang: 'es-419'}

A diario se crean miles de aplicaciones web, muchas de ellas sin seguir lineamientos de seguridad básicas, para analizar que nuestras aplicaciones web se encuentra en un nivel de seguridad alta es posible usar Spaghetti, un escaner de vulnerabilidad bastante interesante.

¿Qué es Spaghetti?

Es una aplicación de código abierto, desarrollada en Python que nos permite escanear aplicaciones web en búsqueda de vulnerabilidades, la aplicación esta diseñada para encontrar varios archivos predeterminados o inseguros, así como para detectar configuraciones erróneas.

aplicaciones web

Al ser desarrollada en python esta herramienta puede ser ejecutada en cualquier sistema operativo que sea compatible con la versión 2.7 de python.

Contiene un potente Fingerprinting que nos permite recopilar información de una aplicación web, entre las que se destacan la información relacionada al servidor, el framework utilizado para su desarrollo (CakePHP,CherryPy,Django,…), si contiene un firewall activo (Cloudflare,AWS,Barracuda,…), si ha sido desarrollado utilizando un cms (Drupal,Joomla,Wordpress,…), el sistema operativo en el que se ejecuta la aplicación y el lenguaje de programación utilizado.

Además viene equipado con otras series de funcionalidades que permitirá hacer un exhaustivo analisis de la integridad y seguridad de una aplicación web, todo esto desde la terminal y de manera sencilla.

En líneas generales una vez que ejecutemos la herramienta simplemente debemos elegir la url de la aplicación web que deseamos analizar e introducir los parámetros correspondiente a la funcionalidad que deseamos aplicar, luego la herramienta hará el análisis correspondiente y mostrará los resultados obtenidos.

¿Cómo instalar Spaghetti?

Para instalar Spaghetti en cualquier distro simplemente debemos tener instalado python 2.7 y ejecutar los siguientes comandos:

$ git clone https://github.com/m4ll0k/Spaghetti.git
$ cd Spaghetti 
$ pip install -r doc/requirements.txt
$ python spaghetti.py -h

Luego simplemente podemos utilizar la herramienta en todas las aplicaciones web que deseemos escanear. La utilidad es bastante poderosa y fácil de usar, además cuenta con un desarrollador muy activo, que se especializa en herramientas relacionadas a la seguridad informática.

Es importante destacar que el mejor uso que le podemos dar a esta herramienta es el de encontrar brechas de seguridad abiertas en nuestras aplicaciones web, para solventarlas y hacerlas más segura, no obstante, algunos usuarios podrían aprovechar esta herramienta para intentar acceder a aplicaciones web que no son de su propiedad por lo que recomendamos dar un uso adecuado a la misma.

 

Fuente:
blog.desdelinux.net

agosto 3rd 2017

Realiza pentesting real y LEGAL con PentestIT

Número de lecturas: 1284
{lang: 'es-419'}

Si te gusta la materia o piensas dedicarte seriamente al pentesting, sea del tipo que sea, te interesará saber que existen herramientas para poder hacerlo de forma completa y totalmente legal. Es el caso de PentestIT, ofrecido por la web pentestit.ru, que además te permite iniciarte en este camino sin ningún coste.

Los laboratorios de pruebas que te ofrece esta web están basados en entornos productivos 100% reales (fundados sobre casos de empresas reales) y que ponen a tu alcance fallos o agujeros de seguridad en los sistemas que están ahí, listos para ser aprovechados por un intruso.

Laboratorios ofrecidos por PentestIT

Estos entornos virtuales están disponibles en varios niveles, tanto gratuitamente como de pago, que podrás usar sin límites y las 24 horas al día. Obviamente existen recortes en la versión gratuita, básicamente un número de servidores de prácticas y laboratorios más reducido, además de que no cuentan con formación ni asesoramiento por parte de sus especialistas.

En la versión sin coste (Test Lab) podrás disfrutar de lo siguiente:

  • Rollback automático de la Máquina Virtual a un estado funcional
  • Duración: 6 meses
  • Disponibilidad 24×7
  • 1 laboratorio disponible
  • Servidores vulnerables: 8 a 12

Estos laboratorios emulan una infraestructura 100% real y te permiten analizarlos e introducirte en ellos sin temer posibles represalias legales. Se incorporan vulnerabilidades recientes y de diverso tipo: seguridad de red, sistemas operativos y aplicaciones. Es posible romper los sistemas criptográficos, configuraciones, código y usar el factor humano.

La metodología empleada es de tipo caja gris (grey box). Es decir, se nos ofrece algo de información sobre la infraestructura y un texto descriptivo. Se pueden explotar diversos mecanismos de ataque, como servicios de red, protocolos web, buffer overflow o ingeniería social.

Realiza tus primeras pruebas de pentesting

  • Para empezar a dar tus primeros pasos con los diferentes retos disponibles deberás primero registrarte desde la web pentestit.ru. Recibirás un correo electrónico para confirmar tu cuenta, que deberás aceptar.
  • Después deberás instalar la red privada virtual OpenVPN, que usarás para conectarte a la infraestructura de pruebas.

pentestIt - pruebas de pentesting

  • Cuando hayas confirmado tu cuenta, recibirás un nombre de usuario y una clave para conectarte a dicha red. Además, descargarás un certificado. Pulsa el botón How to connect para más información.

pentestIt - pruebas de pentesting.png 2

  • Ahora deberás pulsar Join the lab para escoger el laboratorio que quieras iniciar. Cada uno representa un caso diferente.

En mi caso, he realizado algunas pruebas con el laboratorio Test Lab 11, debido a que los anteriores han sido cerrados. Se te presentará un mapa de red del objetivo, con algunas IPs e información adicional, enlaces a redes sociales y foro y una barra de progreso, que representa el número de logros que has obtenido.

pentestIt - pruebas de pentesting 1

Los logros se resuelven capturando tokens (según el objetivo obtendremos uno diferente) y que se debn verificar en la parte superior donde dice CHECK TOKEN.

Mapa de red en pentestIt - pruebas de pentesting 3

 

En mi caso, he empezado por hacer unas pruebas con Nmap para intentar averiguar los puertos abiertos y sistemas operativos visibles en el área objetivo.

A partir de aquí, será cosa vuestra el qué y el cómo. Es lo divertido de este sistema, que no existe una única forma de resolver los casos y esto ofrece muchas posibilidades. Espero que os haya gustado este recurso para practicar ethical hacking / pentesting y que le saquéis provecho ?

Fuente:
protegermipc.net