Loader

Spring випереджає противників

Якщо експлойта Log4Shell було недостатньо, нещодавно було визначено нову загрозу нульовогой дня, Spring4Shell, також відомий як CVE-2022-22965. Подібно до Log4Shell, цей новий експлойт може отримати контроль над комп’ютером-жертвою протягом декількох секунд, використовуючи прості HTTP-запити.

Подібні експлойти є чудовою нагодою продемонструвати, як технологія обману, така як Fidelis Deception®, може служити не тільки системою раннього попередження для виявлення загроз нульового дня, але також може надати цінну інформацію захисникам мережі щодо активності зловмисників.

Для цього блогу було створено приманку, націлену на вразливість Spring4Shell, щоб отримати інформацію про методи зловмисників та дізнатися, як зупинити подібні атаки раз і назавжди. Буде показано покроковий сценарій того, як виглядають ці атаки і як легко вони можуть взяти під контроль та зібрати цінну інформацію з машини жертви.

Для всіх цих спроб атаки машина-жертва буде принадою на основі контейнера. Ця нова функція Fidelis Deception версії 9.5 дозволяє користувачам швидко та легко запускати налаштовані приманки з багатими даними у контейнерному середовищі. Вся активність зловмисників, звичайно, постійно відстежується та аналізується, що дозволяє захисникам мережі відстежувати атаку та збирати інструменти та методи зловмисника.

Передісторія Spring4Shell
Ця вразливість у Tomcat дозволяє зловмиснику використовувати гнучкі конфігурації Java/spring для отримання доступу до програми за допомогою веб-оболонки. У цих вразливих додатках платформа spring дозволяє зловмиснику задавати значення певних властивостей класу за допомогою HTTP-запитів.

Як приклад, наступний запит змінить значення властивості ‘name’ основного класу програми на ‘XXX’.
GET /?name=XXX

Аналогічно, наступний запит дозволяє змінити значення іншої властивості іншому класі.
GET /?class..=

Ця атака маніпулює властивостями журналів tomcat Access для створення нового файлу журналу, який буде виконуваною веб-оболонкою.

Корисні дані зараження включають три запити HTTP, які вносять набір змін для створення нової URL-адреси з інтерактивною оболонкою. Цю URL-адресу тепер можна використовувати для виконання команд на комп’ютері жертви.

Етапи атаки
У цьому блозі показано наступні кроки атаки:
a. Рекогносцировка – визначення вразливості жертви.
b. Зараження – виконання атаки Spring4Shell.
c. Управління машиною та отримання даних.

Рекогносцировка – визначення того, чи є передбачувана жертва вразливою
Під час розвідки зловмисник скануватиме мережу, щоб знайти потенційно вразливі програми. Мета полягає в тому, щоб знайти вразливі програми за допомогою HTTP.
Першим кроком є запуск сканування з використанням nmap для виявлення відкритих портів, пов’язаних із вразливістю Spring4Shell.

Це докладне сканування nmap повертає відкриті порти та відповідні протоколи. У випадках, коли сканування не повертає протокол, який використовується для кожного порту, зловмисник спробує отримати доступ до порту безпосередньо за допомогою веб-браузера. У цьому прикладі використовуємо інструменти Chrome для ідентифікації заголовків HTTP.

Щоб визначити версію Tomcat, зловмисник спробує підключитись до сервера за допомогою telnet. Це спричиняє помилку сервера, яка показує версію Tomcat.

Зараження – виконання атаки Spring4Shell
Декілька організацій опублікували Proof of Concepts (PoCs) для цієї вразливості. Для нашого дослідження ми використали наступний PoC для зараження тестового хоста –https://github.com/TheGejr/SpringShell, https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/

Метою зараження є створення нового файлу у веб-застосунку “shell.jsp”. Це буде інтерактивна JSP-сторінка, яка приймає команду від користувача, виконує її та відправляє вихідні дані назад користувачеві.

Для дослідження JSP-файл нижче був написаний для прийняття надісланого йому параметра cmd, виконання параметра cmd і повернення вхідних даних користувачеві в HTTP-відповіді.

Зараження включає три етапи HTTP-запиту. Перший запит дозволяє створити новий файл журналу, другий запит готує підроблений файл журналу з вмістом, який хоче зловмисник, а третій запит записує файл, обгортаючи його «%» і «%>», щоб його можна було виконати пізніше.

