Как сделать чистый хендшейк

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

Пытался восстановить забытый пароль своего старого роутера *WPA2*.
. Задачу решал так.
. airmon-ng check kill
. airmon-ng
. airmon-ng start wlp2s0
. airmon-ng
. airodump-ng wlp2s0mon aireplay-ng -0 1111 -a ******** -c ********** wlp2s0mon
.

10 часов комп работал, но handshake не получен.
.

не полностью установил нужный софт на Debian, а ставил я только-
. aircrack-ng
. сrunch
. так думаю потому ,-что с Kali уходило полчаса на получения-
. этого рукопожатия (было дело тренировался ради совершенства).
.

Или в настройках роутера я прописал в прошлом допуск только по одному определённому МАК адресу.
.

Данная статья будет посвящена способу перехвата пакетов данных сети wifi, также по другому называют это перехватом(захватом) пакетов хендшейков сети вифи.

Для начала подготовим инструменты.

После этого вы загружаем содержимое архива в корень флешки(USB Flash)

Установка Airslax на флешку

Ждем появления надписи Installation finished successfully.

Установка Airslax на usb

И нажимаем любую клавишу для закрытия данного окна.

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

Выбор загрузки можно сделать обычно через кнопку F12 на стационарном пк или через Fn+F12 на ноутбуках, также выбор можно сделать через Bios.

Загрузка AirSlax с флешки

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

Ждем пока загрузится операционная система.

В конце загрузки у нас появиться рабочий стол на экране и запускаем ярлык AirSlax Base двойным кликом. Перед нами появиться окно выбора беспроводного адаптера:

Выбираем и нажимаем ОК, у нас на экране появиться главное меню :

План действий сейчас таков, сначала нажимаем по пункту «Сканировать эфир«, у нас появляется новое диалоговое окно:

жмем ОК

Откроется новое окно с уже выбранной нами целью :


Краткое описание: Handshake — это децентрализованный открытый протокол именования, совместимый с DNS, где каждый узел сети служит не только валидатором, но и менеджером корневой зоны, что позволяет создать альтернативу существующим централизованным Certificate Authorities. Целью проекта является не создание альтернативы DNS, но замена централизованных корневых серверов публичной сетью. Handshake поддерживает работу файла корневой зоны децентрализованным образом с помощью блокчейна, таким образом создавай открытую, нецензурируемую и более защищенную корневую зону.

Конкуренты: NNS, ENS

Токенометрика, распределение токенов, локи:


Тикер, стандарт, тип токена: NDA, NDA (нативный), утилити

Initial supply: 1.36 bln HNS (77,5% Total Supply)

Total Supply: 1.75 bln HNS

Продано: 7,5%/102 млн токенов

Цена токена при продаже: 0,1 USD

Команда проекта привлекла $10,2M в качестве инвестиций в обмен на 7,5% токенов. Полный список инвесторов приведен ниже:



На собранные средства была применена экспериментальная схема дистрибуции токенов. Все собранные средства команда пожертвовала Open Source проектам и разработчикам, а также 70% монет HNS аэйрдропом будут распределены между верифицированными Open Source проектами и разработчиками. Таким образом, управление проектом передается в руки свободного комьюнити. около 300,000 тысяч разработчиков по всему миру должны получить от 2,5 до 7,5к HNS, в зависимости от их вклада в создание интернета, каким мы его видим сейчас.

Для того, чтобы стать верифицированным участником аэйрдропа, необходимо выполнить следующие условия:


Требования, как вы видите, очень серьезные. Это вам не Proof of Love.

Список участников, кому было дропнуто 10,2 млн токенов:


Имена проектов приводят в трепет любого программиста

Таким образом, начальная капитализация проекта, при выходе на рынок, должна составлять 136млн$. Однако на сайте висит стейтмент, что в случае, если капитализация проекта достигнет 50 миллиардов за три года, то комьюнити должно принять решение о хард-форке с целью увеличения total supply в 2 раза для распространения и принятия технологии по всему миру, что говорит об уверенности создателей проекта в успехе.

Токеномика:

Токен в системе служит для оплаты вознаграждения узлам сети, а также средством оплаты за создание/управление правами доменных имен.

Создание имен и передача прав владения осуществляются с помощью прозрачного аукциона на платформе. В качестве оплаты за создание/изменение доменного имени/передачу прав служит нативная монета сети HNS. Кроме того, HNS служит оплатой комиссий узлам за валидацию транзакций в сети.

Кроме того, отсутствие центрального органа и цензуры позволяет создавать все новые и новые TLD и выдавать криптографические аналоги цифровых сертификатов гораздо более дешевым способом.

