20.05.2015

Взлом WPA2 пароля при помощи сервисов Амазона

image

Рано или поздно пентестер сталкивается с ситуацией, когда нужно подобрать пароль. Схема взлома зависит от алгоритма шифрования и доступного оборудования.
В этой статье я покажу вам еще один метод взлома пароля, зашифрованного по технологии WPA2.

Автор: Fabio Natalucci

Рано или поздно пентестер сталкивается с ситуацией, когда нужно подобрать пароль. Схема взлома зависит от алгоритма шифрования и доступного оборудования.

В этой статье я покажу вам еще один метод взлома пароля, зашифрованного по технологии WPA2.

Для начала следует упомянуть, что на данный момент технология WPA2 является наиболее защищенной (при условии, качественной настройки в сочетании с современными техниками шифрования). Тем не менее, «наиболее защищенная» еще не означает «не взламываемая». Благодаря MiTM-атаке становится возможным извлечь зашифрованный пароль. Вы знали об этом?

Я покажу вам новый способ подобрать Wi-Fi-пароль, используя потенциально безграничные и сверхэффективные ресурсы. Но сначала ответьте на вопрос. Какие методы вы знаете касательно взлома WPA2 пароля?

Первое, что приходит в голову, - старый добрый брутефорс. Но в этом случае система потребляет слишком большие ресурсы, и чтобы получить результат, потребуется много времени. Не очень эффективный метод. Давайте рассмотрим, как повысить результативность…

Нам потребуется словарь. Чтобы составить список подходящих слов, часто используется информация с сайта компании или из социальной сети.

Этот метод требует повышенной удачливости, а, значит, от нас не все зависит. Однако нам не нужна удача. Мы, хакеры, сами куем удачу. Давайте рассмотрим создание словаря при помощи Crunch.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi1.png

Рисунок 1: Генерация словарей при помощи Crunch

В итоге мы сгенерировал объем в 1 петабайт. У нас нет столько свободного места на диске.

Но кто сказал, что мы должны где-то хранить список паролей? Ведь мы можем генерировать и использовать словарь на лету.

Как? Например, объединить Crunch и Pyrit через канал (pipeline).

Crunch генерирует всевозможные 8-ми символьные комбинации, а результаты используются в Pyrit для подбора пароля из .cap файла.

Вышеупомянутый трюк довольно хорош, но также не особо эффективен. Время на перебор мы не сократим. В среднем на перебор более менее сильного пароля уйдут годы.

Кто-то подумал о CUDA Pyrit? Хороший инструмент, но только не для ноутбука или PC. Если вы очень любознательны, можете ознакомиться со статьей об использовании CUDA Pyrit на базе дистрибутива Kali.

CUDA – мощное средство, ускоряющее Pyrit при помощи GPU (вместо CPU).

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

Говоря простыми словами, мы начинаем масштабировать процесс и потенциально можем взломать WPA2 пароль любой длины.

На основе всего вышесказанного вся последующая работа состоит из 3-х шагов.

Создаем словарь в Crunch:

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi2.png

Рисунок 2: Создание словаря в Crunch, состоящего из 8-символьных элементов

Загружаем созданный словарь в Pyrit DB и генерируем «радужную таблицу» (но это будет не настоящая радужная таблица):

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi3.png

Рисунок 3: Импорт словаря в Pyrit DB

После импорта паролей запускаем команду на создание базы.

pyrit batch

После создания базы мы готовы к подбору пароля из .cap файла.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi4.png

Рисунок 4: Команда для подбора пароля

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

И тут нам на помощь приходит Амазон…

AMAZON LINUX AMI

Компания Амазон предоставляет доступ к дополнительным веб-службам, включая AMI. Amazon Linux AMI – Linux-образ, предоставляемый и поддерживаемый Amazon Web Services для веб-сервиса Amazon Elastic Compute Cloud (Amazon EC2). В распоряжение пользователя попадает стабильная, безопасная и высокопроизводительная среда выполнения для NVIDIA GRID GPU Driver AMI, позволяющая разработчикам запускать игры и приложения, оптимизированные под видеокарту NVIDIA GeForce, в облаке Amazon EC2.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi5.jpg

Рисунок 5: Описание сервиса Amazon Linux AMI

