Несколько месяцев назад Microsoft застала мир врасплох, объявив, что Windows предоставит разработчикам или хакерам знакомую среду Bash. Официально она называется Подсистема Windows для Linux (WSL).

Эта функция будет полностью включена в Юбилейное обновление Windows 10, которое выйдет 2 августа 2016 года.

Я поговорил с некоторыми моими друзьями-охотниками за ошибками и объяснил, что буду использовать это для тестов на проникновение, и был встречен очень смущенными взглядами. Зачем кому-то это использовать? Почему бы просто не запустить Kali на виртуальной машине или с двойной загрузкой? Ответ прост: Потому что мы можем.

Когда я иду в местную кофейню и хочу поработать, мне нужна моя обычная среда рабочего стола — Windows 10 — и некоторые знакомые хакерские инструменты. Да, здесь, в Сингапуре, это называется кофейня, не имеющая ничего общего с Амстердамом, но думайте об этом как о Starbucks без кондиционера и без модной толпы, просматривающей их Facebook на новейшем оборудовании Apple. ).

Я определенно не хочу брать с собой два ноутбука, не хочу использовать двойную загрузку или испытывать трудности с запуском виртуальной машины на машине с очень низким энергопотреблением. Маломощный? Да, из-за портативности. Я хочу просто и глупо.

Итак, давайте углубимся в возможности WSL.

Что это за подсистема для Linux?

Во-первых, это не виртуальная машина и не требует накладных расходов. WSL позволяет запускать собственные бинарные файлы Linux ELF64 в Windows. Системные вызовы Linux переводятся и направляются в ядро ​​Windows. Происходит гораздо больше, но этого должно быть достаточно, чтобы поразить ваших друзей-хакеров своими экспертными знаниями в Windows и приступить к некоторым экспериментам.

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

До выпуска Windows 10 Anniversary Update вам необходимо включить предварительные сборки Insider Preview. Это делается следующим образом:

  1. Введите следующее в поле поиска на панели задач Windows: «Параметры Центра обновления Windows».
  2. Выберите «Программа предварительной оценки Windows» и выберите получение* сборок Insider Preview*.
  3. Выберите «Медленный» в качестве инсайдерского уровня или «Быстрый», если вы хотите жить на переднем крае.

Обновление до этой сборки Insider Preview может занять несколько часов или даже дней. Как только это будет сделано, выполните следующее:

  1. Введите в поле поиска на панели задач: «функции Windows».
  2. Выберите «включить или отключить компоненты Windows».
  3. Выберите Подсистема Windows для Linux (бета-версия).
  4. Перезагрузка при запросе

Как мне это использовать?

Вы запускаете его, просто набрав «bash» в оболочке Windows (классическая оболочка «cmd» или Windows Powershell). Когда вы сделаете это в первый раз, система спросит, хотите ли вы быть пользователем root по умолчанию. Делайте выбор и вперед.

Вот оно! Теперь вы находитесь в среде Ubuntu Linux. Все штатные команды работают! Начнем с обновления нашей системы до последней доступной версии:

apt-get update
apt-get upgrade
apt-get autoremove

Каковы ограничения и возможности?

Небо это предел! Не беспокойтесь. Возможно, вы захотите просмотреть репозиторий Microsoft BashOnWidows Github на наличие текущих ошибок или проблем. Просто не забывайте часто обновлять WSL, ошибки исправляются быстро, а новые возможности появляются каждые несколько недель.

В настоящее время вам приходится жить со следующими ограничениями:

  • Вы не можете вызывать программы Windows из WSL.
  • Вы можете получить доступ к файлам Windows из WSL (они смонтированы на /mnt/c), но доступ к файлам, находящимся в папках WSL, из Windows не рекомендуется (хотя и возможен).
  • Фоновые службы могут быть запущены, но если вы закроете вызывающую оболочку, они завершатся.
  • Не все сетевые протоколы (в настоящее время) полностью реализованы, TCP/UDP будет работать, но использование «сырых» сокетов может не работать.
  • У каждого пользователя Windows есть уникальный экземпляр WSL. Если вы создадите новых пользователей Linux (с помощью adduser), эти пользователи будут недоступны для других пользователей Windows.

Давайте соберем Kali на Windows

Ладно, поначалу это будет слишком, но кто знает, в будущем это вполне возможно. А пока давайте начнем с некоторых основных инструментов и посмотрим, что возможно.

Как хакерам, нам нужны некоторые инструменты разработки и предустановленные часто используемые библиотеки и инструменты. В Bash введите следующее:

apt-get install autoconf build-essential curl git-core libffi-dev libpcap-dev libreadline6-dev libssl-dev libyaml-dev python-setuptools python-dev python-pip libsqlite3-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev lua5.2lua5.2-dev libtoolopenjdk-7-jre python-software-properties sqlite3 subversion wget xtightvncviewer zlib1g-dev

Вы можете предпочесть последнюю версию Ruby. Установите следующим образом:

cd
git clone https://github.com/rbenv/rbenv.git~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
rbenv install 2.3.1
rbenv global2.3.1
ruby-v
gem install bundler
rbenv rehash
gem update
gem clean
bundle config --global silence_root_warning 1
find ~/.bundle/cache -type d -exec chmod0755 {} +
rbenv rehash

Давайте установим наш первый инструмент сканирования для оценки уязвимостей на сайтах WordPress (WPScan):

cd
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
bundle install

Я протестировал WPScan, и он работает так, как ожидалось. Здорово!

Теперь попробуйте sqlmap:

cd
git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
cd sqlmap-dev

Опять же, запустить sqlmap не проблема!

Следующим в списке желаний был Nmap. Установка не проблема:

svncohttps://svn.nmap.org/nmap cdnmap
./configure
make
make install

Плохая новость: компиляция и установка работают, но запуск Nmap приводит к следующему сообщению об ошибке:

Starting Nmap7.12SVN (https://nmap.org) at2016-07-0717:11DST route_dst_netlink: cannot bind AF_NETLINK socket:Invalidargument

Это уже передано на Github, поэтому мы ожидаем, что Nmap может заработать в ближайшем будущем.

Конечно, я попытался установить metasploit. К сожалению, metasploit зависит от базы данных Postgress, и мне не удается скомпилировать postgress. Однако можно подключиться к базе данных Postgress, работающей в Windows, но это не было целью моего эксперимента.

Запуск веб-сервера? Просто установите Apache:

apt-get install apache2
service apache2 start

При запуске будут некоторые сообщения об ошибках, но Apache работает без проблем и доступен из Windows. Обратите внимание, что служба перестанет работать, когда вы закроете Bash!

Ну, это как введение. Надеюсь, теперь все начнут экспериментировать и компилировать инструменты на WSL. Расскажите нам о своих успехах или неудачах!

Исправление проблем

Эй, это очень продвинутый материал, так что вы здесь сами по себе! Просто несколько указателей:

  • Файлы в WSL хранятся в папке C:\Users\<YOUR USERNAME>\AppData\Local\lxss. Сначала включите отображение скрытых файлов вместе с файлами операционной системы в «Параметры папки». Помните: не рекомендуется обращаться к этим файлам из Windows!
  • Чтобы удалить WSL, запустите командную оболочку от имени администратора и введите lxrun /uninstall /full
  • Чтобы переустановить WSL, запустите командную оболочку от имени администратора и введите lxrun /install /y
  • Чтобы изменить пользователя по умолчанию (все хотят быть root), запустите командную оболочку от имени администратора и введите lxrun /setdefaultuser