100000 наиболее популярных ресурсов, по статистике Alexa, зарезервированы Handshake для возможного перехода данных сайтов с централизованного SSL-сертификата на блокчейн-доказательство владения именем сайта.

Юридические моменты:


на двери видно номер — 1459

В политике конфиденциальности прописано взаимодействие с GDPR и рядом других законов, связанных с интернетом. В SEC заявка не подавалась.

Соцсети:

GitHub:

Этот репозиторий является реализацией протокола Handshake, содержит все для запуска ноды, тестнета и майнинга. Есть достаточно хорошая инструкция по запускам. Комментарии к комитам выглядят хорошо. Разрабатывается с декабря 2017 года, при участии 28 контрибутуров. Но основная активность принадлежит все же Chriss Jeffrey. Разумеется, это ни в коем случае не значит, что именно он кодит за всех, тк с его акка скорее всего просто выгружаются обновления в общий гитхаб. Основная масса разработчиков — из bcoin — то есть, скорее всего наработки перенесены оттуда. Еще стоит отметить, что все, участвовавшие в разработке как Handshake, так и Bcoin — имеют весьма мощные гитхабы. Очень и очень редко в проекте попадается настолько большое количество опытных кодеров.


Судя по этому и этому репозиториям — как минимум с 2016 года уже есть рабочие hDNS, зарезервировано 100тыс доменных адресов верхнего уровня. Некотрые репо являются форками других решений, но в целом все выглядит очень круто и целостно.

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

Роадмап:


По датам мало этапов, но расписаны хорошо.

  1. Кран для дистрибуции монет FOSS уже запущен, большая часть монет уже добыта
  2. Запуск основной сети в конце этого года
  3. Дистрибуция монет по всему интернету при достижении капитализации в 50 миллиардов

Технология:

основан на форке альтернативной bitcoin core full-ноды bcoin

Сегодня DNS, распределенная по своей природе, опирается на централизованные сервера корневых зон. Чтобы получить доступ к сайту ресолвер (процесс на клиентской стороне, запрашивающий информацию о соответствии доменного имени конкретному IP-адресу) должен получить правильную информацию от DNS-сервера. Отсюда вытекает несколько вариантов атак:

  1. Атакующий берет под контроль несколько DNS-серверов или целый CA DNS-сервер
  2. Атакующий наводняет ложной информацией кэш DNS-сервера
  3. Атакующий берет контроль над самим файлом регистрации и переправляет пользователя на фишинговые и небезопасные сайты, подменяя IP
  4. DDoS-атаки на CA и DNS-сервера

Кроме того, создание доменов верхнего уровня и управление всей системой DNS находится в руках одной корпорации ICANN, созданной правительством США. Подача заявки для создания домена верхнего уровня обходится в баснословные 300 000 $, которую, кстати, могут и отклонить.

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

Handshake разрабатывает открытую платформу, каждый участник которой становится участником распределенной сети, управляющей корневой зоной и ее файлом, встроенным в блокчейн. Это позволяет создавать TLD дешевым и безопасным путем. Root Zone файл, храниться в распределенном реестре. При создании нового имени, платформа обращается к блокчейну, проверяя доступность имени, а затем наделяет нового владельца соответствующими правами, предоставляя владельцу, вместо легко взламываемого сертификата SSL, криптографический ключ. А всё доказательство владения упаковывается в компактный merkle-proof, хранящийся в блокчейне.

Полная нода сети HSD написана на JavaScript и является форком альтернативной bitcoin core, полной ноде bcoin.

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

Команда:


Hans Shoenburg

В своем блоге тут , утверждает, что является создателем Handshake. Активно контрибьютит в репозитории проекта. Является создателем нескольких некоммерческих Open Source проектов, самым нашумевшим из которых является вот этот — создание команды программистов из заключенных американских тюрем. Результат проекта поразил всех. Из 100 пилотных учеников в тюрьму не вернулся никто, хотя средний риск рецидива составляет 65%.

Твиттер с 2009 года, личный, не для шиллинга проекта. В целом — очень хороший информационный след, человек не вызывает никаких сомнений. Гитхаб создан в 2009, умеренно активен — с 2012, все репозитории в привате.


Boyma Fahnbulleh

В твиттере с 2010 года, но пост за все время только один. При этом 1500+ подписчисков. Гитхаб — ведется с 2011, основная активность — с 2015 года. Хороший информационный след в сети, есть даже интервью с ним со времен работы в Chain. Тоже нет сомнений в компетентности.


