Как сделать чистый хендшейк
Добавил пользователь Алексей Ф. Обновлено: 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)
Ждем появления надписи Installation finished successfully.
И нажимаем любую клавишу для закрытия данного окна.
Все, образ оболочки уже загружен на флешку. Осталось всего лишь перегрузить компьютер и выбрать режим загрузки с флешки.
Выбор загрузки можно сделать обычно через кнопку 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тыс доменных адресов верхнего уровня. Некотрые репо являются форками других решений, но в целом все выглядит очень круто и целостно.
Техпепер , несмотря на свою просто убийственную минималистичность — один из лучших, что довелось читать.
Роадмап:
По датам мало этапов, но расписаны хорошо.
- Кран для дистрибуции монет FOSS уже запущен, большая часть монет уже добыта
- Запуск основной сети в конце этого года
- Дистрибуция монет по всему интернету при достижении капитализации в 50 миллиардов
Технология:
основан на форке альтернативной bitcoin core full-ноды bcoin
Сегодня DNS, распределенная по своей природе, опирается на централизованные сервера корневых зон. Чтобы получить доступ к сайту ресолвер (процесс на клиентской стороне, запрашивающий информацию о соответствии доменного имени конкретному IP-адресу) должен получить правильную информацию от DNS-сервера. Отсюда вытекает несколько вариантов атак:
- Атакующий берет под контроль несколько DNS-серверов или целый CA DNS-сервер
- Атакующий наводняет ложной информацией кэш DNS-сервера
- Атакующий берет контроль над самим файлом регистрации и переправляет пользователя на фишинговые и небезопасные сайты, подменяя IP
- 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 знает все типы хешей от словарных паролей
MD5Decrypt находит составные словарные пароли, но хеши на анализ принимает только по одному
Ищем хеши Гуглом
Далеко не все сервисы готовы предоставить услугу поиска паролей по хешам бесплатно. Где‑то требуется регистрация и крутится тонна рекламы, а на многих сайтах можно встретить и объявления об услуге платного взлома. Часть из них действительно использует мощные кластеры и загружает их, ставя присланные хеши в очередь заданий, но есть и обычные пройдохи. Они выполняют бесплатный поиск за деньги, пользуясь неосведомленностью потенциальных клиентов.
Вместо того чтобы рекламировать здесь честные сервисы, я предложу использовать другой подход —находить пары хеш — пароль в популярных поисковых системах. Их роботы‑пауки ежедневно прочесывают веб и собирают новые данные, среди которых есть и свежие записи из радужных таблиц.
Поэтому для начала просто напиши хеш в поисковой строке Google. Если ему соответствует какой‑то словарный пароль, то он (как правило) отобразится среди результатов поисковой выдачи уже на первой странице. Единичные хеши можно погуглить вручную, а большие списки будет удобнее обработать с помощью скрипта BozoCrack.
Универсальный подход
Среди десятка хеш‑функций наиболее популярны MD5 и SHA-1, но точно такой же подход применим и к другим алгоритмам. К примеру, файл реестра SAM в ОС семейства Windows по умолчанию хранит два дайджеста каждого пароля: LM-хеш (устаревший тип на основе алгоритма DES) и NT-хеш (создается путем преобразования юникодной записи пароля по алгоритму MD4). Длина обоих хешей одинакова (128 бит), но стойкость LM значительно ниже из‑за множества упрощений алгоритма.
Постепенно оба типа хешей вытесняются более надежными вариантами авторизации, но многие эту старую схему используют в исходном виде до сих пор. Скопировав файл SAM и расшифровав его системным ключом из файла SYSTEM, атакующий получает список локальных учетных записей и сохраненных для них контрольных значений — хешей.
Сохранив файл или файлы с хендшейком, можно выделить из них хеш пароля и либо узнать сам пароль, либо найти какой‑то другой, который точка доступа примет точно так же. Многие онлайновые сервисы предлагают провести анализ не только чистого хеша, но и файла с записанным хендшейком. Обычно требуется указать файл pcap и SSID выбранной точки доступа, так как ее идентификатор используется при формировании ключа PSK.
Пока с помощью онлайновых сервисов и радужных таблиц находятся далеко не все пары хеш — пароль. Однако функции с коротким дайджестом уже побеждены, а короткие и словарные пароли легко обнаружить даже по хешам SHA-160. Особенно впечатляет мгновенный поиск паролей по их дайджестам с помощью Гугла. Это самый простой, быстрый и совершенно бесплатный вариант.
Читайте также: