
Una raccolta di script che potrebbero esserti utili durante le tue attività di lotta per la libertà.
Questo repository contiene script che potrebbero esserti utili durante le tue attività di lotta per la libertà. Verrà aggiornato occasionalmente, quando mi trovo nella necessità di qualcosa che non trovo online. Tutto qui è distribuito secondo i termini della GPL v3 License.
Contributi e pull request sono molto graditi.
Un pulitore di log che rimuove voci incriminanti in:
/var/run/utmp, /var/log/wtmp, /var/log/btmp (controlla l'output dei comandi who, w e last)/var/log/lastlog (controlla l'output del comando lastlog)/var/**/*.log (.log.1, .log.2.gz, ecc. inclusi)Le voci vengono cancellate in base a un indirizzo IP e/o hostname associato.
Viene prestata particolare attenzione per evitare di rompere i descrittori di file mentre si manomettono i log. Ciò significa che i log continuano a essere scritti dopo essere stati manomessi, rendendo la pulizia molto meno evidente. Tutto il lavoro viene eseguito su un'unità tmpfs e tutti i file creati vengono cancellati in modo sicuro.
Avvertenza: Lo script è stato testato solo su Linux e non sarà in grado di pulire le voci UTMP su altre varianti di Unix.
usage: nojail.py [-h] [--user USER] [--ip IP] [--hostname HOSTNAME] [--verbose] [--check] [log_files [log_files ...]]
Stealthy log file cleaner.
positional arguments: log_files Specify any log files to clean in addition to /var/**/*.log.
optional arguments: -h, --help show this help message and exit --user USER, -u USER The username to remove from the connexion logs. --ip IP, -i IP The IP address to remove from the logs. --hostname HOSTNAME The hostname of the user to wipe. Defaults to the rDNS of the IP. --regexp REGEXP, -r REGEXP A regular expression to select log lines to delete (optional)
--verbose, -v Print debug messages.
--check, -c If present, the user will be asked to confirm each
deletion from the logs.
--daemonize, -d Start in the background and delete logs when the
current session terminates. Implies --self-delete.
--self-delete, -s Automatically delete the script after its execution.
Per impostazione predefinita, se non vengono forniti argomenti, lo script tenterà di determinare l'indirizzo IP da epurare basandosi sulla variabile d'ambiente `SSH_CONNECTION`. Qualsiasi voce corrispondente al DNS inverso di quell'IP verrà rimossa.
#### Esempio base:```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check
...rimuoverà tutte le voci per l'utente root dove l'indirizzo IP è 151.80.119.32 o l'hostname è manalyzer.org.
All'utente verrà anche chiesto di confermare prima di eliminare ogni record a causa dell'opzione --check. Infine, il file
/etc/app/logs/access.log verrà elaborato oltre a tutti quelli predefiniti.
Se vengono fornite cartelle come argomenti posizionali (ad esempio /etc/app/logs/), lo script le esaminerà ricorsivamente e
pulirà qualsiasi file con estensione .log (incluse *.log.1, *.log.2.gz, ecc.).
Potresti anche voler rimuovere righe arbitrarie dal file di log. Per farlo, usa l'opzione --regexp. Ad esempio,
la seguente riga di comando cercherà tutte le richieste POST ai file PHP dall'IP specificato:```
./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"
#### Daemonizzare lo script```
./nojail.py --daemonize
Supponendo che ciò venga eseguito da una connessione SSH, questo comando eliminerà tutti i log relativi all'attività dell'utente corrente con l'indirizzo IP e l'hostname rilevati subito dopo la chiusura della connessione. Questo script si eliminerà automaticamente in seguito. Tieni presente che non avrai alcuna possibilità di ricevere messaggi di errore dall'applicazione. Si consiglia di provare a eliminare i log una volta prima di avviare il demone per assicurarsi che gli argomenti specificati siano corretti. Se ti trovi in una shell senza TTY, lo script non sarà in grado di rilevare quando la sessione termina. Verrai avvisato che i log verranno eliminati entro 60 secondi e che dovresti disconnetterti prima di allora (per evitare di creare ulteriori voci dopo l'esecuzione dello script).
root@proxy:~# ./nojail.py [ ] Cleaning logs for root (XXX.XXX.XXX.XXX - domain.com). [] 2 entries removed from /var/run/utmp! [] 4 entries removed from /var/log/wtmp! [ ] No entries to remove from /var/log/btmp. [] Lastlog set to 2017-01-09 17:12:49 from pts/0 at lns-bzn-XXX-XXX-XXX-XXX-XXX.adsl.proxad.net [] 4 lines removed from /var/log/nginx/error.log! [] 11 lines removed from /var/log/nginx/access.log! [] 4 lines removed from /var/log/auth.log!
### Dichiarazione di non responsabilità
Questo script è fornito senza alcuna garanzia.
Non incolpatemi se non cancella tutte le tracce di qualcosa che non avreste dovuto fare in primo luogo.
## share.sh
Uno script portatile e sicuro per la condivisione di file. Mentre si lotta per la libertà, generalmente non è possibile trasferire file tramite scp all'interno di macchine compromesse. Sono necessari metodi alternativi per caricare file, ma la maggior parte dei servizi di condivisione sono troppo restrittivi oppure non forniscono un modo per recuperare facilmente i file dalla riga di comando. Considerazioni di sicurezza possono anche impedire alle persone di caricare file sensibili su provider cloud per timore che ne conservino una copia per sempre.
Questo piccolo script bash portatile si basa su [transfer.sh](https://transfer.sh) per risolvere il problema. Esso...
* Cripta i file prima di caricarli (AES-256-CBC simmetrico).
* Utilizza automaticamente `torify` se presente sul sistema per un maggiore anonimato.
Le uniche dipendenze necessarie sono `openssl` e `curl` o `wget`.
### Utilizzo```
root@proxy:~# ./share.sh ~/file_to_share "My_Secure_Encryption_Key!"
Success! Retrieval command: ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
root@proxy:~# ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
File retrieved successfully!
Argomenti aggiuntivi durante il caricamento ti permettono di controllare il numero massimo di download consentiti per il file (-m) e per quanti giorni transfer.sh lo terrà (-d). Il valore predefinito per entrambe queste opzioni è 1.
Attenzione: Non usare spazi nella chiave di crittografia, altrimenti verrà presa in considerazione solo la prima parola della tua passphrase. Ciò è dovuto al modo in cui getopts gestisce gli argomenti (credo). Le pull request sono benvenute se qualcuno è interessato a risolvere questo problema.