Chriss Jeffrey

один из создателей bcoin. Самый скрытный из троицы. Предыдущие места деятельности найти не удалось. В твиттере с 2011 года, последний пост в нем — 25 июля 2016 года, про bcoin. Гитхаб наверное, входит в тройку самых активных из всех, что нам попадались — высокая интенсивность заполнения с 2011 года в течении 8 лет подряд. Судя по нему, в 2011 работал над BitPay. Первые коммиты по Handshake — декабрь 2015 года. Основной котрибутор проекта на гитхабе.

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

Вывод:

Гениальный по своей идее и простоте проект, сделанный энтузиастами Open Source движения, который способен кардинально изменить весь интернет, в частности систему регистрации и управления доменными именами. Это позволит сделать интернет безопасным, общедоступным и нецензурируемым. Ближайшие конкуренты в лице ENS и NNS занимаются менеджментом доменов второго уровня, работа с TLD у них только в планах. Уникальная система распределения монет и средств, собранных от инвесторов, выглядит честной и прозрачной.

Основные риски: 136 млн$ стартовой капитализации, что может привести к сильному дампу цены на начальном этапе. Система распределения экспериментальная. Может оказаться как сильной стороной проекта, так и его ахиллесовой пятой, потому что представить себе как будет осуществляться governance совершенно не ясно.

Юридические вопросы не освещены. Давление или запрет со стороны централизованных органов типа ICANN и правительств разных стран.


Первое, о чем следует позаботиться, — это права root. Без них некоторые функции установленных нами утилит могут не поддерживаться или работать некорректно. Поэтому настоятельно рекомендую их заполучить. Особенно это касается пользователей с Android 10 и более поздних версий.

Получение root в каждом случае уникально, ведь оно напрямую зависит от конкретной модели устройства и версии Android. Я в этой статье буду использовать свой старенький Samsung Galaxy S6 (SM-G920F) на Android 7.0 Nougat, для рута в котором уже есть специальный инструмент . В остальных случаях придется погуглить и узнать, как получить рут конкретно на твоем устройстве. На форуме 4PDA почти всегда есть нужная инструкция.

Также нам понадобится Termux — простой и удобный терминал, дающий многие возможности среды Linux, который и позволит исполнять наши команды в подходящей среде и не возиться с предварительной настройкой окружения.

Рекомендую также установить утилиту tsu, которая предоставит тебе возможность выполнять команды от рута. Если она не работает должным образом, загляни в GitHub-репозиторий , который настраивает работу рута в Termux. Это нужно, чтобы Termux сразу имел рут-доступ, который может понадобиться для дальнейших операций.

Также рекомендую обновить список пакетов, как мы обычно делаем это в десктопе Kali:

Если ты один из тех счастливчиков, чье устройство оказалось в списке поддерживаемых , рекомендую попробовать Kali NetHunter. Это платформа, созданная разработчиками Kali Linux специально для телефонов на Android. В NetHunter сразу доступно много рабочего софта из десктопной версии Kali. Образы можно найти на официальном сайте . Это более мощный набор, чем тот, что ты можешь получить с помощью Termux.

Устанавливаем Metasploit

Полное описание Metasploit — тема для отдельной статьи, поэтому пройдемся по нему вкратце. Metasploit Framework — фреймворк, предназначенный для создания, отладки и, конечно, применения эксплоитов.

Установить Metasploit Framework (MSF) на Android 7 или выше можно в две команды:

На Android 5.x.x–6.x.x MSF устанавливают несколько другим методом:

WARNING

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

В частности, при запуске apt от рута мы получим сбитые контексты SELinux, что потом помешает нам устанавливать пакеты.

Установка может затянуться. Не закрывай сессию Termux до конца установки MSF!

WARNING

Не стоит обновлять MSF вручную редактированием $PREFIX/opt/metasploit , так как это может привести к проблемам с зависимостями.

Теперь, чтобы убедиться, что у нас все работает, запустим Metasploit:

Как видишь, все отлично и в твоем распоряжении 2014 эксплоитов.

Устанавливаем ngrok

Ngrok — это кросс-платформенный софт для создания защищенных сетевых туннелей от общедоступной конечной точки до локально работающей сетевой службы. Также утилита собирает весь трафик и логирует его для анализа.

Для начала обновляемся и ставим Python 2:

Теперь нам нужно зарегистрировать свой аккаунт ngrok.

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

Далее надо скачать архив с ngrok для Linux-based-систем с архитектурой ARM.

Дальше заходи в Termux и иди в ту директорию, куда скачал архив с ngrok. К примеру:

