Как установить Kali Linux с Win-KeX (графический интерфейс) в WSL2 (подсистему Windows для Linux)

Оглавление

1. Для чего нужна WSL. Какие ограничения у WSL2 (подсистема Windows для Linux)

2. Что такое Win-KeX

3. Как включить WSL2

4. Как установить Kali Linux в WSL

5. Как запустить Kali Linux в WSL

6. Ошибка «WslRegisterDistribution failed with error: 0x80370102»

7. Настройка Kali Linux в WSL

8. Как использовать Kali Linux в WSL

9. Как установить Win-KeX

10. Как закрыть Win-KeX

11. Как скопировать файлы с Linux в WSL2. Где хранятся файлы Kali Linux в WSL2. Как получить доступ к файловой системе Linux в WSL2

12. Как поменять политику сложности паролей в WSL2

13. Как пользоваться systemctl в WSL2

14. Как запускать Win-KeX сочетанием клавиш в PowerShell

15. Как начать знакомство с Kali Linux и инструментами

16. Инструкции по Kali Linux в WSL2 (подсистеме Windows для Linux)

17. Ошибки Kali Linux в WSL2


Для чего нужна WSL. Какие ограничения у WSL2 (подсистема Windows для Linux)

В этой статье рассказано об установке «Kali Linux» в подсистему Windows для Linux (Windows Subsystem for Linux, WSL2), но вам нужно очень чётко понимать, что:

  1. на самом деле мы не устанавливаем Kali Linux
  2. на самом деле мы вообще не устанавливаем Linux

Подсистема Windows для Linux это НЕ виртуальная машина и это НЕ настоящий Linux. Если вы понимаете, что такое Wine (который также не является эмулятором), то WSL2 это тоже такой Wine наоборот. WSL2 просто пытается выполнять функции ядра Linux в меру своих возможностей для GNU приложений, при этом не являясь настоящим ядром Linux.

Что это значит с практической точки зрения? Это означает, что мы получаем ситуацию очень похожую с Wine, который пытается выполнять функции Windows (опять же, в меру своих возможностей) — что-то будет работать нормально, что-то будет работать с ошибками, а что-то не будет работать вообще.

В WSL2 100% не будет работать (в ближайшие годы, а может быть и вообще никогда)

  • абсолютно все беспроводные атаки (Wi-Fi, Bluetooth)
  • Hashcat и другие программы использующие видеокарты для выполнения вычислений (брут-форса)
  • низкоуровневый доступ к USB устройствам (например, чтобы сделать образ диска/флешки для криминалистического исследования)
  • фоновые серверные приложения

Нам обещают поддержку видеокарт для вычислений в WSL2 к следующему году, но к весне этого года нам обещали настоящее ядро Linux (до сих пор нет), так что я отношусь скептически к этим планам.

Всё остальное будет работать в диапазоне «работает нормально» до «не работает вообще» с промежуточными станциями по самым экзотическим ошибкам. Поэтому если вы где-то спрашиваете помощи по проблемам, то обязательно указывайте, что это Kali Linux в WSL2 — это очень важно.

Вы думаете я нагнетаю и сгущаю краски, потому что мне не нравится WSL2? Вот смотрите сами, это попытка запустить kazam — простейшее приложение, которое делает скриншоты (да, я хотел сделать для вас скриншот рабочего стола) и записывает видео, ярлык этого приложения по умолчанию вынесен на панель быстрого запуска Kali Linux. И оно — просто не заработало в WSL2.

Так что же мы на самом деле будем устанавливать в этой инструкции? Среди прочего, мы отдельно скачаем и установим последнюю версию того, что выполняет роль ядра, причём сразу для всех систем — хоть Kali Linux, хоть OpenSUSE. Затем на этапе «установки Kali Linux» мы скачаем некий образ с набором GNU программ, настройками и обоями Kali Linux. И вот это вот будет для нас «Kali Linux».

Если вы ещё не поняли, я НАСТОЯТЕЛЬНО рекомендую использовать обычную виртуальную машину VirtualBox вместо того, что буду делать далее в этой инструкции. Но если я вас не убедил, то продолжаем.

Но если копнуть ещё глубже, то ситуация чуть сложнее (и хуже) — если ваш процессор не поддерживает функции виртуализации, то WSL2 работать НЕ будет. Но в то же самое время это и не полноценный эмулятор. Я не знаю почему так — для меня это очень странно. То есть если вы где-то в облаке с установленной Windows захотите использовать WSL2, это у вас не получится.

Кстати, ведь WSL основывается на заброшенном проекте Project Astoria, который разрабатывался, чтобы запускать Android приложения прямо в Windows. ИМХО, такой проект имел бы больше смысла — зря решили переделать.

