
Jok3r - Framework de Pentest Réseau et Web
.. raw:: html
.. image:: ./pictures/logo.png
.. raw:: html
.. image:: https://img.shields.io/badge/python-3.6-blue.svg :target: https://www.python.org/downloads/release/python-366/ :alt: Python 3.6
.. image:: https://readthedocs.org/projects/jok3r/badge/?version=latest :target: https://jok3r.readthedocs.io/en/latest/ :alt: Documentation ReadTheDocs
.. image:: https://img.shields.io/docker/automated/koutto/jok3r.svg :target: https://hub.docker.com/r/koutto/jok3r/ :alt: Docker Automated build
.. image:: https://img.shields.io/docker/build/koutto/jok3r.svg :alt: Docker Build Status
.. raw:: html
Jok3r est une application CLI Python3 destinée à aider les auditeurs de sécurité dans les tests d'intrusion d'infrastructures réseau et de sécurité web en boîte noire.
Son objectif principal est de gagner du temps sur tout ce qui peut être automatisé dans le réseau/web à auditer afin de profiter de plus de temps pour des choses plus intéressantes et plus stimulantes.
Pour y parvenir, j'ai combiné des outils de sécurité open source pour exécuter plusieurs contrôles de sécurité sur tous les services réseau courants.
Gestion des outils :
Automatisation des attaques :
Gestion de mission / base de données locale :
Jok3r a été construit avec l'ambition d'être facilement et rapidement personnalisable : Outils, contrôles de sécurité, services réseau supportés... peuvent être facilement ajoutés/modifiés/supprimés en éditant des fichiers de configuration avec une syntaxe simple.
La façon recommandée d'utiliser Jok3r est dans un conteneur Docker, pas de souci de dépendances lors de l'installation des divers outils d'audit.
.. image:: https://raw.githubusercontent.com/koutto/jok3r/master/pictures/docker-logo.png
Une image Docker est disponible sur Docker Hub et est automatiquement reconstruite à chaque mise à jour : https://hub.docker.com/r/koutto/jok3r/. Basée initialement sur l'image Docker Linux Kali/Debian officielle (kalilinux/kali-linux-docker).
.. image:: https://images.microbadger.com/badges/image/koutto/jok3r.svg :target: https://microbadger.com/images/koutto/jok3r :alt: Taille de l'image Docker
Tirer l'image Docker Jok3r :
.. code-block:: console
sudo docker pull koutto/jok3r
Exécuter le conteneur Docker mis à jour :
.. code-block:: console
sudo docker run -i -t --name jok3r-container -w /root/jok3r --net=host koutto/jok3r
Important : l'option --net=host est requise pour partager l'interface de l'hôte. Nécessaire pour les connexions inverses (par exemple, pinger le conteneur lors du test de RCE, obtenir un shell inverse).
La boîte à outils Jok3r est prête à l'emploi !
.. code-block:: console
sudo docker start -i jok3r-container
.. code-block:: console
sudo docker exec -it jok3r-container bash
Afficher tous les outils
.. code-block:: console
python3 jok3r.py toolbox --show-all
Installer tous les outils
.. code-block:: console
python3 jok3r.py toolbox --install-all --fast
Mettre à jour tous les outils
.. code-block:: console
python3 jok3r.py toolbox --update-all --fast
Liste des services supportés
.. code-block:: console
python3 jok3r.py info --services
Afficher les contrôles de sécurité pour HTTP
.. code-block:: console
python3 jok3r.py info --checks http
Créer une nouvelle mission dans la base de données locale.
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" ajoutée avec succès
[*] La mission sélectionnée est MiAuditoria
jok3rdb[MiAuditoria]>
Exécuter des contrôles de sécurité sur une URL et ajouter les résultats à la mission
.. code-block:: console
python3 jok3r.py attack -t https://www.sapos.com/webapp/ --add MiAuditoria
Exécuter des contrôles de sécurité sur le service MSSQL (sans interaction utilisateur) et ajouter les résultats à la mission.
.. code-block:: console
python3 jok3r.py attack -t 190.212.190.133:1433 -s mssql --add MiAuditoria --fast
Importer les hôtes/services des résultats Nmap dans le périmètre de la mission
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission MiAuditoria
[*] La mission sélectionnée est maintenant MiAuditoria
jok3rdb[MiAuditoria]> nmap results.xml
Vérifier la sécurité pour les services de la mission donnée et stocker les résultats dans la base de données
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria --fast
Vérifier la sécurité uniquement sur les services FTP sur les ports 21/tcp et 2121/tcp de la mission
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=21,2121;service=ftp" --fast
Vérifier la sécurité uniquement sur les services FTP sur le port 2121/tcp et tous les services HTTP sur 190.212.190.133 de la mission
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=2121;service=ftp" -f "ip=190.212.190.133;service=http"
Vous commencez un audit avec plusieurs serveurs. Voici un exemple fréquent dans Jok3r :
Exécuter un scan Nmap sur les serveurs courants
Créer une nouvelle mission (disons "MiAuditoria") dans la base de données locale :
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" ajoutée avec succès
[*] La mission sélectionnée est MiAuditoria
jok3rdb[MiAuditoria]>
3. Importer vos résultats de scan Nmap :
.. code-block:: console
jok3rdb[MiAuditoria]> nmap resultados.xml
4. Vous pouvez avoir un aperçu rapide de tous les services et hôtes, ajouter des commentaires, ajouter quelques identifiants si vous avez déjà des connaissances sur les cibles (test d'intrusion boîte grise), etc.
.. code-block:: console
jok3rdb[MiAuditoria]> hosts
[...]
jok3rdb[MiAuditoria]> services
[...]
5. Maintenant, effectuez des contrôles de sécurité sur certaines cibles. Par exemple, pour exécuter des contrôles pour les services Java-RMI, vous pouvez exécuter la commande suivante :
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "service=java-rmi" --fast
6. Vous pouvez voir les résultats des contrôles de sécurité en direct lorsque les outils sont exécutés ou ultérieurement depuis la base de données en utilisant la commande suivante :
.. code-block:: console
jok3rdb[MayhemProject]> results
La documentation est disponible sur : bientôt...