
Une collection de scripts qui peuvent être utiles lors de vos activités de lutte pour la liberté.
Ce dépôt contient des scripts qui peuvent vous être utiles lors de vos activités de lutte pour la liberté. Il sera mis à jour occasionnellement, lorsque je me retrouve dans le besoin de quelque chose que je ne trouve pas en ligne. Tout ici est distribué sous les termes de la licence GPL v3.
Les contributions et les pull requests sont les bienvenues.
Un nettoyeur de logs qui supprime les entrées compromettantes dans :
/var/run/utmp, /var/log/wtmp, /var/log/btmp (contrôle la sortie des commandes who, w et last)/var/log/lastlog (contrôle la sortie de la commande lastlog)/var/**/*.log (.log.1, .log.2.gz, etc. inclus)Les entrées sont supprimées en fonction d'une adresse IP et/ou d'un nom d'hôte associé.
Un soin particulier est apporté pour éviter de casser les descripteurs de fichiers lors de la manipulation des logs. Cela signifie que les logs continuent d'être écrits après avoir été modifiés, rendant le nettoyage beaucoup moins visible. Tout le travail s'effectue dans un lecteur tmpfs et tous les fichiers créés sont effacés de manière sécurisée.
Avertissement : Le script n'a été testé que sous Linux et ne pourra pas nettoyer les entrées UTMP sur d'autres saveurs d'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.
Par défaut, si aucun argument n'est fourni, le script tentera de déterminer l'adresse IP à nettoyer en se basant sur la variable d'environnement `SSH_CONNECTION`. Toute entrée correspondant au DNS inverse de cette IP sera également supprimée.
#### Exemple de base :```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check
...supprimera toutes les entrées pour l'utilisateur root où l'adresse IP est 151.80.119.32 ou le nom d'hôte est manalyzer.org.
L'utilisateur sera également invité avant de supprimer chaque enregistrement en raison de l'option --check. Enfin, le fichier
/etc/app/logs/access.log sera traité en plus de tous les fichiers par défaut.
Si des dossiers sont donnés comme arguments positionnels (/etc/app/logs/ par exemple), le script parcourra récursivement ces dossiers et
nettoiera tout fichier avec l'extension .log (*.log.1, *.log.2.gz, etc. inclus).
Vous pouvez également souhaiter supprimer des lignes arbitraires du fichier journal. Pour ce faire, utilisez l'option --regexp. Par exemple,
la ligne de commande suivante recherchera toutes les requêtes POST vers des fichiers PHP à partir de l'IP spécifiée :```
./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"
#### Démonisation du script```
./nojail.py --daemonize
En supposant que cela est exécuté depuis une connexion SSH, cette commande supprimera tous les journaux concernant l'activité de l'utilisateur actuel avec l'adresse IP et le nom d'hôte détectés immédiatement après la fermeture de la connexion. Ce script s'auto-supprimera ensuite automatiquement. Veuillez noter que vous n'aurez aucune possibilité de recevoir des messages d'erreur de l'application. Il est recommandé d'essayer de supprimer les journaux une fois avant de lancer le démon pour vous assurer que les arguments spécifiés sont corrects. Si vous êtes dans un shell sans TTY, le script ne pourra pas détecter la fin de la session. Vous serez informé que les journaux seront supprimés dans 60 secondes, et que vous devriez vous déconnecter avant (ou risquer de créer plus d'entrées après l'exécution du 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!
### Avertissement
Ce script est fourni sans aucune garantie.
Ne me blâmez pas s'il n'efface pas toutes les traces de quelque chose que vous n'auriez pas dû faire en premier lieu.
## share.sh
Un script de partage de fichiers portable et sécurisé. En lutte pour la liberté, il n'est généralement pas possible de copier des fichiers via scp dans des machines compromises. D'autres moyens de télécharger des fichiers sont nécessaires, mais la plupart des services de partage sont soit trop restrictifs, soit ne permettent pas de récupérer facilement les fichiers depuis la ligne de commande. Des considérations de sécurité peuvent également empêcher les gens de télécharger des fichiers sensibles vers des fournisseurs cloud de peur qu'ils en conservent une copie indéfiniment.
Ce petit script bash portable s'appuie sur [transfer.sh](https://transfer.sh) pour résoudre ce problème. Il...
* Chiffre les fichiers avant de les télécharger (AES-256-CBC symétrique).
* Utilise automatiquement `torify` s'il est présent sur le système pour un anonymat accru.
Les seules dépendances nécessaires sont `openssl` et soit `curl` ou `wget`.
### Utilisation```
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!
Additional arguments during the upload allow you to control the maximum number of downloads allowed for the file (-m)
and how many days transfer.sh will keep it (-d). The default value for both these options is 1.
Warning: Do not use spaces in the encryption key, or only the first word of your passphrase will be taken into
account. This is due to the way getopts handles arguments (I think). Pull requests are welcome if anyone is interested in
fixing this.