Что такое Win-KeX

В этой инструкции внутри Kali Linux мы будем устанавливать Win-KeX, что расшифровывается как Kali Desktop Experience for Windows — можно перевести как рабочий стол Kali с графическим пользовательским интерфейсом. Ранее уже можно было использовать Kali Linux с графическим интерфейсом в WSL. Для этого устанавливалось графическое окружение рабочего стола, устанавливались пакеты RDP сервера, запускалась служба RDP, нужно было посмотреть IP адрес операционной системы в WSL, затем в Windows нужно было запустить клиент RDP, ввести IP адрес виртуальной машины в клиент RDP и наконец-то подключиться.

Суть Win-KeX в том, что он делает это вместо вас, то есть автоматизирует процесс. Ну и ещё RDP заменена на VNC. Суть остального не изменилась.

Связанные статьи:

Как включить WSL2

Для данной инструкции нужен Windows 10 версии 2004 или выше — это обновление от мая 2020 года, то есть у большинства уже должно быть установлено. Если нет, то начните с обновления Windows, для этого нажмите Win+i → Обновление и безопасность → «Проверить наличие обновлений».

Чтобы посмотреть точную версию Windows, в командной строке введите:

winver

Связанные статьи:

По умолчанию WSL2 отключена в Windows. Поэтому если вы ещё не включили ранее, то сделайте это — можно воспользоваться графическим интерфейсом или командной строкой. Чтобы включить WSL2 в командной строке, нажмите Win+x и в открывшемся меню выберите «Windows PowerShell (администратор)»:

Важно открыть PowerShell с повышенными правами.

Выполните в нём:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Дождитесь окончания загрузки и выполнения.

Перезагрузите компьютер, для этого нажмите Enter.

Теперь опять откройте PowerShell от администратора и выполните:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Вновь перезагрузите компьютер.

Скачайте и установите последнее ядро WSL2 Linux Kernel отсюда: https://aka.ms/wsl2kernel (прямая ссылка).

Опять откройте PowerShell как администратор и выполните:

wsl --set-default-version 2

Если у вас уже установлена Kali Linux в WSL1, то для обновления выполните команду:

wsl --set-version kali-linux 2

Как установить Kali Linux в WSL

В общесистемном поиске введите «Microsoft Store» и запустите Магазин приложений Microsoft.

В этом магазине приложений найдите «Kali Linux».

Нажмите кнопку «Получить».

Нажмите «Нет, спасибо».

Образ не очень большой, меньше 200 мегабайт, дождитесь, пока он будет скачен.

Пока качается, почитаем информацию об этом приложении:

Приложение Kali для Windows позволяет установить и запустить дистрибутив Kali Linux с открытым исходным кодом для тестирования на проникновение непосредственно из ОС Windows 10. Чтобы запустить оболочку Kali, введите «kali» в командной строке или щёлкните плитку Kali в меню «Пуск».

Базовый образ не содержит никаких инструментов или графического интерфейса, чтобы образ оставался маленьким, однако их можно очень легко установить с помощью команды apt. Для получения дополнительной информации о том, что вы можете делать с этим приложением, посетите https://www.kali.org/kali-on-windows-app.

Примечание. Некоторые инструменты могут вызывать предупреждения антивируса при установке, пожалуйста, планируйте заранее. Обязательно посетите нашу страницу руководства Kali на WSL по адресу https://www.kali.org/news/kali-linux-in-the-windows-app-store

Обязательно включите дополнительную функцию Windows Subsystem for Linux перед установкой приложения Kali Linux!

Как запустить Kali Linux в WSL

Как мы уже знаем, можно найти «Kali Linux» в общесистемном поиске

либо ввести в командной строке

kali

Ошибка «WslRegisterDistribution failed with error: 0x80370102»

И вот здесь возможен первый подвох. Должна завершиться установка выбранного дистрибутива, у вас спросят имя пользователя и пароль для нового пользователя. Но может возникнуть ошибка:

WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102

Суть ошибки в том, что центральный процессор не поддерживает виртуализацию. Причины могут быть разными:

  • вы отключили виртуализацию в БИОСе
  • процессор вообще не поддерживает виртуализацию
  • вы запускаете Windows уже в виртуальной машине (независимо от модели, там процессоры не поддерживают виртуализацию).

Последний вариант — причина моей проблемы, поэтому я просто перезагрузился из виртуальной машины в реальную.

Настройка Kali Linux в WSL

Если у вас всё нормально, то вас попросят придумать и ввести имя пользователя и дважды ввести пароль.