Введи команду ls |grep ngrok и проверь, что архив здесь. Теперь нам нужно разархивировать его:

После этого еще раз введи ls |grep ngrok и проверь, появился ли у тебя исполняемый файл ngrok. Если его нет, то перед следующим шагом зайди в директорию с ним:

И перемести исполняемый файл в домашний каталог Termux:

Посмотри, куда был перемещен файл, и отправляйся туда с помощью команд cd и ls .

Теперь тебе нужно установить флаг исполнимости файла:

И сделать первый запуск:

Помнишь, ты копировал свой токен для аутентификации? Впиши эту команду, чтобы ngrok знал, кто его использует:

И запускай сервер:

Ты увидишь экран как на скриншоте.

Отлично, теперь ты готов атаковать любые цели!

Устанавливаем sqlmap

С установкой все элементарно. Перед тобой есть выбор: поставить стабильную версию 1.4.3 или самую новую 1.4.5.34. Первая ставится проще некуда:

И все. Чтобы запустить утилиту, пропиши команду

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

Далее переходи в папку с sqlmap:

И, используя python2 , запускай sqlmap с таким же обязательным параметром:

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

Устанавливаем aircrack-ng

Aircrack-ng — набор утилит, предназначенных для обнаружения беспроводных сетей, перехвата их трафика и аудита ключей шифрования WEP и WPA/WPA2-PSK.

Здесь уже все далеко не так просто. Думаю, ты слышал, насколько трудно перевести Wi-Fi-адаптер смартфона в режим мониторинга. В официальных репозиториях Termux на этот случай есть пакет утилиты iwconfig, которая управляет беспроводными сетями. Нам надо ее установить.

Для начала нужны вспомогательные утилиты:

Теперь можно ставить iwconfig с остальными тулзами для работы с беспроводными сетями:

И еще поставить отдельно iw:

Теперь тебе надо будет зайти как рут и создать экземпляр монитора. Для этого мы сделаем так:

Проверим наши адаптеры и их статусы:

Если что-то отображается не так, проверь, работает ли Wi-Fi, и убедись, что он не подключен к каким-либо сетям.

Далее нам нужно поднять наш монитор:

Конечно, не все устройства с Android поддерживают режим мониторинга. Проверить это можно приложением bcmon, которое среди прочего умеет включать режим мониторинга на совместимых чипах Broadcom (это устройства Nexus и некоторые другие). Для всех остальных придется купить переходник USB — OTG, в который воткнуть один из поддерживаемых десктопной Kali адаптеров. Для этого понадобится пересобрать ядро с нужными драйверами. Если у тебя нет опыта пересборки ядра, рекомендую обратиться в тему своего устройства на 4PDA или XDA-developers . Часто там есть сборки Kali с уже готовым ядром.

Теперь можем ставить aircrack-ng:

Смотрим короткий man:

И можем запустить airodump-ng:

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

Устанавливаем Nmap

Nmap — утилита, предназначенная для сканирования сетей. Может находить открытые порты, делать трассировку, проверять на уязвимости с помощью NSE-скриптинга. Чтобы лучше ознакомиться с этим приложением, стоит прочитать две статьи из нашего журнала о NSE-скриптинге и его использовании для обхода файрволов, DoS-атак и многого другого .

В нашем случае возможности Nmap могут быть немного урезаны, ведь используем портированную на Android версию. Однако она есть в официальных репозиториях Termux, что упрощает нам жизнь:

Посмотрим короткий man:

Для интенсивного сканирования я использую такие параметры:

Ставим на телефон полноценный Kali Linux

На некоторые телефоны можно установить Kali NetHunter, но речь сейчас пойдет не о нем. Мы будем ставить образ полноценной Kali на наш телефон и подключаться к его десктопу через VNC. У тебя будет образ именно Kali Linux, что позволит пользоваться теми прогами, которые не удается завести на Termux (к примеру, BeEF-XSS).

Сначала нам понадобится скачать из Google Play установщик урезанных дистрибутивов — Linux Deploy, набор необходимых пакетов для корректной работы (BusyBox) и, конечно, VNC Viewer — клиент VNC. Не важно, что в реальности эта машина будет находиться на 127.0.0.1.

Также из интернета нужно скачать образ Kali для Android . Лично я скачивал полную версию с файловой системой ext4, которая подходит для архитектуры ARM (пятый файл сверху). Когда архив докачается, твоя задача — извлечь оттуда образ объемом 5,5 Гбайт и поместить его в директорию /storage/emulated/0 мобильного устройства. После этого переименуем файл в linux.img .

