Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
webvm — Клиентская виртуальная машина Linux, работающая в браузере через WebAssembly, с сетью Tailscale, кастомными образами на основе Dockerfile и поддержкой CTF-заданий для обучения и разработки в области безопасности. | Kitploit
Инструменты/GitHubGitHub/leaningtech/webvm
Виртуализация для безопасностиСетевая безопасностьCTFБезопасность облачных средDevSecOpsОбучение и Образование
GitHubleaningtech/webvm

webvm

Клиентская виртуальная машина Linux, работающая в браузере через WebAssembly, с сетью Tailscale, кастомными образами на основе Dockerfile и поддержкой CTF-заданий для обучения и разработки в области безопасности.

Репозиторий
17.2k3.3k4 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

WebVM

Discord server Issues

Этот репозиторий содержит исходный код для https://webvm.io — виртуальной машины Linux, работающей в вашем браузере.

Попробуйте новое графическое окружение Alpine / Xorg / i3: https://webvm.io/alpine.html

Что такое WebVM?

WebVM — это бессерверная виртуальная среда, работающая полностью на стороне клиента в HTML5/WebAssembly. Она совместима с Linux ABI и запускает немодифицированную дистрибутив Debian, включая множество нативных инструментов разработки.

WebVM работает на движке виртуализации CheerpX, который предоставляет:

  • JIT-компилятор x86 в WebAssembly
  • Виртуальная файловая система на основе блоков
  • Эмулятор системных вызовов Linux
  • Безопасное изолированное выполнение на стороне клиента

Содержание

  • Сеть
  • Разработка и настройка
    • Развертывание на GitHub Pages
    • Локальный запуск и настройка образа
  • Интеграция с Claude AI
  • Сообщество и поддержка
  • Узнать больше
  • Лицензия

[!NOTE] Посетите https://webvm.io, чтобы начать работу прямо в браузере. Никакой настройки не требуется.

Инструкции по локальной настройке, сборке собственных образов и форку/развертыванию см. в разделе Разработка и настройка.

Сеть

WebVM поддерживает интеграцию с Tailscale. Таким образом, ваша браузерная ВМ может получать доступ к вашей частной сети, а при наличии выходного узла — и к публичному интернету.

[!NOTE] Некоторые низкоуровневые сетевые операции (особенно ICMP, используемый ping) в настоящее время недоступны в этом окружении. Для проверки подключения используйте curl или wget.

Локальная сеть

  1. Откройте панель "Сеть" на боковой панели.
  2. Нажмите "Подключиться к Tailscale".
  3. Выполните вход (при необходимости создайте бесплатную учетную запись на tailscale.com).
  4. Нажмите "Подключиться" при появлении запроса.

Теперь WebVM имеет доступ ко всем машинам в вашей сети Tailscale!

Советы по использованию интернета

[!TIP] При медленном соединении может быть небольшая задержка перед инициализацией. Состояние подключения отображается в виде цветной точки на кнопке: оранжевый — локальная сеть, зеленый — глобальный интернет. Текст кнопки показывает ваш IP-адрес Tailscale после подключения.

Чтобы получить доступ к публичному интернету из WebVM, настройте Выходной узел на другом устройстве в вашей сети Tailscale:

  1. Следуйте краткому руководству по настройке выходного узла Tailscale (раздел "Назначить устройство выходным узлом").
  2. WebVM автоматически использует выходной узел после его назначения.

Использование ключа аутентификации

В качестве альтернативы интерактивному входу можно добавить свой ключ аутентификации Tailscale во фрагмент URL:

root@kitploit:~
https://webvm.io/#authKey=<ваш-эфимерный-ключ>

Это эквивалентно опции Tailscale --login-server.

[!TIP] Если вам также нужен собственный сервер управления, добавьте controlUrl в тот же фрагмент URL и разделите значения символом &, например: #authKey=...&controlUrl=....

Самостоятельное размещение Tailscale с Headscale

Мы также поддерживаем headscale — самостоятельную реализацию сервера управления Tailscale с открытым исходным кодом. По умолчанию Headscale не добавляет заголовки CORS, поэтому перед ним потребуется прокси. См. документацию Headscale по настройке обратного прокси для примера.

После настройки добавьте следующую строку в блок location / вашего конфигурационного файла 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;
}

Затем откройте WebVM с помощью:

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

Разработка и настройка

[!NOTE] Пользователи по умолчанию имеют права root. Однако sudo не установлен, но его легко добавить в Dockerfile при необходимости.

Развертывание на GitHub Pages

Это простой рабочий процесс, подходящий для начинающих. Инструкции по локальному хостингу и настройке см. ниже в разделе Локальный запуск и настройка образа.

Форкните репозиторий WebVM, чтобы развернуть свою собственную версию на GitHub Pages:

deploy_instructions_gif
  1. Форкните репозиторий
  2. Включите GitHub Pages в форкнутом репозитории: Настройки → Pages → выберите "GitHub Actions" в качестве источника.
  3. Запустите рабочий процесс Deploy из вкладки Actions.
  4. После завершения откройте URL, указанный в задании deploy_to_github_pages.

