Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
webvm — Macchina virtuale per il Web | Kitploit
Strumenti/GitHubGitHub/axlan/webvm
Virtualizzazione per la SicurezzaSicurezza di ReteCTFSicurezza CloudApprendimento e FormazioneLab e Pratica
GitHubaxlan/webvm

webvm

Macchina virtuale per il Web

Vedi Repository
7 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

WebVM

Discord server Issues

Questo repository ospita il codice sorgente di https://webvm.io, una macchina virtuale Linux che gira nel tuo browser.

Prova il nuovo ambiente grafico Alpine / Xorg / i3: https://webvm.io/alpine.html

WebVM è un ambiente virtuale senza server che gira interamente lato client in HTML5/WebAssembly. È progettato per essere compatibile con l'ABI Linux. Esegue una distribuzione Debian non modificata che include molti toolchain nativi per lo sviluppo.

WebVM è alimentato dal motore di virtualizzazione CheerpX e consente l'esecuzione sicura e isolata di binari x86 lato client in qualsiasi browser. CheerpX include un compilatore JIT x86-to-WebAssembly, un file system virtuale basato su blocchi e un emulatore di syscall Linux.

Indice

  • Forka, distribuisci, personalizza
  • Eseguire WebVM localmente con un'immagine disco Debian mini personalizzata
  • Esempio di personalizzazione: REPL Python3
  • Come usare Claude AI
  • Bug e problemi
  • Altri link
  • Ringraziamenti a...
  • Versionamento
  • Licenza

Abilita la rete

I browser moderni non forniscono API per utilizzare direttamente TCP o UDP. WebVM fornisce supporto di rete integrandosi con Tailscale, una rete VPN che supporta WebSocket come livello di trasporto.

  1. Apri il pannello "Rete" dalla barra laterale
  2. Clicca su "Connetti a Tailscale" dal pannello
  3. Accedi a Tailscale (crea un account se non ne hai uno)
  4. Clicca su "Connetti" quando richiesto da Tailscale

Ora WebVM ha accesso alle macchine nella tua rete Tailscale locale!

Il World Wide Web

Se desideri accedere a Internet pubblico, avrai bisogno di un Nodo di Uscita. Vedi Tailscale Exit Nodes per istruzioni dettagliate. (A seconda della velocità della tua rete, potresti dover attendere qualche istante per il download del modulo Wasm di Tailscale.) Una volta configurato:

  • Accedi con le tue credenziali Tailscale.
  • Torna alla scheda di WebVM.
  • Il pulsante "Connetti a Tailscale" nel pannello laterale della Rete dovrebbe essere sostituito dal tuo indirizzo IP.

Utilizzo di authkey

In alternativa all'accesso manuale, puoi aggiungere la tua chiave di autenticazione Tailscale alla fine dell'URL di WebVM.

https://webvm.io/#authKey=<la-tua-chiave>

Si consiglia di utilizzare una chiave effimera.

Self-hosting della tua rete Tailscale

Supportiamo anche headscale, un'implementazione open source self-hosted del server di controllo Tailscale.

Tuttavia, headscale purtroppo non supporta l'aggiunta di intestazioni CORS. Dovrai configurare un proxy per aggiungerle. Le istruzioni di Headscale per farlo si trovano qui.

Una volta pronto, aggiungi le seguenti righe al blocco location / nel tuo file di configurazione nginx.

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

Per accedere alla tua rete headscale, aggiungi #controlUrl=<il-tuo-control-url> all'URL di WebVM.

Note:

  • Se fai self-hosting, sostituisci "https://webvm.io" con il tuo URL.
  • Questo equivale all'opzione --login-server della riga di comando di tailscale.
  • Se usato con authkey, non dimenticare di separare i frammenti di URL con un & in mezzo.

Forka, distribuisci, personalizza

deploy_instructions_gif
  • Forka il repository.
  • Abilita GitHub Pages nelle impostazioni.
    • Clicca su Impostazioni.
    • Vai alla sezione Pagine.
    • Seleziona GitHub Actions come sorgente.
      • Se stai usando un dominio personalizzato, assicurati che Forza HTTPS sia abilitato.
  • Esegui il workflow.
    • Clicca su Azioni.
    • Accetta il prompt. È necessario solo una volta per abilitare le Actions per il tuo fork.
    • Clicca sul workflow chiamato Deploy.
    • Clicca su Esegui workflow e poi di nuovo su Esegui workflow nel menu.
  • Dopo alcuni secondi, un nuovo workflow Deploy inizierà; cliccaci sopra per vedere i dettagli.
  • Dopo che il workflow è completato (ci vogliono alcuni minuti), mostrerà l'URL sotto il job deploy_to_github_pages.

Ora puoi personalizzare dockerfiles/debian_mini per le tue esigenze, o creare un nuovo Dockerfile da zero. Usa il parametro del workflow Percorso del Dockerfile per selezionarlo.

  • Se desideri utilizzare la nostra immagine Alpine desktop completa, puoi trovare il suo dockerfile qui.

  • Per maggiori informazioni sulla creazione di immagini personalizzate, consulta la nostra documentazione sulle immagini disco personalizzate.

Eseguire WebVM localmente con un'immagine disco Debian mini personalizzata

1. Clona il repository WebVM

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

2. Scarica l'immagine Debian mini Ext2

Esegui il seguente comando per scaricare l'immagine Debian mini Ext2:

root@kitploit:~
wget "https://github.com/leaningtech/webvm/releases/download/ext2_image/debian_mini_20230519_5022088024.ext2"