Теперь нужно уделить внимание BusyBox. Сейчас в Google Play очень много вариантов разных производителей. Дело в том, что некоторым устройствам приходится подыскивать нужный BusyBox, чтобы все утилиты поставились корректно. В моем случае подошел самый популярный пакет BusyBox Free , файлы которого я установил в /su/xbin . Запомни эту директорию, она важна при обновлении среды установщика.

Теперь заходим в Linux Deploy и справа внизу нажимаем на иконку настроек дистрибутива. Выбираем дистрибутив Kali Linux. Нужная архитектура выставится автоматически, но, если не получится, попробуй armhf .

Далее измени пароль пользователя, он находится ниже.

И в самом конце ты найдешь пункты, отвечающие за включение серверов SSH и VNC. Поставь галочки напротив них. Если не нужна графическая среда, то будет достаточно SSH. Потом можно будет скачать любой клиент SSH и подключаться к нашей машине с Kali по 127.0.0.1 . Чтобы не качать лишние приложения, можешь воспользоваться обычным openssh-client прямо в Termux, для чего просто открой еще одну вкладку.

Если же тебе все же нужна графическая среда, то включи соответствующий пункт, и дальше я покажу, как подключиться к десктопу Kali по VNC.

Теперь нужно настроить рабочее окружение. В настройках переменной PATH укажи тот путь, куда BusyBox устанавливал пакеты.

И обнови рабочее окружение (кнопка ниже).

Осталось только запустить наш контейнер. Жми кнопку Start внизу. Проверь, нет ли при запуске контейнера строчек с пометкой fail. Если есть, убедись, что ты правильно указал PATH рабочего окружения и сконфигурировал контейнер. Если все так, то попробуй сменить архитектуру на armhf и сделать все заново.

Теперь заходи в VNC Viewer или другой клиент VNC, добавляй соединение по локалхосту (127.0.0.1) и называй его. Далее подключайся, подтверждай, что хочешь продолжить пользоваться незашифрованным соединением, и вводи пароль пользователя, который ты указывал в Linux Deploy.

Конечно, дистрибутив старый, но весь софт рабочий, и, как видишь, тот же Nmap функционирует без ошибок.

Для теста я использую команду

Параметр -A отвечает за включение сканирования ОС, ее версии, сканирования скриптами, а также трассировку маршрута (traceroute). Параметр -v выводит более подробную информацию.

Вывод результатов сканирования ты можешь видеть на скриншоте ниже.

Заключение

Теперь твое портативное устройство способно вскрывать базы данных, сканировать сети, перехватывать трафик и устраивать еще множество разных интересных атак. Используй эти возможности с умом!


В мире сущес­тву­ет нес­коль­ко зет­табайт циф­ровых дан­ных, но далеко не вся эта информа­ция уни­каль­на: пов­торы раз­бро­саны по мил­лиар­дам носите­лей и сер­веров. Незави­симо от типа дан­ных, для работы с ними тре­бует­ся решать одни и те же прин­ципи­аль­ные задачи. Это сни­жение избы­точ­ности за счет час­тично­го устра­нения пов­торов (дедуп­ликация), про­вер­ка целос­тнос­ти, инкре­мен­тное соз­дание резер­вных копий и авто­риза­ция поль­зовате­лей. Конеч­но, пос­ледний аспект инте­ресу­ет нас боль­ше все­го, одна­ко все эти тех­ничес­кие при­емы базиру­ются на общих методах обра­бот­ки дан­ных с исполь­зовани­ем хеширо­вания. Сущес­тву­ют облачные сер­висы, которые поз­воля­ют исполь­зовать эту про­цеду­ру быс­трее — с хорошо извес­тны­ми целями.

На пер­вый взгляд кажет­ся стран­ным, что в раз­ных задачах при­меня­ется общая про­цеду­ра вычис­ления и срав­нения кон­троль­ных сумм или хешей — битовых пос­ледова­тель­нос­тей фик­сирован­ной дли­ны. Одна­ко этот метод дей­стви­тель­но уни­вер­сален. Кон­троль­ные сум­мы слу­жат сво­еоб­разны­ми циф­ровыми отпе­чат­ками фай­лов, клю­чей, паролей и дру­гих дан­ных, называ­емых в крип­тогра­фии messages — сооб­щения. Хеши (или дай­джес­ты, от англ. digest) поз­воля­ют срав­нивать их меж­ду собой, быс­тро обна­ружи­вать любые изме­нения и обе­зопа­сить про­вер­ку дос­тупа. Нап­ример, с помощью хешей мож­но про­верять соот­ветс­твие вве­ден­ных паролей, не переда­вая их в откры­том виде.

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

