Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mofos — Framework de manipulation de machines virtuelles | Kitploit
Outils/GitHubGitHub/synacktiv/mofos
Scripting et AutomatisationVirtualisation de SécuritéSécurité RéseauTests d'IntrusionUtilitaires et FrameworksRed Teaming
GitHubsynacktiv/mofos

mofos

Framework de manipulation de machines virtuelles

Voir le dépôt
108674il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
  • mofos
    • Concept
    • Installation
    • Configurer l'hôte
      • Session système QEMU/KVM
      • Considérations de sécurité
    • Configuration de Mofos
    • Installer un modèle
      • Configurer le pare-feu
      • Installer
      • Importer
    • Créer le disque vide de la couche supérieure
    • Créer une machine virtuelle
    • Personnalisation
      • Modèle - hook install
      • Machine virtuelle - hook new
      • Machine virtuelle - hook start
    • Fonctionnalités
      • Configurer une notification au démarrage ou à l'arrêt des machines virtuelles
      • Presse-papiers
      • Configurer le routage entre les machines
      • Configurer le tunneling via les machines de pentest
      • Gestion USB
      • Gestion des périphériques PCI
      • Dossiers partagés
    • Machines Windows
    • Autocomplétion
    • Chevauchement des adresses IP

mofos

Mofos est un outil conçu pour créer, exécuter et gérer des machines virtuelles. Il s'appuie sur Libvirt/QEMU/KVM et Python, ce qui le rend compatible avec toute distribution Linux. Fortement inspiré de Qubes OS (https://www.qubes-os.org/), Mofos vise à reproduire nombre de ses fonctionnalités.

L'outil a été largement testé sur Debian avec des machines virtuelles basées sur Debian. Bien que d'autres distributions Linux devraient fonctionner, une configuration supplémentaire peut être nécessaire. Plus de détails à venir.

Mofos propose un ensemble de fonctionnalités axées sur la gestion sécurisée des machines virtuelles, notamment :

  • Une intégration transparente des fenêtres via Xpra.
  • Un système de presse-papiers permettant d'envoyer et de recevoir le contenu du presse-papiers entre l'hôte et les machines virtuelles.
  • Une communication SSH avec les machines virtuelles.
  • Des restrictions réseau par défaut, avec des options flexibles pour router ou tunnelliser le trafic d'une machine virtuelle à travers d'autres machines ou des serveurs distants.

Concept

Une machine mofos se compose de deux disques combinés à l'aide d'overlayfs. Le premier disque, appelé couche inférieure, est un disque modèle en lecture seule, tandis que le second disque stocke toutes les modifications apportées par la machine virtuelle. Ce disque modèle est partagé entre plusieurs machines virtuelles. Par conséquent, créer une nouvelle machine virtuelle ne nécessite que le clonage d'un disque vide déjà partitionné pour contenir les données modifiées. Cette approche garantit que les nouvelles machines virtuelles peuvent être créées rapidement, tout en permettant de mettre à jour le modèle indépendamment. Toute mise à jour du modèle prendra effet sur les machines virtuelles dépendantes lors de leur prochain redémarrage.

Installation

Selon la distribution Linux, le Makefile peut être utilisé pour générer un paquet deb ou installer directement les fichiers.``` make deb apt install ./mofos-VERSION.deb

Lors de l'installation via `apt`, divers paramètres vous seront demandés. Les options par défaut peuvent généralement être acceptées. Le seul paramètre qui requiert votre attention est l'adresse de sous-réseau utilisée par le réseau libvirt mofos (par défaut : `192.168.90.0/24`).

OU

Installez les dépendances suivantes :
- guestfs-tools
- libnotify-bin
- libvirt
- libvirt-clients
- libvirt-daemon
- make
- python3-click
- python3-click-completion
- python3-colorama
- python3-cryptography
- python3-dbus
- python3-jinja2
- python3-lxml
- python3-prettytable
- python3-pyroute2
- python3-tqdm
- qemu-system-common 
- qemu-system-modules-spice
- socat
- spice-client-gtk
- sudo
- virtinst
- virt-install
- virtiofsd
- virt-manager
- virt-viewer```
make install_files