(*Puoi anche costruire la tua immagine disco selezionando l'opzione del workflow "Carica release GitHub" *)

3. Aggiorna il file di configurazione

Modifica config_public_terminal.js per fare riferimento alla tua immagine disco locale:

  • Sostituisci:

    "wss://disks.webvm.io/debian_large_20230522_5044875331.ext2"

    Con:

    "/disk-images/debian_mini_20230519_5022088024.ext2"

    (Usa un URL assoluto o relativo che punti alla posizione dell'immagine disco.)

  • Sostituisci "cloud" con il tipo corretto di immagine disco: "bytes"

4. Costruisci WebVM

Esegui i seguenti comandi per installare le dipendenze e costruire WebVM:

root@kitploit:~
npm install
npm run build

L'output verrà inserito nella directory build.

5. Configura Nginx

  • Crea una directory per l'immagine disco:
root@kitploit:~
mkdir disk-images
mv debian_mini_20230519_5022088024.ext2 disk-images/
  • Modifica il tuo file nginx.conf per servire l'immagine disco. Aggiungi il seguente blocco location:
root@kitploit:~
location /disk-images/ {
	root .;
	autoindex on;
}

6. Avvia Nginx

Esegui il seguente comando per avviare Nginx:

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

Nginx servirà automaticamente la directory build.

7. Accedi a WebVM

Apri un browser e visita: http://127.0.0.1:8081.

Goditi la tua WebVM locale!


Esempio di personalizzazione: REPL Python3

Il workflow Deploy tiene conto del CMD specificato nel Dockerfile. Per costruire un REPL puoi semplicemente applicare questa patch e distribuire.

root@kitploit:~
diff --git a/dockerfiles/debian_mini b/dockerfiles/debian_mini
index 2878332..1f3103a 100644
--- a/dockerfiles/debian_mini
+++ b/dockerfiles/debian_mini
@@ -15,4 +15,4 @@ WORKDIR /home/user/
 # We set env, as this gets extracted by Webvm. This is optional.
 ENV HOME="/home/user" TERM="xterm" USER="user" SHELL="/bin/bash" EDITOR="vim" LANG="en_US.UTF-8" LC_ALL="C"
 RUN echo 'root:password' | chpasswd
-CMD [ "/bin/bash" ]
+CMD [ "/usr/bin/python3" ]

Come usare Claude AI

Per accedere a Claude AI, hai bisogno di una chiave API. Segui questi passaggi per iniziare:

1. Crea un account

  • Visita Anthropic Console e registrati con la tua email. Riceverai un link di accesso alla Console Anthropic.

2. Ottieni la tua chiave API

  • Una volta effettuato l'accesso, vai su Ottieni chiavi API.
  • Acquista la quantità di crediti necessaria. Dopo aver completato l'acquisto, potrai generare la chiave tramite la console API.

3. Accedi con la tua chiave API

  • Vai alla tua WebVM e passa il mouse sull'icona del robot. Questo mostrerà la scheda di Integrazione Claude AI. Per maggiore comodità, puoi fare clic sul pulsante di fissaggio nell'angolo in alto a destra per tenere la scheda in posizione.
  • Vedrai un prompt in cui inserire la tua chiave API Claude.
  • Inserisci la tua chiave e premi Invio.

4. Inizia a usare Claude AI

  • Una volta inserita la chiave API, puoi iniziare a interagire con Claude AI ponendo domande come:

"Risolvi la sfida CTF in /home/user/chall1.bin. Nota che il binario legge da stdin."

deploy_instructions_gif

Importante: La tua chiave API è privata e non dovrebbe mai essere condivisa. Noi non abbiamo accesso alla tua chiave, che viene conservata solo localmente nel tuo browser.

Bug e problemi

Utilizza Issues per segnalare qualsiasi bug. Oppure vieni a salutarci / condividere il tuo feedback su Discord.

Altri link

  • WebVM: macchine virtuali x86 senza server nel browser
  • WebVM: Virtualizzazione Linux in WebAssembly con Rete Completa tramite Tailscale
  • Mini.WebVM: La tua scatola Linux personale da Dockerfile, virtualizzata nel browser via WebAssembly
  • Distribuzione di riferimento su GitHub Pages: Mini.WebVM
  • Crafting the Impossible: X86 Virtualization in the Browser with WebAssembly Talk a JsNation 2022

Ringraziamenti a...

Questo progetto dipende da:

  • CheerpX, realizzato da Leaning Technologies per la virtualizzazione x86 e l'emulazione Linux
  • xterm.js, https://xtermjs.org/, per fornire l'emulatore di terminale basato sul Web
  • Tailscale, per il componente di rete
  • lwIP, per lo stack TCP/IP, compilato per il Web tramite Cheerp

Versionamento

WebVM dipende dalla tecnologia di virtualizzazione x86-to-WebAssembly CheerpX, inclusa nel progetto tramite NPM.

Il pacchetto NPM viene aggiornato a ogni release.

Ogni build è immutabile: se una versione specifica funziona bene per te oggi, continuerà a funzionare per sempre.

Licenza

WebVM è rilasciato sotto la Licenza Apache, Versione 2.0.

Sei libero di utilizzare, modificare e ridistribuire i contenuti di questo repository.

La distribuzione pubblica di CheerpX è fornita così com'è ed è libera da usare per esplorazione tecnologica, test e uso da parte di singoli individui. Qualsiasi altro uso da parte di organizzazioni, inclusi senza scopo di lucro, accademia e settore pubblico, richiede una licenza. Non è consentito scaricare una build di CheerpX allo scopo di ospitarla altrove senza una licenza commerciale.

Leggi di più sulla licenza di CheerpX

Se desideri costruire un prodotto basato su CheerpX/WebVM, contattaci: [email protected]

Scarica lo strumento