
Um conjunto de funções para aumentar a produtividade ao hackear com Bash
bashacks é uma coleção de funções bash que provavelmente serão úteis para programadores, analistas de segurança e usuários em geral que precisam de operações de baixo nível.
Na verdade, não há nada realmente novo no bashacks; todas as funções são escritas usando software existente em sistemas do tipo UNIX. No entanto, ele permite usar comandos mais curtos para realizar tarefas que normalmente exigiriam múltiplos comandos.
Use o comando make para gerar um único arquivo contendo todas as funções e faça source dele:
make
source bashacks.sh
Isso é tudo. Você agora pode verificar as funções disponíveis a partir de um novo terminal digitando bh_ e pressionando Tab.
Se quiser torná-lo persistente, adicione-o ao seu ~/.bash_profile:
echo "source $(pwd)/bashacks.sh" >> ~/.bash_profile
Há alguma, mas está desatualizada. PRs são bem-vindos!
Qual é o horário atual em Epoch?
$ bh_epoch
1522324129
Adicione 4 alfabeticamente a 'f'
$ bh_charcalc f + 4
j
Verifique meu endereço IP externo
$ bh_myip
177.212.113.13
Crie um esqueleto básico de programa C
$ bh_skel_c > hello.c
$ cat hello.c
Isso geraria:
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
Calcule somas de verificação comuns para arquivos
$ 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
Encontre arquivos por tipo MIME (ignora extensão do arquivo):
$ 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
Você pode canalizar os resultados para o xargs para calcular somas de verificação rapidamente:
$ 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
Converta uma string para hex em vários formatos de saída
$ 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 }
Há um tratamento de erros muito básico no bashacks. Se uma função não receber os argumentos que precisa, ela simplesmente retorna 1.
Há muito mais. Instale e veja por si mesmo. :)
Em algumas funções de string você precisa escapar caracteres especiais porque o bash tentará interpretá-los. Veja o seguinte exemplo usando a função bh_strxor:
$ bh_strxor 0x41 fernando
'$3/ /%.
$ bh_strxor 0x41 "'\$3/ /%." # string entre aspas duplas e cifrão escapado
fernando
Muitas funções do bashacks usam o recurso de divisão de palavras (word splitting) do bash, por isso não funcionam por padrão no Zsh. No entanto, você pode configurar o Zsh para realizar a divisão de palavras com o seguinte comando:
$ setopt sh_word_split
Então as coisas devem funcionar.