
Un conjunto de funciones para aumentar la productividad al hackear con Bash
bashacks es una colección de funciones de bash probablemente útiles para programadores, analistas de seguridad y usuarios generales que necesitan operaciones de bajo nivel.
De hecho, no hay nada realmente nuevo en bashacks; todas las funciones están escritas usando software existente en sistemas tipo UNIX. Sin embargo, te permite usar comandos más cortos para realizar tareas que normalmente requerirían múltiples comandos.
Usa el comando make para generar un solo archivo que contenga todas las funciones y luego haz source de él:
make
source bashacks.sh
Eso es todo. Ahora puedes ver las funciones disponibles desde una nueva terminal escribiendo bh_ y presionando Tab.
Si quieres hacerlo persistente, agrégala a tu ~/.bash_profile:
echo "source $(pwd)/bashacks.sh" >> ~/.bash_profile
Hay alguna, pero está desactualizada. ¡Los PRs son bienvenidos!
¿Cuál es la hora actual en Epoch?
$ bh_epoch
1522324129
Añadir alfabéticamente 4 a 'f'
$ bh_charcalc f + 4
j
Verificar mi dirección IP externa
$ bh_myip
177.212.113.13
Crear un esqueleto básico de programa en C
$ bh_skel_c > hello.c
$ cat hello.c
Esto generaría:
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
Calcular sumas de verificación comunes para archivos
$ bh_hashes /bin/ip*
387478f58a0669173fb6557d392a58e9 /bin/ip
1dd0f3b100bd6efc4664da0cdefff801d7d2efd8 /bin/ip
1d418ae3a767280c7fc6026a25e5bb9774c0e8afc7b3387b547765b62cbe578f /bin/ip
78868acd29e4a33194fb786f6589d3d1 /bin/ipcmk
8c22a129ff4b5748cc62222a93ba8471d7fdce19 /bin/ipcmk
34a068d7f85e85746b3fc98502fa96a734cc51f3a9d49cad92911e8f239bd9c9 /bin/ipcmk
69c2bedc20e77c039912c9d5e7af33db /bin/ipcrm
7992a936b28359d7f087a448d2b8a2418ef4f112 /bin/ipcrm
cded383eb3b74467409c1731c2804350fe3d1123bdac7304c1c6f3af9e7976f7 /bin/ipcrm
499f17765c0aa55ac99739c9bcac1d0c /bin/ipcs
c476949e77ef8710398fd8ec4f78c8cf1d76a420 /bin/ipcs
33c77a5b625f4de919f55dc24207645d219a2fde2e0b92be27c5cda8c662cd72 /bin/ipcs
6a738c5c2506f7e87c9458e0c3df378f /bin/iptables-xml
ba97af2e429aca6beb5a2b8861e370bbf874dee9 /bin/iptables-xml
cb8c10461da5247e8d6d63a123ba563df95ae1e78f29e1717eb8bb02c2ca045b /bin/iptables-xml
Encontrar archivos por tipo MIME (ignora la extensión del archivo):
$ bh_findmime -elf /bin | head
/bin/[
/bin/addpart
/bin/appres
/bin/apt
/bin/apt-cache
/bin/apt-cdrom
/bin/apt-config
/bin/apt-extracttemplates
/bin/apt-ftparchive
/bin/apt-get
Podrías canalizar los resultados a xargs para calcular sumas de verificación rápidamente:
$ bh_findmime -pe ~/Downloads/ | xargs shasum
d9e49c4209087170e36cbef689d96240d736cf3b /Users/menteb/Downloads/CSCWCNG.dll
50dfeea02e89f41caf52df152c7cb923c667bffc /Users/menteb/Downloads/Receitanet-1.10.exe
86a5f89d43ab11456fb817aeceb14b83cc6c2608 /Users/menteb/Downloads/Xojo2017r3Setup.exe.opdownload
Convertir una cadena a hexadecimal en varios formatos de salida
$ bh_str2hex mentebinaria
6d 65 6e 74 65 62 69 6e 61 72 69 61
$ bh_str2hex -x mentebinaria
\x6d\x65\x6e\x74\x65\x62\x69\x6e\x61\x72\x69\x61
$ bh_str2hex -c mentebinaria
{ 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x69, 0x61 }
Hay un manejo de errores muy básico en bashacks. Si una función no recibe los argumentos que necesita, simplemente devuelve 1.
Hay mucho más. Instálalo y compruébalo por ti mismo. :)
En algunas funciones de cadenas tienes que escapar los caracteres especiales porque bash intentará interpretarlos. Ve el siguiente ejemplo usando la función bh_strxor:
$ bh_strxor 0x41 fernando
'$3/ /%.
$ bh_strxor 0x41 "'\$3/ /%." # string between double quotes and dollar sign escaped
fernando
Muchas funciones de bashacks usan la característica de separación de palabras de bash, por lo que no funcionan por defecto en Zsh. Sin embargo, puedes configurar Zsh para que realice la separación de palabras con el siguiente comando:
$ setopt sh_word_split
Entonces las cosas deberían funcionar.