Опубліковано 2 червня, 20251 р Адміністратор Що таке поліглоти та як вони працюють?Поліглот-файл – це файл, тип якого змінюється залежно від контексту використання. Щоб краще зрозуміти суть цього, можна розглянути наступний приклад – файл зображення JPEG, який також містить експлойт для сканування комп’ютерної інформації в Linux. І залежно від того, як використовується цей поліглот, його тип також змінюватиметься. Це досягається шляхом зберігання байтів сигнатури, за допомогою яких різні системи можуть визначити розширення файлу.Деякі приклади байтів сигнатури:JPEG-файли – починаються з FF D8 і закінчуються на FF D9PDF-файли – починаються з "%PDF" (у шістнадцятковому форматі – 25 50 44 46)Основний набір поліглотів містить код, написаний однією мовою програмування. Найчастіше вони використовуються для обходу захисту на основі розширень файлів — користувач з більшою ймовірністю завантажить файл з розширеннями JPEG, PNG та PDF, ніж з потенційно небезпечними JS, SH та HTML. Більше про поліглоти можна прочитати тут або тут.Принципи створення поліглотів різних форматів.Оскільки кожне розширення файлу має унікальну структуру, для кожного типу існує різний спосіб впровадження експлойтів.Формат JPEGПід час приховування експлойтів у JPEG використовується метод, що полягає у зміні значення довжини на потрібну кількість байтів.приклад оригінального контентуПісля зміни значення у файлі з'являється додаткове місце, куди можна розмістити експлойт:приклад зміненого контентуФормат PNGЧерез те, що структура PNG-файлу являє собою послідовність фрагментів, метод додавання нового фрагмента після IHDR в основному використовується для приховування необхідної інформації.структура до модифікаціїПотрібно додати фрагмент tEXt, який дозволить записувати інформацію, яку потрібно приховати в ньому, у нашому випадку JS + HTML експлойт:структура після модифікаціPDF -форматЧасто використовуються різні методи редагування рядків. Зазвичай кожен рядок укладається в дужки, але зловмисник може записати його як «стовпець» або замінити кожен символ рядка його вісімковим або шістнадцятковим представленням, а числа можуть бути розділені пробілами необмежену кількість разів. Також можна «приховати» JS-експлойти в PDF за допомогою об'єктів /JavaScript /JS, які самі можуть містити виконуваний код або посилатися на інший JS-об'єкт.Окрім вищезазначених методів приховування експлойтів, ви можете обфускувати код за допомогою шістнадцяткових послідовностей. Наприклад, /JavaScript може перетворитися на /J#61#76#61Script (при перетворенні з шістнадцяткового коду в текстовий ми отримуємо a = 61, v = 76, a = 61).
Для публікації повідомлень створіть обліковий запис або авторизуйтесь