Тот же рабочий процесс Deploy также собирает пользовательские образы дисков .ext2 из Dockerfile. Вы можете указать его на dockerfiles/debian_mini или другой Dockerfile, а затем либо опубликовать результат как ресурс релиза GitHub, либо развернуть сборку Pages из своего форка.

[!NOTE] dockerfiles/debian_large слишком большой образ для GitHub Pages.

Локальный запуск и настройка образа

1. Клонируйте репозиторий

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

2. Поместите свой образ в custom-disk-images/

В этом репозитории есть постоянная директория custom-disk-images/ для локальных файлов .ext2.

Чтобы использовать официальный минимальный образ Debian, скачайте его из релизов:

debian_mini_20230519_5022088024.ext2

Вы также можете скопировать образ, собранный самостоятельно.

3. Укажите WebVM на локальный образ

Отредактируйте config_public_terminal.js:

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

4. Установите зависимости и соберите

root@kitploit:~
npm install
npm run build

5. Запустите Nginx и откройте WebVM

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

Затем откройте http://127.0.0.1:8081 и наслаждайтесь локальным WebVM!

Полное окружение Alpine Desktop см. в leaningtech/alpine-image.

Более подробную информацию см. в документации CheerpX Custom Images.

[!TIP] Для REPL Python3 рабочий процесс Deploy учитывает CMD, указанный в Dockerfile.

Чтобы создать REPL, просто измените CMD [ "/bin/bash" ] на CMD [ "/usr/bin/python3" ] и разверните.

Интеграция с Claude AI

Для доступа к Claude AI вам понадобится API-ключ. Выполните следующие шаги, чтобы начать:

1. Создайте учетную запись

  • Посетите Anthropic Console и зарегистрируйтесь, указав свой адрес электронной почты. Вы получите ссылку для входа в Anthropic Console.

2. Получите API-ключ

  • После входа перейдите в раздел Get API keys.
  • Приобретите необходимое количество кредитов. После завершения покупки вы сможете сгенерировать ключ через консоль API.

3. Войдите, используя API-ключ

  • Перейдите в WebVM и наведите курсор на значок робота. Откроется вкладка интеграции с Claude AI. Для удобства вы можете нажать кнопку булавки в правом верхнем углу, чтобы закрепить вкладку.
  • Вы увидите поле, в которое можно вставить свой API-ключ Claude.

4. Начните использовать Claude AI

  • После ввода API-ключа вы можете начать взаимодействие с Claude AI, задавая вопросы, например:

"Реши CTF-задачу из /home/user/chall1.bin. Учти, что бинарник читает из stdin."

deploy_instructions_gif

Важно: Ваш API-ключ является приватным и не должен никому передаваться. У нас нет доступа к вашему ключу, он хранится только локально в вашем браузере.

Сообщество и поддержка

Сообщить об ошибках: Используйте GitHub Issues, чтобы сообщить об ошибках или запросить функции.

Пообщайтесь с нами: Присоединяйтесь к нашему сообществу в Discord, чтобы обсудить WebVM, поделиться идеями и получить помощь.

Узнать больше

Статьи и ресурсы:

  • WebVM: Server-less x86 virtual machines in the browser
  • WebVM: Linux Virtualization in WebAssembly with Full Networking via Tailscale
  • Mini.WebVM: Your own Linux box from Dockerfile, virtualized in the browser via WebAssembly
  • Crafting the Impossible: X86 Virtualization in the Browser with WebAssembly — Доклад на JsNation 2022

Пример развертывания:

  • Mini.WebVM Reference — Работающий пример, развернутый на GitHub Pages

Технологии, лежащие в основе WebVM:

Этот проект работает на:

  • CheerpX — JIT-компилятор x86 в WebAssembly | от Leaning Technologies
  • xterm.js — Веб-терминальный эмулятор
  • Tailscale — VPN-сетевой уровень
  • lwIP — Стек TCP/IP, скомпилированный для Веба с помощью Cheerp

Версионирование:

WebVM использует NPM-пакет CheerpX, который обновляется с каждым релизом.

Каждая сборка неизменна. Если конкретная версия работает у вас сегодня хорошо, она будет работать всегда.

Лицензия

WebVM распространяется под лицензией Apache License, Version 2.0.

Вы можете свободно использовать, изменять и распространять содержимое этого репозитория.

Публичное развертывание CheerpX предоставляется как есть и бесплатно для использования для технологического исследования, тестирования и использования частными лицами. Любое другое использование организациями, включая некоммерческие, академические и государственные учреждения, требует лицензии. Загрузка сборки CheerpX с целью размещения ее в другом месте не допускается без коммерческой лицензии.

Подробнее о нашей лицензионной практике читайте здесь.

Если вы хотите создать продукт на основе CheerpX/WebVM, ознакомьтесь с другими вариантами лицензирования: CheerpX licensing или свяжитесь с нами: [email protected]

Скачать инструмент