QR-код как средство взлома

QR-код как средство взлома

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение 

QR-коды есть везде, от упаковки товара до посадочных талонов авиакомпании, что делает сканеры, считывающие их, интересной целью для хакеров. Благодаря недостаткам многих из этих сканирующих устройств, можно использовать общие уязвимости, используя эксплойты, упакованные в пользовательские QR-коды.

Инструмент под названием QRGen может создавать вредоносные QR-коды и даже кодировать пользовательские полезные нагрузки. Эти атаки являются мощными, потому что люди не могут читать или понимать информацию, содержащуюся в QR-коде, не сканируя его, потенциально подвергая любое устройство, используемое для попытки расшифровки кода, уязвимости, содержащейся в нем. Даже сканеры QR-кодов, которыми оснащены смартфоны, могут быть уязвимы для такого рода атак. Например было обнаружено, что QR-коды способны заманивать пользователей на вредоносные сайты. QR-код может быть встроен в фишинговое электронное письмо, которое обещает специальные или бесплатные предложения при сканировании кода. После этого пользователи направляются на вредоносный веб-сайт, который выглядит как настоящий, где передают свою конфиденциальную информацию.

 Что такое QR-коды?

QR-коды - это машиночитаемые форматы данных, которые полезны для всего, что необходимо сканировать автоматически. До QR-кодов существовало несколько других форматов, называемых линейными штрих-кодами, которые также сохраняли данные в удобном для машин виде. Вы, вероятно, видели штрих-код UPC, подобный приведенному ниже, на товарах, так как он часто используется для идентификации товаров для продажи, чтобы кассиры могли сканировать их, чтобы ускорить оформление заказа.

Штрих-код UPC, или Универсальный код продукта, используется с 1974 года. Его назначение в основном в розничной торговле и кодирует только серию цифр, что делает его ограниченным в применении. Хотя существует много различных типов линейных штрих-кодов, они не могут хранить много информации. Такие приложения, как судоходство и производство автомобилей, требовали стандарта, который бы содержал больше данных.

 2D штрих-коды с дополнительными данными

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

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

Другие типы двумерных штрих-кодов могут содержать чрезвычайно плотный объем данных. Например, формат PDF417, указанный на обороте большинства водительских прав в США, может кодировать до 1800 символов ASCII.

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

Что могут делать коды с большим количеством данных?

QR-коды появились в автомобильной промышленности как способ отслеживать автомобили в процессе их производства, но их популярность быстро выросла за пределами этой отрасли. Подобно другим 2D-кодам, QR-коды могут упаковывать тонну данных и даже работать при уменьшении разрешения или иным повреждении.

Один QR-код может содержать 4 296 символов ASCII, что позволяет быть более креативным в отношении того, что вы можете с ними делать. Вы даже можете отформатировать данные для запуска действий, когда устройство чтения распознает их.

Одно замечательное применение QR - кодов с поддержкой большой емкости данных -использование их для управления Wi-Fi соединения. Кодируя следующую строку, вы можете создать QR-код, который автоматически регистрирует пользователей Android в сети Wi-Fi.

WIFI:S:<SSID>;T:<WPA|WEP|>;P:<password>;H:<true|false|>;

Или с помощью простого приложения для Android вы сможете легко создать QR-код, которым можете поделиться с кем угодно. Когда другой человек отсканирует этот QR-код, он будет автоматически подключен к вашей сети Wi-Fi. Вы также можете сохранить его для будущего использования, поэтому вам не нужно будет утомительно вводить информацию о вашей сети Wi-Fi каждый раз, когда вы ее используете. Любой, кто отсканирует QR-код на устройстве Android, автоматически войдет в зашифрованную сеть Wi-Fi.

Чтобы узнать, сколько данных может упаковать QR-код, взгляните на этот код:

Этот крошечный код содержит следующий текст:

QR-код версии 40 может содержать до 1852 символов. 