Amazon Web Services предоставляет постоянные обновления и поддержку для всех экземпляров, запущенных на базе службы Amazon Linux AMI. Более подробно про Amazon AMI можно прочитать здесь.

AMI предоставляет в наше распоряжение именно те мощности, которые нам нужны. Вместо CPU используется GPU, и тем самым увеличивается скорость вычислений.

Когда вы в первый раз купите доступ к AMI, там не будет нужных утилит. Необходимо установить Python, CUDA Pyrit и Crunch.

Мы платим Амазону за каждый час использования сервиса, поэтому нельзя терять ни минуты. Перед покупкой нужно подготовить пакет со всеми необходимыми утилитами.

Позже мы проведем тест на производительность и убедимся, что в нашем распоряжении именно та среда, которая нам нужна.

На данный момент вы все также потенциально можем взломать любой WPA2 пароль. Пока потенциально. Если в нашем распоряжении только одна AMI-машины, все еще будет требоваться много времени на взлом. Нам нужно много AMI-машин, работающих сообща. Нечто вроде распределенной службы, когда мы масштабируем весь процесс на максимально возможную мощность.

На данный момент нам не нужны большие мощности. Для начала нужно понять механику процесса.

Если взглянуть в документацию, везде говорится, что нужно использовать Crunch для создания огромного словаря, а Pyrit для распределенного перебора между несколькими машинами на базе AMI. Однако здесь есть одна небольшая хитрость.

Шаг 1

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

Шаг 2

Мы будем дробить словарь не небольшие порции. Это главная часть трюка ;-). Но вначале нужно узнать максимально доступный размер словаря. Здесь нам также поможет Pyrit. Если при создании словаря в параметре -c ввести огромное число, Pyrit вернет максимально доступный размер. И это нужное нам число!

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi6.png

Рисунок 6: Команда для выяснения максимального размера словаря

Pyrit вернул максимальное корректное значение параметра: 268435456.

Создаем еще раз словарь с использованием правильного значения.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi7.png

Рисунок 7: Создание первой части словаря

Команда выше создает словарь с использованием максимально доступного дискового пространства. Для создания следующей части словаря запускаем еще одну виртуальную машину и продолжаем с того места, где мы остановились ранее. Первая часть словаря именуется как ttiTs-TuFAp.txt. Повторно запускаем Crunch с этого места.

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/031915_2030_CrackingaWi8.png

Рисунок 8: Создаем следующую часть словаря

Шаг третий

Загрузите все файлы в базу данных Pyrit при помощи команды, использованной ранее. Вы можете сначала сгенерировать файл, а потом загрузить его на виртуальную машину. В этом случае вы не будете засорять дисковое пространство бесполезными файлами. Сначала загружаете список на виртуальную машину, потом импортируете его в Pyrit, после чего в ручном режиме переходите к другим виртуальным машинам.

Шаг четвертый

Сохраните виртуальную машину как шаблон. Так вы сэкономите время в следующий раз. В EC2 зайдите в панель управления, отметьте инстанс (все инстансы с предварительно загруженным словарем), укажите имя и выберите «create image».

Шаг пятый

Стартуйте все инстансы, вставьте ESSID в Pyrit, и запустите пакетное задание.

Заключение

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

Как вы могли убедиться, облачные сервисы и операционные мощности значительно расширяют наши возможности и позволяют получить лучшие результаты за меньшее время. Компания Амазон – лишь сторонний игрок на этом рынке и, возможно, в данный момент некоторые изменения в договоре о предоставлении услуг, могут огранить сферу применения методов, описанных в этой статье.

Амазон – прекрасная компания, но я бы хотел подчеркнуть особо, что цель статьи – не научить вас плохому, а продемонстрировать, как новые технологии могут быть использованы для осуществления некоторых видов атак.

Я хочу выразить благодарность Бруно Родригесу, автору этого метода.

Ссылки

1. http://uk.reuters.com/article/2011/01/07/us-amazon-hacking-idUKTRE70641M20110107

2. http://www.zdnet.com/article/researcher-uses-aws-cloud-to-crack-wi-fi-passwords/

3. http://www.infosecisland.com/blogview/11018-Cracking-WPA-Protected-WiFi-in-Six-Minutes.html

4. https://kakkulearning.wordpress.com/2014/05/25/using-amazon-ami-cracking-wpa2-wifi-hack/