Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/leaningtech/webvm
Virtualisation de SécuritéSécurité RéseauCTFSécurité CloudDevSecOpsApprentissage et Éducation
GitHubleaningtech/webvm

webvm

Machine virtuelle Linux côté client s'exécutant dans le navigateur via WebAssembly, avec réseau Tailscale, images personnalisées basées sur Dockerfile et prise en charge des défis CTF pour l'éducation et le développement en sécurité.

Voir le dépôt
17.2k3.3k10il y a 12 joursVé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
Site web

WebVM

Discord server Issues

Ce dépôt héberge le code source de https://webvm.io, une machine virtuelle Linux qui s'exécute dans votre navigateur.

Essayez le nouvel environnement graphique Alpine / Xorg / i3 : https://webvm.io/alpine.html

Qu'est-ce que WebVM ?

WebVM est un environnement virtuel sans serveur fonctionnant entièrement côté client en HTML5/WebAssembly. Il est conçu pour être compatible avec l'ABI Linux et exécute une distribution Debian non modifiée, y compris de nombreuses chaînes d'outils de développement natives.

WebVM est propulsé par le moteur de virtualisation CheerpX, qui fournit :

  • Compilateur JIT x86 vers WebAssembly
  • Système de fichiers virtuel basé sur des blocs
  • Émulateur d'appels système Linux
  • Exécution sécurisée et cloisonnée côté client

Table des matières

  • Réseau
  • Développement et personnalisation
    • Déployer sur GitHub Pages
    • Service local et configuration d'image
  • Intégration de Claude AI
  • Communauté et support
  • En savoir plus
  • Licence

[!NOTE] Visitez https://webvm.io pour commencer immédiatement dans votre navigateur. Aucune configuration requise.

Pour l'installation locale, les constructions d'images personnalisées et les instructions de fork/déploiement, consultez Développement et personnalisation.

Réseau

WebVM prend en charge l'intégration Tailscale. Ainsi, votre VM de navigateur peut atteindre votre réseau privé et, avec un nœud de sortie, également Internet public.

[!NOTE] Certaines opérations réseau de bas niveau (notamment ICMP utilisé par ping) ne sont actuellement pas disponibles dans cet environnement. Pour les vérifications de connectivité, utilisez curl ou wget.

Réseau local

  1. Ouvrez le panneau "Réseau" depuis la barre latérale
  2. Cliquez sur "Se connecter à Tailscale"
  3. Connectez-vous (créez un compte gratuit sur tailscale.com si nécessaire)
  4. Cliquez sur "Connecter" lorsque vous y êtes invité

WebVM a désormais accès à toutes les machines de votre réseau Tailscale !

Conseils d'utilisation d'Internet

[!TIP] Sur les connexions plus lentes, il peut y avoir un court délai avant l'initialisation. L'état de la connexion est indiqué par un point coloré sur le bouton : orange = réseau local, vert = global/internet. Le texte du bouton affiche votre adresse IP Tailscale une fois connecté.

Pour accéder à Internet public depuis WebVM, configurez un nœud de sortie sur un autre appareil de votre réseau Tailscale :

  1. Suivez le guide rapide des nœuds de sortie Tailscale (sections : "Advertise a device as an exit node")
  2. WebVM utilise automatiquement le nœud de sortie une fois annoncé

Utiliser une clé d'authentification

En alternative à la connexion interactive, ajoutez votre clé d'authentification Tailscale au fragment d'URL :

root@kitploit:~
https://webvm.io/#authKey=<your-ephemeral-key>

Ceci est équivalent à l'option --login-server de Tailscale.

[!TIP] Si vous avez également besoin d'un serveur de contrôle personnalisé, ajoutez controlUrl dans le même fragment d'URL et séparez les valeurs par &, par exemple : #authKey=...&controlUrl=....

Auto-hébergement de Tailscale avec Headscale

Nous prenons également en charge headscale, une implémentation open source auto-hébergée du serveur de contrôle Tailscale. Comme Headscale n'ajoute pas d'en-têtes CORS par défaut, vous aurez besoin d'un proxy devant lui. Consultez la documentation de configuration du proxy inverse Headscale pour un exemple.

Une fois prêt, ajoutez la ligne suivante à votre bloc location / dans votre fichier de configuration nginx.

root@kitploit:~
if ($http_origin = "https://yourdomain.com") {
    add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Credentials' 'true' always;
}

Accédez ensuite à WebVM avec :

root@kitploit:~
https://yourdomain.com/#controlUrl=<your-headscale-url>

Développement et personnalisation

[!NOTE] Les utilisateurs ont des privilèges root par défaut. sudo n'est pas installé, mais il peut être facilement ajouté au Dockerfile si nécessaire.

Déployer sur GitHub Pages

Il s'agit d'un workflow simple et adapté aux débutants. Pour l'hébergement local et la personnalisation, voir ci-dessous Service local et configuration d'image.

Forkez le dépôt WebVM pour déployer votre propre version sur GitHub Pages :

deploy_instructions_gif
  1. Forkez le dépôt
  2. Activez GitHub Pages dans les paramètres du dépôt forké → Pages en utilisant "GitHub Actions" comme source
  3. Exécutez le workflow Deploy depuis Actions
  4. Après la fin, ouvrez l'URL affichée sous le job deploy_to_github_pages

