
Несколько месяцев назад 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. Это делается следующим образом:
- Введите следующее в поле поиска на панели задач Windows: «Параметры Центра обновления Windows».
- Выберите «Программа предварительной оценки Windows» и выберите получение* сборок Insider Preview*.
- Выберите «Медленный» в качестве инсайдерского уровня или «Быстрый», если вы хотите жить на переднем крае.
Обновление до этой сборки Insider Preview может занять несколько часов или даже дней. Как только это будет сделано, выполните следующее:
- Введите в поле поиска на панели задач: «функции Windows».
- Выберите «включить или отключить компоненты Windows».
- Выберите Подсистема Windows для Linux (бета-версия).
- Перезагрузка при запросе
Как мне это использовать?
Вы запускаете его, просто набрав «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