Selon la distribution, les fichiers Python copiés dans /usr/lib/python3/dist-packages peuvent ne pas être détectés par l'interpréteur Python et doivent être placés ailleurs. Par exemple, sur Fedora, les fichiers Python doivent être copiés dans /usr/lib/python3.11/site-packages.

[!WARNING] Attention, depuis Debian trixie, xpra n'est plus empaqueté, vous devez l'installer manuellement depuis ses dépôts personnalisés. Voir https://github.com/Xpra-org/xpra/wiki/Download#-for-debian-based-distributions pour des instructions détaillées.

Configurer l'hôte

Session système QEMU/KVM

Mofos utilise la session système QEMU/KVM, donc pour permettre à la commande virsh d'accéder aux machines virtuelles et aux ressources associées, définissez la variable d'environnement LIBVIRT_DEFAULT_URI sur qemu:///system :```console export LIBVIRT_DEFAULT_URI=qemu:///system

### Considérations de sécurité

L'utilisation de sessions système QEMU/KVM améliore l'isolation entre les machines virtuelles hôte et invitées en exécutant les instances qemu sous un utilisateur dédié (`libvirt-qemu`) et en appliquant des profils de sécurité spécifiques à chaque instance.

Cependant, par défaut, les utilisateurs ordinaires ne peuvent pas interagir avec le socket système `libvirtd` pour gérer les machines, les réseaux et d'autres ressources. Pour obtenir l'accès, les utilisateurs doivent soit être membres du groupe Unix libvirt, soit utiliser sudo. Historiquement, des vulnérabilités d'élévation de privilèges locaux ont exploité l'appartenance au groupe libvirt pour obtenir les privilèges root.

Pour atténuer ces risques, ce dépôt fournit un profil AppArmor renforcé pour le processus `libvirtd` sur les systèmes utilisant AppArmor. Ce profil restreint considérablement les endroits où `libvirtd` peut écrire des fichiers et les programmes qu'il peut exécuter.

De plus, des règles `polkit` sont incluses pour mieux contrôler les actions autorisées pour les membres du groupe `libvirt`.

Notez que les profils AppArmor sont empaquetés dans le paquet `deb` mais ne sont pas installés par la cible `install_files` du Makefile et doivent donc être installés séparément.

## Configuration de Mofos

Mofos nécessite un fichier de configuration situé dans `$HOME/.config/mofos/config.toml` avec des paramètres minimaux pour fonctionner correctement. Un exemple de configuration minimale se trouve dans `/usr/share/mofos/config.minimal.toml`, tandis qu'une configuration plus complète est documentée dans `/usr/share/mofos/config.sample.toml`.

L'erreur suivante indique que le fichier de configuration n'a pas été trouvé :```
[-] Copy the sample configuration file from /usr/share/mofos/config.minimal.toml to ~/.config/mofos/config.toml

L'erreur suivante indique que l'utilisateur actuel n'est pas membre du groupe libvirt :``` [-] libvirtError("authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'")

Les principaux paramètres de configuration à personnaliser dans les fichiers de configuration sont les suivants :
- key (chemin): Le fichier de clé privée SSH utilisé pour accéder aux machines virtuelles. Il est recommandé de créer une clé dédiée à cet effet.
- user (chaîne): Le nom d'utilisateur pour l'accès SSH aux machines virtuelles.
- root_password (valeur hachée): Le mot de passe root haché à définir lors de l'installation d'un nouveau modèle.
- root_ssh_pubkey (chaîne): La clé publique SSH à installer dans le répertoire de l'utilisateur root lors de l'installation du modèle.
Télécharger l’outil