Le même workflow Deploy construit également des images disque .ext2 personnalisées à partir d'un Dockerfile. Vous pouvez le pointer vers dockerfiles/debian_mini ou un autre Dockerfile, puis soit publier le résultat comme un artefact GitHub Release, soit déployer la construction Pages depuis votre fork.

[!NOTE] dockerfiles/debian_large est une image trop volumineuse pour GitHub Pages.

Service local et configuration d'image

1. Clonez le dépôt

root@kitploit:~
git clone https://github.com/leaningtech/webvm.git
cd webvm

2. Placez votre image dans custom-disk-images/

Ce dépôt inclut un répertoire persistant custom-disk-images/ pour les fichiers .ext2 locaux.

Pour utiliser l'image Debian mini officielle, téléchargez-la depuis les Releases :

debian_mini_20230519_5022088024.ext2

Vous pouvez également copier une image que vous avez construite vous-même.

3. Pointez WebVM vers votre image locale

Modifiez config_public_terminal.js :

root@kitploit:~
export const diskImageUrl =
  "/custom-disk-images/debian_mini_20230519_5022088024.ext2";
export const diskImageType = "bytes";

4. Installez les dépendances et construisez

root@kitploit:~
npm install
npm run build

5. Démarrez Nginx et ouvrez WebVM

root@kitploit:~
nginx -p . -c nginx.conf

Ouvrez ensuite http://127.0.0.1:8081 et profitez de votre WebVM local !

Pour l'environnement de bureau Alpine complet, voir leaningtech/alpine-image.

Pour plus de détails, consultez la documentation des images personnalisées CheerpX.

[!TIP] Pour un REPL Python3, le workflow Deploy prend en compte le CMD spécifié dans le Dockerfile.

Pour construire un REPL, vous pouvez simplement changer CMD [ "/bin/bash" ] en CMD [ "/usr/bin/python3" ] et déployer.

Intégration de Claude AI

Pour accéder à Claude AI, vous avez besoin d'une clé API. Suivez ces étapes pour commencer :

1. Créez un compte

  • Visitez la console Anthropic et inscrivez-vous avec votre e-mail. Vous recevrez un lien de connexion vers la console Anthropic.

2. Obtenez votre clé API

  • Une fois connecté, allez dans Obtenir des clés API.
  • Achetez le nombre de crédits dont vous avez besoin. Après avoir effectué l'achat, vous pourrez générer la clé via la console API.

3. Connectez-vous avec votre clé API

  • Accédez à votre WebVM et survolez l'icône du robot. Cela affichera l'onglet d'intégration Claude AI. Pour plus de commodité, vous pouvez cliquer sur le bouton d'épinglage en haut à droite pour garder l'onglet fixe.
  • Vous verrez une invite où vous pouvez insérer votre clé API Claude.

4. Commencez à utiliser Claude AI

  • Une fois votre clé API saisie, vous pouvez commencer à interagir avec Claude AI en posant des questions telles que :

« Résolvez le défi CTF dans /home/user/chall1.bin. Notez que le binaire lit depuis l'entrée standard. »

deploy_instructions_gif

Important : Votre clé API est privée et ne doit jamais être partagée. Nous n'avons pas accès à votre clé, elle est uniquement stockée localement dans votre navigateur.

Communauté et support

Signaler des problèmes : Utilisez les Issues GitHub pour signaler des bugs ou demander des fonctionnalités.

Discutez avec nous : Rejoignez notre communauté Discord pour discuter de WebVM, partager des idées et obtenir de l'aide.

En savoir plus

Articles et ressources :

  • WebVM : Machines virtuelles x86 sans serveur dans le navigateur
  • WebVM : Virtualisation Linux en WebAssembly avec réseau complet via Tailscale
  • Mini.WebVM : Votre propre boîte Linux à partir d'un Dockerfile, virtualisée dans le navigateur via WebAssembly
  • Créer l'impossible : Virtualisation x86 dans le navigateur avec WebAssembly — Conférence à JsNation 2022

Exemple de déploiement :

  • Référence Mini.WebVM — Un exemple en cours déployé sur GitHub Pages

Technologie derrière WebVM :

Ce projet est propulsé par :

  • CheerpX — Compilateur JIT x86 vers WebAssembly | par Leaning Technologies
  • xterm.js — Émulateur de terminal Web
  • Tailscale — Couche réseau VPN
  • lwIP — Pile TCP/IP, compilée pour le Web via Cheerp

Versioning :

WebVM utilise le package NPM CheerpX, qui est mis à jour à chaque version.

Chaque build est immuable. Si une version spécifique fonctionne bien pour vous aujourd'hui, elle continuera de fonctionner pour toujours.

Licence

WebVM est distribué sous la licence Apache, version 2.0.

Vous êtes libre d'utiliser, modifier et redistribuer le contenu de ce dépôt.

Le déploiement public de CheerpX est fourni en l'état et est gratuit pour l'exploration technologique, les tests et l'utilisation par des particuliers. Toute autre utilisation par des organisations, y compris à but non lucratif, académique et du secteur public, nécessite une licence. Télécharger une version de CheerpX dans le but de l'héberger ailleurs n'est pas autorisé sans une licence commerciale.

En savoir plus ici sur nos pratiques de licence.

Si vous souhaitez construire un produit basé sur CheerpX/WebVM, veuillez consulter nos autres options de licence : Licence CheerpX ou contactez-nous : [email protected]

Télécharger l’outil