Пре­дель­ный объ­ем исходных дан­ных, который может обра­ботать хеш‑фун­кция, опре­деля­ется фор­мой их пред­став­ления в алго­рит­ме. Обыч­но они записы­вают­ся как целое 64-бит­ное чис­ло, поэто­му типич­ный лимит сос­тавля­ет 2 64 бит минус еди­ница, или два экса­бай­та. Такое огра­ниче­ние пока не име­ет прак­тичес­кой зна­чимос­ти даже для очень круп­ных дата‑цен­тров.

Обыч­но хеши записы­вают­ся в шес­тнад­цатерич­ном виде. Так их гораз­до удоб­нее срав­нивать на вид, а запись получа­ется в четыре раза короче дво­ичной. Самые корот­кие хеши получа­ются при исполь­зовании Adler-32, CRC32 и дру­гих алго­рит­мов с дли­ной дай­джес­та 32 бита. Самые длин­ные — у SHA-512. Кро­ме них, сущес­тву­ет с десяток дру­гих популяр­ных хеш‑фун­кций, и боль­шинс­тво из них спо­соб­но рас­счи­тывать дай­джес­ты про­межу­точ­ной дли­ны: 160, 224, 256 и 384 бит. Попыт­ки соз­дать фун­кцию с уве­личен­ной дли­ной хеша про­дол­жают­ся, пос­коль­ку чем длин­нее дай­джест, тем боль­ше раз­ных вари­антов может сге­нери­ровать хеш‑фун­кция.

Неповторимость — залог надежности

Уни­каль­ность хеша — одно из его клю­чевых свой­ств, опре­деля­ющее крип­тостой­кость сис­темы шиф­рования. Дело в том, что чис­ло вари­антов воз­можных паролей теоре­тичес­ки бес­конеч­но, а вот чис­ло хешей всег­да конеч­ное, хоть и очень боль­шое. Дай­джес­ты любой хеш‑фун­кции будут уни­каль­ны лишь до опре­делен­ной сте­пени. Сте­пени двой­ки, если быть точ­ным. К при­меру, алго­ритм CRC32 дает мно­жес­тво все­го из 2 32 вари­антов, и в нем труд­но избе­жать пов­торений. Боль­шинс­тво дру­гих фун­кций исполь­зует дай­джес­ты дли­ной 128 или 160 бит, что рез­ко уве­личи­вает чис­ло уни­каль­ных хешей — до 2 128 и 2 160 соот­ветс­твен­но.

Стро­го говоря, к хеш‑фун­кци­ям в крип­тогра­фии предъ­явля­ются более высокие тре­бова­ния, чем к кон­троль­ным сум­мам на осно­ве цик­личес­кого кода. Одна­ко эти понятия на прак­тике час­то исполь­зуют как синони­мы.

Сов­падение хешей от раз­ных исходных дан­ных (в том чис­ле паролей) называ­ют кол­лизи­ей. Она может быть слу­чай­ной (встре­чает­ся на боль­ших объ­емах дан­ных) или псев­дослу­чай­ной — исполь­зуемой в целях ата­ки. На эффекте кол­лизии осно­ван взлом раз­ных крип­тогра­фичес­ких сис­тем — в час­тнос­ти, про­токо­лов авто­риза­ции. Все они сна­чала счи­тают хеш от вве­ден­ного пароля или клю­ча, а затем переда­ют этот дай­джест для срав­нения, час­то при­меши­вая к нему на каком‑то эта­пе пор­цию псев­дослу­чай­ных дан­ных, или исполь­зуют допол­нитель­ные алго­рит­мы шиф­рования для уси­ления защиты. Сами пароли ниг­де не сох­раня­ются: переда­ются и срав­нива­ются толь­ко их дай­джес­ты. Здесь важ­но то, что пос­ле хеширо­вания абсо­лют­но любых паролей одной и той же фун­кци­ей на выходе всег­да получит­ся дай­джест оди­нако­вого и заранее извес­тно­го раз­мера.

Псевдореверс

Про­вес­ти обратное пре­обра­зова­ние и получить пароль непос­редс­твен­но из хеша невоз­можно в прин­ципе, даже если очис­тить его от соли, пос­коль­ку хеширо­вание — это одно­нап­равлен­ная фун­кция. Гля­дя на получен­ный дай­джест, нель­зя понять ни объ­ем исходных дан­ных, ни их тип. Одна­ко мож­но решить сход­ную задачу: сге­нери­ровать пароль с таким же хешем. Из‑за эффекта кол­лизии задача упро­щает­ся: воз­можно, ты никог­да не узна­ешь нас­тоящий пароль, но най­дешь совер­шенно дру­гой, дающий пос­ле хеширо­вания по это­му же алго­рит­му тре­буемый дай­джест.

