
Un insieme di funzioni per aumentare la produttività mentre si fa hacking con Bash
bashacks è una raccolta di funzioni bash probabilmente utili per programmatori, analisti di sicurezza e utenti generici che necessitano di operazioni di basso livello.
In realtà, non c'è nulla di veramente nuovo in bashacks; tutte le funzioni sono scritte usando software già esistente nei sistemi UNIX-like. Tuttavia, ti consente di usare comandi più brevi per eseguire attività che normalmente richiederebbero più comandi.
Usa il comando make per generare un singolo file contenente tutte le funzioni e fai source di esso:
make
source bashacks.sh
Tutto qui. Ora puoi controllare le funzioni disponibili da un nuovo terminale digitando bh_ e premendo Tab.
Se vuoi renderlo permanente, aggiungilo al tuo ~/.bash_profile:
echo "source $(pwd)/bashacks.sh" >> ~/.bash_profile
C'è della documentazione, ma è obsoleta. Le PR sono benvenute!
Qual è l'ora corrente in Epoch?
$ bh_epoch
1522324129
Aggiungi alfabeticamente 4 a 'f'
$ bh_charcalc f + 4
j
Controlla il mio indirizzo IP esterno
$ bh_myip
177.212.113.13
Crea uno scheletro di base di un programma C
$ bh_skel_c > hello.c
$ cat hello.c
Questo produrrebbe:
#include <stdio.h>
int main(int argc, char *argv[]) {
return 0;
}
Calcola i checksum comuni per i file
$ 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
Trova file per tipo MIME (ignora l'estensione del file):
$ 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
Potresti passare i risultati a xargs per calcolare rapidamente i checksum:
$ 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
Converti una stringa in esadecimale in vari formati di output
$ 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 }
C'è una gestione degli errori molto basilare in bashacks. Se una funzione non riceve gli argomenti di cui ha bisogno, restituisce semplicemente 1.
C'è molto di più. Installalo e vedi di persona. :)
In alcune funzioni per stringhe devi eseguire l'escape dei caratteri speciali perché bash proverà a
interpretarli. Vedi il seguente esempio usando la funzione bh_strxor:
$ bh_strxor 0x41 fernando
'$3/ /%.
$ bh_strxor 0x41 "'\$3/ /%." # stringa tra doppi apici e carattere dollar sign escapato
fernando
Molte funzioni di bashacks usano la funzionalità di word splitting di bash, quindi non funzionano di default in Zsh. Tuttavia, puoi configurare Zsh per eseguire il word splitting con il seguente comando:
$ setopt sh_word_split
Poi le cose dovrebbero funzionare.