
Una colección de scripts que pueden ser útiles durante tus actividades de lucha por la libertad.
Este repositorio contiene scripts que pueden ser útiles durante tus actividades de lucha por la libertad. Se actualizará ocasionalmente, cuando me encuentre en necesidad de algo que no pueda encontrar en línea. Todo aquí se distribuye bajo los términos de la Licencia GPL v3.
Las contribuciones y solicitudes de pull son muy bienvenidas.
Un limpiador de registros que elimina entradas incriminatorias en:
/var/run/utmp, /var/log/wtmp, /var/log/btmp (controla la salida de los comandos who, w y last)/var/log/lastlog (controla la salida del comando lastlog)/var/**/*.log (incluye .log.1, .log.2.gz, etc.)Las entradas se eliminan basándose en una dirección IP y/o nombre de host asociado.
Se tiene especial cuidado para no romper los descriptores de archivo mientras se manipulan los registros. Esto significa que los logs continúan escribiéndose después de haber sido manipulados, haciendo que la limpieza sea mucho menos notoria. Todo el trabajo se realiza en una unidad tmpfs y cualquier archivo creado se borra de forma segura.
Advertencia: El script solo se ha probado en Linux y no podrá limpiar entradas UTMP en otras variantes de 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.
Por defecto, si no se proporcionan argumentos, el script intentará determinar la dirección IP a limpiar basándose en la variable de entorno `SSH_CONNECTION`. Cualquier entrada que coincida con la DNS inversa de esa IP también será eliminada.
#### Ejemplo básico:```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check
...eliminará todas las entradas para el usuario root donde la dirección IP sea 151.80.119.32 o el hostame sea manalyzer.org.
El usuario también será preguntado antes de eliminar cada registro debido a la opción --check. Finalmente, el archivo
/etc/app/logs/access.log será procesado además de todos los predeterminados.
Si se proporcionan carpetas como argumentos posicionales (/etc/app/logs/ por ejemplo), el script las recorrerá recursivamente y
limpiará cualquier archivo con la extensión .log (*.log.1, *.log.2.gz, etc. incluidos).
También es posible eliminar líneas arbitrarias del archivo de registro. Para hacerlo, use la opción --regexp. Por ejemplo,
la siguiente línea de comando buscará todas las solicitudes POST a archivos PHP desde la IP especificada:```
./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"
#### Demonizando el script```
./nojail.py --daemonize
Suponiendo que esto se ejecuta desde una conexión SSH, este comando eliminará todos los registros relacionados con la actividad del usuario actual con la dirección IP y el nombre de host detectados inmediatamente después de que se cierre la conexión. Este script posteriormente se eliminará automáticamente. Tenga en cuenta que no tendrá oportunidad de recibir mensajes de error de la aplicación. Se le recomienda intentar eliminar los registros una vez antes de iniciar el demonio para asegurarse de que los argumentos especificados sean correctos. Si se encuentra en un shell sin TTY, el script no podrá detectar cuándo finaliza la sesión. Se le notificará que los registros se eliminarán en 60 segundos y que debe cerrar sesión antes de ese momento (o corre el riesgo de crear más entradas después de que se haya ejecutado el 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!
### Descargo de responsabilidad
Este script se proporciona sin garantías.
No me culpe si no elimina todos los rastros de algo que no debió haber hecho en primer lugar.
## share.sh
Un script portátil y seguro para compartir archivos. Durante la lucha por la libertad, generalmente no es posible transferir archivos mediante scp a máquinas comprometidas. Se necesitan formas alternativas de subir archivos, pero la mayoría de los servicios de intercambio son demasiado restrictivos o no proporcionan una manera de recuperar archivos fácilmente desde la línea de comandos. Las consideraciones de seguridad también pueden impedir que las personas suban archivos sensibles a proveedores en la nube por temor a que conserven una copia para siempre.
Este pequeño y portátil script de bash se basa en [transfer.sh](https://transfer.sh) para resolver ese problema. …
* Cifra los archivos antes de subirlos (AES-256-CBC simétrico).
* Utiliza automáticamente `torify` si está presente en el sistema para mayor anonimato.
Las únicas dependencias necesarias son `openssl` y `curl` o `wget`.
### Usage```
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!
Los argumentos adicionales durante la subida permiten controlar el número máximo de descargas permitidas para el archivo (-m) y cuántos días transfer.sh lo conservará (-d). El valor predeterminado para ambas opciones es 1.
Advertencia: No uses espacios en la clave de cifrado, o solo se tomará en cuenta la primera palabra de tu contraseña. Esto se debe a la forma en que getopts maneja los argumentos (creo). Las solicitudes de extracción son bienvenidas si alguien está interesado en solucionarlo.