QR-код (сокращенно от кода быстрого ответа) представляет собой тип матричного штрих-кода (или двумерного кода), который предназначен для чтения на смартфонах.

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

QR-код, созданный дочерней компанией Toyota Denso Wave в 1994 году, является одним из самых популярных типов двумерных штрих-кодов.

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

Технология часто используется в Японии и Южной Корее; Великобритания является седьмым по величине национальным потребителем QR-кодов.

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

QR-коды могут использоваться для отображения текста пользователю, для добавления контакта vCard на устройство пользователя, для открытия универсального идентификатора ресурса (URI) или для составления электронного или текстового сообщения.

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

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

 QRgen для взлома QR-кода

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

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

Доступ к категориям полезных нагрузок, доступных в QRGen, можно получить с помощью флага -I и номера во время выполнения скрипта. Номер и тип полезной нагрузки указаны ниже:

 0 : SQL Injections

1 : XSS

2 : Command Injection

3 : Format String

4 : XXE

5 : String Fuzzing

6 : SSI Injection

7 : LFI / Directory Traversal

Чтобы создать множество вредоносных QR-кодов для тестирования, содержащих нечеткие полезные нагрузки строк, нам нужно просто запустить QRGen.py -l 5

Что нам потребуется:

Чтобы использовать QRGen, вам нужно установить Python3. Поскольку он кроссплатформенный, это должно быть возможно в любой операционной системе. Вам также понадобятся несколько библиотек Python, включая qrcode, Pillow и argparse, которые мы установим во время установки.

1) Установка QRGen

Чтобы начать работу с QRGen, нам нужно скачать его с GitHub . Мы сделаем это, выполнив команду ниже в окне терминала.

Как только repo завершит загрузку, измените ( cd ) на его каталог и перечислите ( ls ) его содержимое, чтобы найти файл требований.

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

Если это не сработает, вы также можете установить его с помощью этой альтернативной команды.

~/QRGen$ python3 -m pip install -r requirements.txt

2) Создание вредоносных QR-кодов и полезной нагрузки

Теперь вы сможете запустить скрипт, набрав python3 qrgen.py.

Как видите, создавать полезные данные довольно просто. Для начала давайте создадим полезную нагрузку, содержащую строки формата. Для этого запустите QRGen со следующим аргументом.

Будет сгенерирована серия QR-кодов, и последний из созданных откроется автоматически.

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

3) Кодирование пользовательских полезных нагрузок

Чтобы кодировать пользовательскую полезную нагрузку, мы можем сначала создать текстовый файл, содержащий то, что мы хотим закодировать. Каждая строка будет новой полезной нагрузкой. Для создания нового текстового файла набираем nano badstuff.txt 

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

Мы можем сохранить его, нажав Control X , затем нажмите и Enter, чтобы подтвердить сохранение. Теперь вы должны увидеть текстовый файл, содержащий вашу полезную нагрузку.

Чтобы записать полезную нагрузку в QR-код, мы будем использовать флаг -w . Предполагая, что ваш файл полезных данных называется «badstuff.txt», команда для этого должна выглядеть следующим образом (не забудьте заранее вернуться в каталог QRGen).

Для моей полезной нагрузки вилка- бомба сгенерируется QR-код , который и появится ниже .

 Заключение:

Не сканируйте QR-коды без особой необходимости

QR-коды могут кодировать много информации, и, как мы узнали сегодня, они могут даже быть отформатированы, чтобы заставить устройство выполнять такие действия, как подключение к сети Wi-Fi. Это делает сканирование QR-кода рискованным, поскольку у человека нет возможности прочитать информацию(возможность есть,но не все о ней знают), прежде чем подвергать ваше устройство какой-либо полезной нагрузке, содержащейся внутри. Если вы сканируете QR-код, который кажется подозрительным, обратите внимание на то, что код пытается запустить, не подключайтесь к сети Wi-Fi и не переходите по сокращенной ссылке.

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

Источник


Report Page