Для это­го надо сде­лать все­го ничего — рас­счи­тать 2 128 пар вида пароль — хеш или на порядок‑дру­гой боль­ше — в зависи­мос­ти от дли­ны дай­джес­та выб­ранной фун­кции. Одна­ко все эти двой­ки в чер­тов­ски боль­шой сте­пени отпу­гива­ют, толь­ко если думать о скром­ных воз­можнос­тях собс­твен­ной машины. Хорошо, что ско­рость нахож­дения пароля по его хешу сегод­ня необя­затель­но зависит от вычис­литель­ной мощ­ности компь­юте­ра самого ата­кующе­го, пос­коль­ку во мно­гих слу­чаях для это­го уже не тре­бует­ся выпол­нять дол­гий перебор. Мно­гое уже сде­лано до нас.

Ме­тоды опти­миза­ции рас­четов появ­ляют­ся бук­валь­но каж­дый год. Ими занима­ются коман­ды HashClash, Distributed Rainbow Table Generator и дру­гих меж­дународ­ных про­ектов крип­тогра­фичес­ких вычис­лений. В резуль­тате на каж­дое корот­кое сочета­ние печат­ных сим­волов или вари­ант из спис­ка типич­ных паролей хеши уже вычис­лены. Их мож­но быс­тро срав­нить с перех­вачен­ным, пока не най­дет­ся пол­ное сов­падение.

Рань­ше на это тре­бова­лись недели или месяцы про­цес­сорно­го вре­мени, которые в пос­ледние годы уда­лось сок­ратить до нес­коль­ких часов бла­года­ря мно­гоядер­ным про­цес­сорам и перебо­ру в прог­раммах с под­дер­жкой CUDA и OpenCL. Адми­ны наг­ружа­ют рас­четами таб­лиц сер­веры во вре­мя прос­тоя, а кто‑то арен­дует вир­туаль­ный клас­тер в Amazon EC2.

Искать XOR вычислять

В девянос­тых годах край­не популяр­ным стал алго­ритм MD5, написан­ный Рональ­дом Ривес­том. Он стал широко при­менять­ся при авто­риза­ции поль­зовате­лей на сай­тах и при под­клю­чении к сер­верам кли­ент­ских при­ложе­ний. Одна­ко его даль­нейшее изу­чение показа­ло, что алго­ритм недос­таточ­но надежен. В час­тнос­ти, он уяз­вим к ата­кам по типу псев­дослу­чай­ной кол­лизии. Ины­ми сло­вами, воз­можно пред­намерен­ное соз­дание дру­гой пос­ледова­тель­нос­ти дан­ных, хеш которой будет в точ­ности соот­ветс­тво­вать извес­тно­му.

Пос­коль­ку дай­джес­ты сооб­щений широко при­меня­ются в крип­тогра­фии, на прак­тике исполь­зование алго­рит­ма MD5 сегод­ня при­водит к серь­езным проб­лемам. Нап­ример, с помощью такой ата­ки мож­но под­делать циф­ровой сер­тификат x.509. В том чис­ле воз­можна под­делка сер­тифика­та SSL, поз­воля­ющая зло­умыш­ленни­ку выдавать свой фейк за доверен­ный кор­невой сер­тификат (CA). Более того, в боль­шинс­тве наборов доверен­ных сер­тифика­тов лег­ко най­ти те, которые по‑преж­нему исполь­зуют алго­ритм MD5 для под­писи. Поэто­му сущес­тву­ет уяз­вимость всей инфраструк­туры откры­тых клю­чей (PKI) для таких атак.

Из­нуритель­ную ата­ку перебо­ром устра­ивать при­дет­ся толь­ко в слу­чае дей­стви­тель­но слож­ных паролей (сос­тоящих из боль­шого набора слу­чай­ных сим­волов) и для хеш‑фун­кций с дай­джес­тами боль­шой дли­ны (от 160 бит), у которых пока не наш­ли серь­езных недос­татков. Огромная мас­са корот­ких и сло­вар­ных паролей сегод­ня вскры­вает­ся за пару секунд с помощью онлай­новых сер­висов.

Бойцы облачного фронта