Зверніть увагу, що другий запит включає шлях до файлу (/webapps/ROOT/, ім’я файлу (оболонка) та суфікс (.jsp).

Перший запит:

Другий запит:

Третій запит:

Управління машиною та вилучення даних

Тепер, коли файл “shell.jsp” підкладений, зловмисник може використовувати його для виконання команд над жертвою.
Його можна використовувати для деяких цікавих команд. Для кожного кроку командою, що виконується, буде параметр, що передається в оболонку.

a. Перевірка зараження комп’ютера
По-перше, зловмисник виконає просту команду echo, щоб переконатися, що комп’ютер правильно заражений.

Команда: echo “Hacked!”

URL-шлях: /shell.jsp?cmd=echo%20″ Hacked!”

b. Перевірка привілеїв, які має додаток (і зловмисник)

Наступна команда буде перевірити, який обліковий запис користувача був скомпрометований і пов’язані з нею привілеї, які були отримані на цій машині-жертві.

Команда: id

URL-шлях: /shell.jsp?cmd=id

Випуск:

c. Перегляд файлової системи

Існує два типи команд для перегляду файлової системи – один для пошуку прихованих файлів у каталозі /etc/, а другий використовуватиме команду find для пошуку документів по всій файловій системі.

Пошук прихованих файлів у папці /etc/.

Команда: ls -a / etc

URL:/shell.jsp?cmd=ls%20-a%20/etc

d. Отримайте доступ до облікових даних AWS

Нарешті, вийміть вміст одного з найцікавіших файлів, які були знайдені. У цьому випадку вміст файлів облікових даних AWS. У разі використання інтерфейсу командного рядка AWS цей файл міститиме облікові дані AWS у вигляді відкритого тексту.

Команда: cat /root/.aws/credentials

URL-адреса: /shell.jsp?cmd=cat%20/root/.aws/credentials

Приманка
Машина жертви, яка використовується тут, є приманкою на основі контейнера.

Для створення цієї конкретної приманки Spring4Shell ми використовували докеризований вразливий додаток, створений LunaSec. https://github.com/lunasec-io/Spring4Shell-POC

Завантажте образ docker у систему Deception, щоб використовувати його як контейнер Приманки. У Fidelis Deception® версії 9.5 ви можете створити таку приманку за лічені хвилини.

Давайте подивимося на оповіщення, що запускаються приманкою, коли машина була заражена, та оповіщення, що спрацьовують під час вилучення даних.

Попередження про обман
Будь-який доступ до приманки вважається дієвим попередженням, яке має бути розставлене за пріоритетами та негайно усунено. Це пов’язано з тим, що ніхто не повинен взаємодіяти з приманками з законних ділових причин.

Усі оповіщення згруповані на єдиний висновок, який агрегує всю активність від зловмисника до приманки. Для вищевказаних сценаріїв атаки команди безпеки бачитимуть попередження про приманку на всіх етапах атаки – розвідка, зараження та отримання даних – при детальному розгляді.

Оповіщення на етапах розвідки та зараження є дієвими, щоб упіймати атакуючого та швидко визначити, що напад стався. Оповіщення на етапі вилучення даних показуватимуть цінну інформацію про дії та наміри зловмисників після злому системи.

Попередження, пов’язані з фазою зараження:

Попередження 1 – Фаза зараження – перший HTTP-запит

Попередження 2 – Фаза зараження – другий HTTP-запит

Попередження 3 – Фаза зараження – третій HTTP-запит

Оповіщення, пов’язані з отриманням інформації:

Попередження 4 – Вилучення даних – надсилання ехо-команди за допомогою HTTP-запиту

Попередження 5 — Вилучення даних — скидання тексту файлу облікових даних за допомогою запиту HTTP

Будьте готові до атак – використовуйте обман

Як було показано тут, технології Fidelis Deception досить ефективні для швидкого виявлення загроз нульового дня та утримання кібер-противників подалі від ваших даних та активів. Технологія обману від Fidelis Cybersecurity полегшує захист вашого середовища. Розгорніть готові приманки локально, у хмарі чи контейнерах. Просто створіть власну приманку із золотим зображенням на приманці RealOS або як частину образу контейнера.

Просто так легко перейти до проактивного кіберзахисту.

З питань проведення індивідуальної демонстрації, пілотного тестування рішення Fidelis і організації партнерських тренінгів звертайтеся, будь ласка:  info.ua@oberig-it.com, +380 67 2234210.

Джерело: https://bit.ly/3z8ahAP