Пароль нужен для использования команд с sudo (для запуска команд от пользователя root). Вход в систему выполняется без пароля. Здесь вы можете установить любой пароль, в том числе простой — я так делаю, т. к. для меня это тестовые системы, не используемые для реальной работы и живущие недолго. Для входа в систему не нужно вводить пароль. Но есть одна примечательная особенность — его будет очень трудно сменить с помощью команды passwd (об этой проблеме ниже).

Как использовать Kali Linux в WSL

После запуска в командной строке

kali

Может показаться, что абсолютно ничего не произошло. Но на самом деле, поменялось приглашение командной строки, мы уже внутри Kali Linux!


Следующими командами можно посмотреть версию системы:

grep VERSION /etc/os-release
uname -v
uname -r

Обратите внимание на версию ядра.

Как установить Win-KeX

Если вы уже бывалый пользователь Kali Linux в WSL и уже умеете подключаться к графическому интерфейсу с помощью RDP, то вам ненужно устанавливать пакеты RDP сервера, если вы хотите использовать Win-KeX.

Для установки Win-KeX выполните:

sudo apt update && sudo apt install kali-win-kex

Введите пароль для вашего пользователя.

Будет скачено пакетов на около 600 мегабайт и количество занятого места увеличиться почти на 1.8 гигабайта.

Во время установки и обновления пакетов вам будет предложено выбрать раскладку клавиатуры. На всякий случай выберите английскую, чтобы не остаться без неё.

Затем в графическом интерфейсе легко добавить новые раскладки. Это не графический интерфейс, поэтому здесь вы можете использовать курсорные клавиши для выбора и клавишу Tab для перехода к кнопке Ок.

Дождитесь, пока всё окончательно завершиться.

Теперь в командной строке Kali Linux выполните:

kex

Если вы запускаете Win-KeX впервые, то вам будет преложено ввести пароль.

Вы можете подумать, что это пароль пользователя Linux, но вы не угадали — это даже не ввод пароля, а установка нового пароля VNC. Поэтому придумайте и дважды введите пароль (длиной не менее 6 символов) и затем введите «n», что означает, что пароль даёт право не только смотреть, что происходит в системе (а там ничего не будет происходить без вашего участия), но и двигать и кликать мышкой и вводить данные с клавиатуры.

Перевод фраз:

  • Would you like to enter a view-only password — хотите ли вы ввести пароль только для просмотра
  • Password must be at least 6 characters - try again — Пароль должен быть по крайней мере 6 символов, попробуйте снова

Наконец, должно открыться графическое окружение рабочего стола Kali Linux.

Инструментов по умолчанию нет, вы можете установить их выборочно или сразу все (много скаченных данных и много занимаемого места на диске):

sudo apt install kali-linux-large

Связанная статья: Ошибка «unable to connect to socket: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (10061)» (РЕШЕНО).

Как закрыть Win-KeX

Обычные кнопки выключения Kali Linux в WSL не работают. Если вы попытаетесь завершить сессию, то окажитесь в чёрном экране, из которого непросто выйти — если вы застряли в этой ситуации, нажмите Ctrl+Alt+Delete и выберите Диспетчер задач. Затем закройте окно Kali Linux.

Вы можете выйти из полноэкранного режима, для этого нажмите F8, чтобы появилось контекстное меню TigerVNC, другие подробности вы найдёте в разделе «Как пользоваться TigerVNC».

Чтобы правильно закрыть Win-KeX и вернуться в интерфейс командной строки, выполните команду:

kex kill

Связанная статья: VNC в Windows и Linux: настройка и аудит безопасности

Как скопировать файлы с Linux в WSL2. Где хранятся файлы Kali Linux в WSL2. Как получить доступ к файловой системе Linux в WSL2

Дистрибутивы Linux там «замечательно» интегрированы в WSL, что обмен файлами с ними и Windows это многолетняя попаболь. Раньше нужно было ковырять файлы в %userprofile%\AppData\Local\Packages, причём можно было реально всё поломать.

Затем (сейчас) наступила оттепель и теперь файлы дистрибутивов доступны по пути (нужно вводить в файловый менеджер, Проводник)

\\wsl$\<имя-запущенного-дистрибутива>\

Например, файлы в Kali Linux вы найдёте по пути:

dir \\wsl$\Kali-Linux\

Изнутри дистрибутива можно открыть Проводник, который позволяет перемещать файлы из гостевой в хостовую машину и обратно:

explorer.exe.

Но это работает только если соответствующий дистрибутив Linux запущен.