По уве­рени­ям соз­дателей, в базу вклю­чены все сло­ва из англо­языч­ной вер­сии Википе­дии и боль­шинс­тво популяр­ных паролей, соб­ранных из обще­дос­тупных спис­ков. Сре­ди них есть и хит­рые вари­анты со сме­ной регис­тра, лит­спи­ком, пов­тором сим­волов, зер­калиро­вани­ем и про­чими ухищ­рени­ями. Одна­ко слу­чай­ные пароли даже из пяти сим­волов ста­новят­ся проб­лемой — в моем тес­те полови­на из них не была най­дена даже по LM-хешам.

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

Сервис MD5Decode знает все типы хешей от словарных паролей

Сер­вис MD5Decode зна­ет все типы хешей от сло­вар­ных паролей

MD5Decrypt находит составные словарные пароли, но хеши на анализ принимает только по одному

MD5Decrypt находит сос­тавные сло­вар­ные пароли, но хеши на ана­лиз при­нима­ет толь­ко по одно­му

Ищем хеши Гуглом


Да­леко не все сер­висы готовы пре­дос­тавить услу­гу поис­ка паролей по хешам бес­плат­но. Где‑то тре­бует­ся регис­тра­ция и кру­тит­ся тон­на рек­ламы, а на мно­гих сай­тах мож­но встре­тить и объ­явле­ния об услу­ге плат­ного взло­ма. Часть из них дей­стви­тель­но исполь­зует мощ­ные клас­теры и заг­ружа­ет их, ста­вя прис­ланные хеши в оче­редь заданий, но есть и обыч­ные прой­дохи. Они выпол­няют бес­плат­ный поиск за день­ги, поль­зуясь неос­ведом­ленностью потен­циаль­ных кли­ентов.

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

По­это­му для начала прос­то напиши хеш в поис­ковой стро­ке Google. Если ему соот­ветс­тву­ет какой‑то сло­вар­ный пароль, то он (как пра­вило) отоб­разит­ся сре­ди резуль­татов поис­ковой выдачи уже на пер­вой стра­нице. Еди­нич­ные хеши мож­но погуг­лить вруч­ную, а боль­шие спис­ки будет удоб­нее обра­ботать с помощью скрип­та BozoCrack.

Универсальный подход

Сре­ди десят­ка хеш‑фун­кций наибо­лее популяр­ны MD5 и SHA-1, но точ­но такой же под­ход при­меним и к дру­гим алго­рит­мам. К при­меру, файл реес­тра SAM в ОС семей­ства Windows по умол­чанию хра­нит два дай­джес­та каж­дого пароля: LM-хеш (уста­рев­ший тип на осно­ве алго­рит­ма DES) и NT-хеш (соз­дает­ся путем пре­обра­зова­ния юни­код­ной записи пароля по алго­рит­му MD4). Дли­на обо­их хешей оди­нако­ва (128 бит), но стой­кость LM зна­читель­но ниже из‑за мно­жес­тва упро­щений алго­рит­ма.

Пос­тепен­но оба типа хешей вытес­няют­ся более надеж­ными вари­анта­ми авто­риза­ции, но мно­гие эту ста­рую схе­му исполь­зуют в исходном виде до сих пор. Ско­пиро­вав файл SAM и рас­шифро­вав его сис­темным клю­чом из фай­ла SYSTEM, ата­кующий получа­ет спи­сок локаль­ных учет­ных записей и сох­ранен­ных для них кон­троль­ных зна­чений — хешей.

Сох­ранив файл или фай­лы с хен­дшей­ком, мож­но выделить из них хеш пароля и либо узнать сам пароль, либо най­ти какой‑то дру­гой, который точ­ка дос­тупа при­мет точ­но так же. Мно­гие онлай­новые сер­висы пред­лага­ют про­вес­ти ана­лиз не толь­ко чис­того хеша, но и фай­ла с записан­ным хен­дшей­ком. Обыч­но тре­бует­ся ука­зать файл pcap и SSID выб­ранной точ­ки дос­тупа, так как ее иден­тифика­тор исполь­зует­ся при фор­мирова­нии клю­ча PSK.

По­ка с помощью онлай­новых сер­висов и радуж­ных таб­лиц находят­ся далеко не все пары хеш — пароль. Одна­ко фун­кции с корот­ким дай­джес­том уже побеж­дены, а корот­кие и сло­вар­ные пароли лег­ко обна­ружить даже по хешам SHA-160. Осо­бен­но впе­чат­ляет мгно­вен­ный поиск паролей по их дай­джес­там с помощью Гуг­ла. Это самый прос­той, быс­трый и совер­шенно бес­плат­ный вари­ант.

Читайте также: