61. Цифровая криминалистика на коленке: Проверяем QR-коды и «заряженные» файлы в Linux

QR-коды повсюду: от оплаты кофе в вендинговых аппаратах до квитанций ЖКХ. Но задумывались ли вы, что на самом деле скрывается за черно-белыми квадратами? Мошенники давно освоили «квишинг» (QR-фишинг), подменяя наклейки на терминалах.

Сегодня мы разберем, как с помощью стандартных инструментов Linux (Astra, Debian, Ubuntu) провести полный аудит подозрительного кода и заглянуть «под капот» обычного JPEG-файла.

1. Расшифровка без телефона

Первым делом нам нужно вытащить содержимое QR-кода, не переходя по ссылке. Если у вас есть скриншот или фото кода, используйте zbarimg:

Bash

zbarimg -q --raw my_qr_code.jpg

На выходе мы получим «голый» URL. Например: https://kaspi.kz/pay/Se......nding?...ice_id=5241&....

На что смотреть: Проверяйте домен. kaspı.kz (с турецкой ı) — это не kaspi.kz. Если видите сокращатели ссылок (bit.ly, t.co) там, где их быть не должно — это красный флаг.

(Краткая шпаргалка:
Прочитать QR zbarimg -q —raw img.jpgzbar-tools. Утилита — zbar-tools
Создать QR из текста qrencode -o img.png «текст» . Утилита — qrencode
Создать QR из файла qrencode -o img.png < file.txt . Утилита — qrencode )

2. Разведка серверов через curl

Прежде чем открывать ссылку в браузере, узнаем, куда она нас ведет и какие заголовки отдает сервер. Обычный запрос может «подвиснуть», так как крупные сервисы блокируют роботов. Притворимся браузером:

Bash

curl -I -L -A "Mozilla/5.0" 'https://ссылка-из-qr-кода'
  • -I: Только заголовки.
  • -L: Следовать за редиректами.
  • -A: Подмена User-Agent.

Ищите заголовок Strict-Transport-Security (HSTS). Его наличие — хороший знак того, что сервис заботится о шифровании.

3. Стеганография: Когда картинка — это не только картинка

Файлы JPEG — отличный контейнер для скрытых данных. Злоумышленник может просто приклеить вредоносный скрипт в «хвост» изображения: cat image.jpg virus.sh > fake_image.jpg.

Для поиска таких «закладок» мы используем утилиту strings, которая вытаскивает текстовые строки из бинарных файлов.

Проблема кодировок (ASCII vs UTF-8)

Многие сталкиваются с тем, что strings молчит, хотя в файле точно есть русский текст. Проблема в том, что старая добрая strings по умолчанию ищет только английские символы (7-бит ASCII).

Чтобы найти кириллицу в UTF-8, используйте «грубую силу» grep:

Bash

grep -aE "[а-яА-ЯёЁ]{4,}" suspect_file.jpg

Или заставьте strings сканировать всё:

Bash

strings -a -e s suspect_file.jpg | grep -i "пароль"

(Если вам прислали файл или ссылку в мессенджере и вы сомневаетесь:

Проверка через терминал: Если это файл, прогоните его через команду strings. Она вытащит из любого бинарного файла все читаемые текстовые строки.

Bash

strings -e S fake_photo.jpg | tail -n 5


Если в конце картинки вы видите странные ссылки или команды — файл «заряжен».)


(strings -e s,ASCII / UTF-8,  - Обычный английский и стандартный русский текст.

strings -e l,16-bit Little Endian, - Так часто хранятся строки в Windows и в современных скриптах.

strings -e b,16-bit Big Endian, - Встречается в сетевых протоколах и некоторых типах файлов.)
-

4. Автоматизируем проверку: Скрипт «SecureScan»

Чтобы не вводить команды вручную, можно набросать простой Bash-скрипт, который прогонит файл по всем фронтам: и по разным кодировкам (ASCII, UTF-16), и по базе Base64-строк.

Bash

#!/bin/bash
# Простой сканер для deblinux.ru
FILE=$1
echo "=== Анализ $FILE ==="
# Ищем кириллицу напрямую в бинарнике
grep -aE "[а-яА-ЯёЁ]{4,}" "$FILE"
# Проверяем разные кодировки текста
for enc in s l b; do
    echo "--- Кодировка $enc ---"
    strings -a -e $enc "$FILE" | grep -iE "http|pass|token|пароль" | head -n 5
done

5. Как «стерилизовать» файл?

Если вам прислали подозрительную картинку, и вы хотите очистить её от любых потенциальных внедрений, просто пересохраните её через ImageMagick:

Bash

convert infected.jpg clean.jpg

Эта команда заново пересчитает пиксели и создаст новый файл, отбросив всё лишнее, что было приписано в конец файла.

Итог

Безопасность в Linux — это не только фаерволы и права доступа. Это еще и умение вовремя заметить лишние байты там, где их быть не должно. Проверяйте, что сканируете, и не доверяйте «хвостам» своих JPEG-файлов.

Stay tuned, stay secure.

Оставьте комментарий