Подробности смотрите в статье «Лёгкий доступ к файлам в подсистеме Windows для Linux (WSL)».

Будущее прекрасно, как следует из статьи «Как в Проводнике Windows 10 открыть файлы подсистемы Linux на Windows», в Проводнике появится иконка с пингвином и можно будет просматривать содержимое виртуальных дисков установленных дистрибутивов.

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

Это будущее наступит этой осенью, или весной следующего года, или никогда.

Как поменять политику сложности паролей в WSL2

Я захотел поменять пароль для своей Kali Linux в WSL2. Это заняло у меня минут 20 — без шуток… Я никак не мог придумать пароль, который бы приняла система из-за требований к сложности паролей. Это при том, что подключение к Linux в WSL2 (фактически вход в систему) выполняется вообще без ввода пароля!!! Это восхитительно логично и продуманно…

Самое смешное то, что пароль пользователя root можно устанавливать любым — настройки строгости пароля на него не распространяются…

Это не полный экран ошибок — я всё пытался и пытался придумать пароль, который система примет.

Список фраз команды password:

  • new password cannot be a palindrome — новый пароль не может быть палиндромом
  • new and old password are too similar — новый пароль и старый пароль слишком похожи
  • new password is too simple — новый пароль слишком простой
  • Sorry, passwords do not match. — пароли не совпадают
  • password unchanged — пароль не изменён
  • password updated successfully — пароль успешно обновлён
  • Current password — текущий пароль
  • New password — новый пароль
  • Retype new password — ещё раз введите новый пароль

Если вам нужна возможность установить пароль любой сложности, то откройте файл /etc/pam.d/common-password:

sudo nano /etc/pam.d/common-password

Найдите в нём строку

password        [success=1 default=ignore]      pam_unix.so obscure sha512

И удалите из неё слово obscure, которое отвечает за проверку сложности пароля. Чтобы установить пароль любой длины, добавьте minlen=1, у меня получилась следующая строка (это тестовая машина, в которой я часто ввожу команды и мне не хочется тратить время на длинный пароль со специальными символами):

password        [success=1 default=ignore]      pam_unix.so sha512 minlen=1

Как пользоваться systemctl в WSL2

Никак. Systemctl в WSL2 просто отсутствует, как и фоновые серверные процессы.

Как запускать Win-KeX сочетанием клавиш в PowerShell

В новом Windows Terminal вы можете установить сочетание клавиш для открытия Kali Linux сразу с графическим интерфейсом.

Связанные статьи: 

Хотя Windows Terminal уже имеет стабильную версию и официально «готов для продакшена», тем не менее, чтобы просто установить сочетание клавиш на запуск команды, мы будем править текстовый конфигурационный файл JSON.

У вас спросят, какой программой открыть файл .json.

Нажмите «Ещё приложения» и выберите Блокнот.

Добавьте в список профилей следующий текст:

  {
        "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
        "hidden": false,
        "name": "Win-KeX",
        "commandline": "wsl kex wtstart",
  },

Это добавит новый пункт.

Вместо этого текста, вы можете использовать более продвинутый вариант — у ярлыка будет иконка Kali и запуск будет выполняться в домашней папке kali.

Для начала скопируйте иконку kali-menu.png в папку c:/users/ПОЛЬЗОВАТЕЛЬ WINDOWS/pictures/icons/, затем вместо предыдущего текста вставьте:

  {
          "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
          "hidden": false,
  		"icon": "file:///c:/users/ПОЛЬЗОВАТЕЛЬ WINDOWS/pictures/icons/kali-menu.png",
          "name": "Win-KeX",
          "commandline": "wsl kex wtstart",
  		"startingDirectory" : "//wsl$/kali-linux/home/ПОЛЬЗОВАТЕЛЬ KALI"
  },

Совет: если вы используете разные дистрибутивы Linux в WSL, вы можете принудительно запустить win-kex в Kali, изменив строку команды на:

wsl -d kali-linux kex wtstart

Как начать знакомство с Kali Linux и инструментами

Начните с изучения следующих материалов:

Инструкции по Kali Linux в WSL2 (подсистеме Windows для Linux)

Конечно же, это самое начало темы и можно ещё очень многое говорить об использовании Linux в WSL2, о различных рецептах использования WSL2 и проблемах. Поэтому если вам интересна тема Kali Linux в WSL2, то пишите в комментариях, задавайте вопросы и делитесь ссылками на эту инструкцию — чем больше интереса, тем быстрее появится продолжение.

Ошибки Kali Linux в WSL2

Здесь собираются ошибки и проблемы работы Kali Linux в WSL, а также решения на них. Данный список будет пополняться.

Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован.