15 Лют, 2023

Віддалене виконання коду

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Абревіатура уразливості віддаленого виконання коду - RCE.

Уразливість віддаленого виконання коду (RCE) - це тип вразливості в системі безпеки, яка дозволяє зловмиснику виконувати довільний код або команди в цільовій системі або додатку віддалено, зазвичай по мережі.

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

У контексті кібербезпеки такі скорочення, як RCE, зазвичай використовуються для позначення конкретних типів вразливостей чи атак, що допомагає полегшити спілкування між фахівцями з безпеки і дослідниками. Інші поширені скорочення в області кібербезпеки включають XSS (міжсайтовий скриптинг), SQLi (впровадження SQL), CSRF (підробка міжсайтових запитів) і DoS (відмова в обслуговуванні).

Приклад уразливого коду на різних мовах програмування

Python:

				
					import os

user_input = input("Enter a file name: ")
os.system("cat " + user_input)
				
			

Цей код приймає вхідні дані від користувача, а потім використовує os.system() функція для виконання cat команда на додатковому введенні без належної перевірки або очищення. Зловмисник може ввести спеціально створене ім'я файлу в якості вхідних даних для виконання довільних команд в системі.

PHP:

				
					$user_input = $_POST['user_input'];
eval($user_input);
				
			

Цей код приймає дані, що вводяться користувачем з запиту POST, а потім використовує eval() функція для виконання його у вигляді PHP-коду. З тих пір як eval() якщо зловмисник може виконати будь-допустимий PHP-код, він може надати шкідливий код в якості вхідних даних для виконання довільних команд на сервері.

Java:

				
					Runtime.getRuntime().exec(request.getParameter("cmd"));
				
			

Цей код приймає користувальницький введення з веб-запиту і передає його в exec() метод проведення Runtime клас без належної перевірки вхідних даних. Зловмисник може надати спеціально створений enter для виконання довільних команд в системі.

C#:

				
					string cmd = Request.QueryString["cmd"];
System.Diagnostics.Process.Start("cmd.exe", cmd);
				
			

Цей код приймає дані, що вводяться користувачем з рядка запиту, а потім використовує Process.Start() спосіб виконання команди в системі. Зловмисник може ввести спеціально створену команду в якості вхідних даних для виконання довільних команд в системі.

Приклади використання вразливостей віддаленого виконання коду

  1. Впровадження коду веб-додаток: в цьому сценарії зловмисник може маніпулювати користувальницьким введенням у веб-додатку, щоб впровадити шкідливий код, який може бути виконаний на сервері. Наприклад, зловмисник може впровадити такий код, як <?php system($_GET[‘cmd’]); ?> у полі введення користувача, яке пізніше обробляється сервером. Коли сервер обробляє вхідні дані, код виконується, і system() функція викликається з допомогою наданої користувачем команди в якості аргументу, що дозволяє зловмиснику виконувати довільні команди на сервері.

  2. Впровадження зовнішньої сутності XML (XXE): у цьому випадку зловмисник може маніпулювати введенням XML в додаток, щоб використовувати уразливість XXE, яка може бути використана для виконання довільного коду на сервері. Наприклад, зловмисник може відправити спеціально створений XML-файл, що містить зовнішню сутність, яка посилається на файл, що містить шкідливий код. Коли додаток обробляє вводиться XML-код, шкідливий код виконується на сервері, що дозволяє зловмиснику отримати контроль над системою.

  3. Впровадження SQL: у цьому випадку зловмисник може маніпулювати користувальницьким введенням у веб-додатку, щоб впровадити шкідливий SQL-код, який може бути виконаний на сервері. Наприклад, зловмисник може відправити спеціально створений SQL-запит, що містить таку команду, як SELECT * FROM users; DROP TABLE users; Коли сервер обробляє запит, DROP TABLE команда виконується, видаляючи весь users таблиця бази даних.

  4. Небезпечна десериализация: у цьому випадку зловмисник може маніпулювати сериализованными даними, щоб використовувати уразливість небезпечною десеріалізації в додатку. Наприклад, зловмисник може відправити спеціально створений сериализованный об'єкт, який використовує уразливість в процесі десеріалізації, що дозволяє зловмиснику виконувати довільний код на сервері.

  5. Впровадження команд: зловмисник може вводити довільні команди в вразливу систему або додаток, маніпулюючи вводяться користувачем даними, такими як аргументи командного рядка або змінні середовища. Наприклад, зловмисник може ввести таку команду, як "; rm -rf /" щоб видалити всі файли в системі.

  6. Веб-оболонки: зловмисник може завантажити веб-оболонку в вразливу систему або додаток, щоб отримати віддалений доступ і виконати довільні команди. Веб-оболонки зазвичай пишуться на серверних мовах сценаріїв, таких як PHP або ASP, і можуть надавати зловмисникам веб-інтерфейс для виконання команд і управління системою.

Методи підвищення привілеїв для віддаленого виконання коду вразливі місця

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

Методи, що використовуються для підвищення привілеїв вразливостей RCE:

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

  2. Використання вразливостей додатків: у цьому методі зловмисник може використовувати уразливості в додатку для отримання більш високих рівнів доступу до системи. Наприклад, зловмисник може скористатися уразливістю у веб-додатку, щоб отримати адміністративний доступ до базового серверу.

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

  4. Крадіжка облікових даних: при використанні цього методу зловмисник може вкрасти дійсні облікові дані користувача із системи або програми, щоб отримати більш високий рівень доступу. Наприклад, зловмисник може використовувати кейлоггер або інше шкідливе ПО, щоб вкрасти ім'я користувача і пароль привілейованого користувача, що дозволить йому увійти в систему і отримати повний контроль над системою.

  5. Використання програм setuid: В Unix-подібних системах програми setuid - це програми, які виконуються з правами власника програми, а не користувача, що запустив програму. У деяких випадках зловмисник може використовувати програму setuid для підвищення своїх привілеїв. Наприклад, зловмисник може використовувати уразливість RCE для виконання коду від імені непривілейованого користувача, а потім використовувати цей доступ для підвищення своїх привілеїв шляхом використання вразливою програми користувача.

  6. Використання облікових записів служб: У деяких випадках програма може бути налаштований для запуску з використанням облікового запису служби з підвищеними привілеями. Якщо зловмисник може скористатися уразливістю RCE в додатку, він може виконати код, використовуючи обліковий запис служби, що дасть йому більш високий рівень доступу.

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

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

  9. Використання умов перегони: У деяких випадках у системі може існувати уразливість в умовах гонки, яка може бути використана для підвищення привілеїв. Наприклад, зловмисник може використовувати уразливість RCE для створення тимчасового файлу від імені непривілейованого користувача, а потім швидко перемістити файл у папку, доступну для запису привілейованим користувачем, перш ніж файл буде видалено. Це дозволило б зловмиснику виконувати код від імені привілейованого користувача.

Загальна методологія та контрольний список for Віддалене виконання коду вразливі місця

  1. Визначте мету: Спочатку визначте цільове додаток або систему, які ви хочете протестувати на наявність вразливостей RCE. Визначте версію програмного забезпечення, мову і використовувану платформу.

  2. Визначте точки входу: Потім визначте точки входу, які можуть бути використані для запуску уразливості RCE. Це може включати в себе вхідні дані, такі як поля форми, параметри запиту або кінцеві точки API.

  3. Створення тестових прикладів: Створіть список тестових прикладів, що охоплюють всі точки входу, визначені на кроці 2. Кожен тестовий приклад повинен включати набір вхідних значень, які потенційно можуть викликати вразливість RCE.

  4. Виконання тестових прикладів: виконайте тестові приклади і поспостерігайте за поведінкою програми або системи. Шукайте будь-яке несподіване або незвичайна поведінка, наприклад повідомлення про помилки або відповіді сервера, що містять системну інформацію.

  5. Аналіз результатів: Проаналізуйте результати тестових прикладів, щоб виявити будь-які можливі уразливості. Шукайте будь-які ознаки виконання коду або компрометації системи, такі як несподівані процеси, запущені на сервері, створені або змінені файли або мережевий трафік, спрямований несподівані місця призначення.

  6. Використання вразливостей: Як тільки уразливість була виявлена, спробуйте використовувати її, щоб отримати контроль над системою або додатком. Використовуйте різні інструменти і методи, щоб дізнатися, чи можливо виконати код на цільовій системі.

  7. Перевірка вразливостей: Нарешті, перевірте всі виявлені вразливості, спробувавши використовувати їх у контрольованому середовищі. Це допоможе підтвердити, що уразливість може бути використана, і зрозуміти ступінь шкоди, яка може бути заподіяна.

Додаткові поради, які слід мати на увазі при тестуванні на наявність вразливостей RCE:

Почніть з цілеспрямованого підходу: почніть тестування, зосередивши увагу на точках входу, які, швидше за все, будуть вразливими, таких як поля форми або параметри запиту. Це допоможе розставити пріоритети в тестуванні і уникнути витрати часу на області, які навряд чи можна буде використовувати.

Використовуйте різні інструменти та методи: використовуйте комбінацію методів автоматичного і ручного тестування, таких як фаззинг, статичний аналіз і перевірка вручну, для виявлення і використання вразливостей.

Перевірка на наявність різних типів вразливостей RCE: Обов'язково перевірте наявність різних типів вразливостей RCE, таких як впровадження команд, впровадження SQL і впровадження команд операційної системи. Кожен тип вразливості вимагає дещо іншого підходу до тестування.

Тестування з різних точок зору: тестування з різних точок зору, таких як не пройшов перевірку автентичності користувач, аутентифікований користувач і привілейований користувач, для виявлення вразливостей, які можуть бути приховані за різними рівнями доступу.

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

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

Набір інструментів для експлуатації Віддалене виконання коду вразливі місця

Ручні Інструменти:

  1. Burp Suite – Burp Suite - це популярний інструмент тестування веб-додатків, який включає в себе ряд функцій для тестування і використання веб-вразливостей, включаючи RCE. У ньому є проксі, сканер, павук і інші інструменти, які дозволяють тестировщику перехоплювати, аналізувати і редагувати веб-трафік.

  2. Metasploit – Metasploit - це інструмент тестування на проникнення, який включає в себе ряд експлойтів для різних вразливостей, включаючи RCE. Він також надає платформу для створення і тестування користувацьких експлойтів.

  3. PowerShell – PowerShell - це оболонка командного рядка і мова сценаріїв, розроблений корпорацією Microsoft. Він часто використовується тестерами для запуску команд в цільових системах з метою використання вразливостей RCE.

  4. Python – Python - популярна мова програмування, який часто використовується для розробки користувальницьких експлойтів і корисних навантажень для вразливостей RCE.

  5. Netcat – Netcat - це універсальний мережевий інструмент, який можна використовувати для створення зворотного оболонки в цільовій системі для виконання команд і використання вразливостей RCE.

  6. Shodan – Shodan - це пошукова система для пристроїв, підключених до Інтернету, яка дозволяє тестувальникам визначати потенційні цілі для вразливостей RCE.

  7. Wireshark – Wireshark - це аналізатор мережевих протоколів, який можна використовувати для виявлення вразливостей RCE шляхом аналізу мережевого трафіку.

  8. Nmap – Nmap - це інструмент мережевого сканування, який можна використовувати для виявлення відкритих портів і потенційних вразливостей, включаючи RCE.

  9. Manual Exploits – методи ручного використання, такі як впровадження шкідливого коду через веб-форми, обхід перевірки вводу і уразливості при включенні файлів, також можуть використовуватися для використання вразливостей RCE.

Автоматизовані інструменти:

  1. Nikto – Nikto - це сканер веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення вразливостей, включаючи RCE, в веб-додатках.

  2. Nessus – Nessus - це сканер вразливостей, який можна використовувати для виявлення вразливостей RCE у веб-додатках і системах.

  3. OpenVAS – OpenVAS - це сканер вразливостей, який можна використовувати для виявлення вразливостей RCE у веб-додатках і системах.

  4. Acunetix – Acunetix - це сканер веб-вразливостей, який можна використовувати для виявлення і використання вразливостей RCE у веб-додатках.

  5. ZAP – ZAP - це сканер веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення вразливостей, включаючи RCE, в веб-додатках.

  6. SQLMap – SQLMap - це автоматизований інструмент впровадження SQL, який можна використовувати для виявлення і використання вразливостей RCE у веб-додатках.

  7. Платформа Metasploit – Платформа Metasploit включає в себе ряд автоматизованих експлойтів RCE, які можна використовувати для тестування і використання вразливостей RCE у веб-додатках і системах.

  8. Arachni – Arachni - це сканер веб-додатків, який можна використовувати для виявлення вразливостей, включаючи RCE, в веб-додатках.

  9. W3af – W3af - це сканер веб-додатків з відкритим вихідним кодом, який можна використовувати для виявлення вразливостей, включаючи RCE, в веб-додатках.

  10. BeEF – BeEF (Browser Exploitation Framework) - це інструмент, який можна використовувати для використання вразливостей RCE в веб-браузерах.

  11. XSSer – XSSer - це інструмент з відкритим вихідним кодом, який можна використовувати для виявлення і використання вразливостей RCE у веб-додатках.

Середній бал CVSS Віддалене виконання коду вразливі місця

Уразливості віддаленого виконання коду (RCE), середній бал CVSS може сильно варіюватися в залежності від конкретної уразливості і порушеного програмного забезпечення або системи. Проте в цілому уразливості RCE вважаються одними з найбільш серйозних і потенційно небезпечних вразливостей.

Згідно зі звітом NIST (Національний інститут стандартів і технологій), середній бал CVSS для вразливостей RCE склав 9,8 з максимум 10, що вказує на те, що ці уразливості можуть надати критичний вплив на вразливу систему. Це пов'язано з тим, що уразливості RCE дозволяють зловмисникам виконувати довільний код на цільовій системі, що може привести до широкого спектру потенційних наслідків, від крадіжки та знищення даних до компрометації і контролю системи.

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

Загальна перерахування слабких місць (CWE) для Віддалене виконання коду вразливі місця

Ось деякі з найбільш поширених помилок, пов'язаних із вразливостями віддаленого виконання коду:

  1. CWE-94: Впровадження коду – зловмисник може маніпулювати виконанням коду, вводячи шкідливий код у вхідні дані програми.

  2. CWE-78: Впровадження команд операційної системи – зловмисник може виконувати несанкціоновані команди операційної системи, маніпулюючи введенням, який передається в систему.

  3. CWE-269: Неправильне управління привілеями – недостатній або неправильний контроль може дозволити зловмиснику виконати код з підвищеними привілеями.

  4. CWE-732: Неправильне призначення дозволів для критично важливих ресурсів – неправильні налаштування дозволів можуть дозволити зловмиснику виконувати код з підвищеними привілеями.

  5. CWE-284: Неправильний контроль доступу – неадекватні або відсутні елементи управління можуть дозволити зловмиснику виконати код з підвищеними привілеями.

  6. CWE-285: Неправильна авторизація – недостатні або неадекватні перевірки можуть дозволити зловмиснику виконати код з підвищеними привілеями.

  7. CWE-787: Запис поза меж – зловмисник може маніпулювати виконанням коду, записуючи за межі буфера чи іншої структури даних.

  8. CWE-772: Відсутність звільнення ресурсу після закінчення терміну служби – нездатність належним чином звільнити ресурси після використання може дозволити зловмиснику виконати код з підвищеними привілеями.

  9. CWE-611: Неправильне обмеження посилання на зовнішню сутність XML – Недостатня перевірка вхідних даних XML може дозволити зловмиснику виконати несанкціонований код.

  10. CWE-798: Використання жорстко запрограмованих облікових даних – використання жорстко запрограмованих облікових даних може дозволити зловмиснику виконувати код з підвищеними привілеями.

  11. CWE-840: Неправильне застосування одного унікального екземпляра додатку – недостатній контроль може призвести до запуску декількох екземплярів програми, що потенційно дозволить зловмиснику виконати код з підвищеними привілеями.

  12. CWE-863: Неправильна авторизація – недостатня або неадекватна перевірка авторизації може дозволити зловмиснику виконати код з підвищеними привілеями.

  13. CWE-89: Неправильна нейтралізація спеціальних елементів, використовуваних в команді SQL – Недостатня перевірка вхідних даних може дозволити зловмиснику виконувати несанкціоновані команди SQL.

  14. CWE-863: Неправильна авторизація – недостатня або неадекватна перевірка авторизації може дозволити зловмиснику виконати код з підвищеними привілеями.

  15. CWE-22: Неправильне обмеження шляху до каталогу з обмеженим доступом – недостатня перевірка вхідних даних може дозволити зловмиснику виконати код за межами передбачуваного каталогу.

  16. CWE-78: Впровадження команд операційної системи – зловмисник може виконувати несанкціоновані команди операційної системи, маніпулюючи введенням, який передається в систему.

  17. CWE-319: Передача конфіденційної інформації відкритим текстом – передача конфіденційної інформації відкритим текстом може дозволити зловмиснику виконати код з підвищеними привілеями.

  18. CWE-122: Переповнення буфера на основі купи – зловмисник може маніпулювати виконанням коду, переповнюючи структури даних на основі купи.

  19. CWE-434: Необмежена завантаження файлу з небезпечним типом – недостатня перевірка вхідних даних може дозволити зловмиснику завантажувати і запускати неавторизовані файли.

  20. CWE-611: Неправильне обмеження посилання на зовнішню сутність XML – Недостатня перевірка вхідних даних XML може дозволити зловмиснику виконати несанкціонований код.

Кілька прикладів з безлічі можливих CWE, які можуть бути пов'язані з уразливими віддаленого виконання коду, а конкретні місця і дії будуть залежати від контексту і характеру порушеної системи.

Топ-10 останніх CVE, пов'язаних з Віддалене виконання коду вразливі місця

CVE-2023-25718 – Процес підпису криптографічного коду і елементи управління ConnectWise Control через 22.9.10032 (раніше відомий як ScreenConnect) є криптографічно некоректними. Зловмисник може віддалено генерувати або локально змінювати вміст файла і обходити елементи управління підписом коду. Це може бути використано для виконання коду в якості надійного постачальника додатків, підвищення привілеїв чи виконання довільних команд в контексті користувача. Зловмисник підробляє довірений, підписаний виконуваний файл при передачі.

CVE-2023-25717 – Ruckus Wireless Admin через 10.4 дозволяє віддалене виконання коду з допомогою не пройшла перевірку справжності HTTP-запиту GET, як показано в / forms / doLogin?login_username=admin&password=пароль $(підрядок curl.

CVE-2023-25558 – DataHub - це платформа метаданих з відкритим вихідним кодом. Коли інтерфейс DataHub налаштований на аутентифікацію через єдиний вхід, він буде використовувати бібліотеку pac4j. Обробка `id_token` виконується небезпечним способом, який належним чином не враховується інтерфейсом DataHub. Зокрема, якщо будь-яке із значень тверджень id_token починається з префікса {#sb64}, pac4j вважає значення сериализованным об'єктом Java і десериализует його. Ця проблема може призвести до віддаленого виконання коду (RCE) в гіршому випадку. Хоча існує `RestrictedObjectInputStream`, який накладає деякі обмеження на те, які класи можуть бути десериализованы, він допускає широкий спектр пакетів Java і потенційно може використовуватися з різними ланцюжками гаджетів. Користувачам рекомендується виконати оновлення. Відомих обхідних шляхів не існує. Ця вразливість була виявлена і повідомлена лабораторією безпеки GitHub і відслідковується як GHSL-2022-086.

CVE-2023-25136 – Сервер OpenSSH (sshd) 9.1 представив подвійну вразливість при обробці options.kex_algorithms. Це виправлено в OpenSSH 9.2. Не Пройшов перевірку автентичності віддалений зловмисник у конфігурації за замовчуванням може використовувати double free для переходу в будь-яке місце в адресному просторі sshd. В одному сторонньому звіті говориться, що "віддалене виконання коду теоретично можливо".

CVE-2023-25135 – vBulletin до версії 5.6.9 PL1 дозволяє віддаленому зловмиснику, який не пройшов перевірку автентичності, виконувати довільний код з допомогою створеного HTTP-запиту, який запускає десеріалізацію. Це відбувається тому, що verify_serialized перевіряє, що значення сериализовано, викликаючи unserialize і потім перевіряючи наявність помилок. Виправленими версіями є 5.6.7 PL1, 5.6.8 PL1 і 5.6.9 PL1.

CVE-2023-24813 – Dompdf - це конвертер HTML в PDF, написаний на php. З-за різниці в аналізаторі атрибутів Dompdf і php-svg-lib зловмисник все одно може викликати довільні URL-адреси з довільними протоколами. Dompdf аналізує атрибут href тегів `image` і поважає `xlink: href`, навіть якщо вказано `href`. Однак php-svg-lib, який пізніше використовується для аналізу файла svg, аналізує атрибута href. Оскільки `href` дотримується, якщо вказано як `xlink:href`, так і `href`, можна обійти захист на стороні Dompdf, надавши порожній атрибут `xlink: href`. Зловмисник може використовувати уразливість для виклику довільних URL-адрес з довільними протоколами, якщо він надасть SVG-файл Dompdf. У версіях PHP до 8.0.0 це призводить до довільної скасування серіалізації, що призведе принаймні до безпідставного видалення файлу і може призвести до віддаленого виконання коду, в залежності від доступних класів. Ця уразливість була виправлена в коммите `95009ea98`, який був включений у випуск версії 2.0.3. Користувачам рекомендується виконати оновлення. Відомих обхідних шляхів для цієї проблеми не існує.

CVE-2023-24610 – NOSH 4a5cfdb дозволяє віддаленим користувачам, які пройшли перевірку автентичності, виконувати довільний код PHP за допомогою функції завантаження "practice logo". Перевірки на стороні клієнта можна обійти. Це може дозволити зловмисникам вкрасти захищену медичну інформацію, оскільки продукт призначений для складання графіків працездатності.

CVE-2023-24576 – EMC NetWorker може бути потенційно уразливий для уразливості віддаленого виконання коду без автентифікації в службі виконання клієнта Networker (nsrexecd), коли використовується метод аутентифікації oldauth. Віддалений зловмисник, який не пройшов перевірку автентичності, може відправляти довільні команди через службу RPC для виконання в хост-системі з привілеями служби nsrexecd, яка виконується з правами адміністратора.

CVE-2023-24508 – Пристрої Baicells Nova 227, Nova 233 і Nova 243 LTE TDD eNodeB і Nova 246 з прошивкою через RTS / RTD 3.6.6 уразливі для віддаленого використання коду оболонки за допомогою HTTP-командних ін'єкцій. Команди виконуються з використанням виконання перед входом в систему і виконуються з правами root. Наведені нижче методи були протестовані і перевірені стороннім аналітиком і були підтверджені придатними для використання особлива подяка Рустаму Аміну за надання інструкцій по відтворенню.

CVE-2023-24494 – Вразливість збережених міжсайтових сценаріїв (XSS) існує в Tenable.sc із-за неправильної перевірки введених користувачем даних перед їх поверненням користувачам. Пройшов перевірку автентичності віддалений зловмисник може скористатися цим, переконавши користувача клацнути спеціально створений URL-адресу, щоб виконати довільний код сценарію в сеансі браузера користувача.

Список CVE постійно оновлюється і доповнюється актуальний список всіх існуючих поширених загроз і вразливостей (CVE) для вразливостей, пов'язаних з контрабандою HTTP-запитів, можна знайти на офіційному веб-сайті CVE https://cve.mitre.org/

Віддалене виконання коду вразливі місця подвиги

Популярні експлойти, пов'язані з уразливими віддаленого виконання коду:

  1. Metasploit Framework: Це популярний інструмент тестування на проникнення, який включає в себе безліч вразливостей для вразливостей віддаленого виконання коду. Metasploit може використовуватися для розробки і тестування експлойтів для широкого спектра систем і додатків і надає повний набір інструментів для сканування, використання і підтримки доступу до уразливих систем.

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

  3. PowerShell Empire: Це інструмент з відкритим вихідним кодом, який надає потужну платформу для розробки і тестування експлойтів віддаленого виконання коду. PowerShell Empire включає в себе безліч модулів для сканування, використання і підтримки доступу до уразливих систем, і їх можна настроїти відповідно з потребами конкретних сценаріїв атак.

  4. Shellshock: Це добре відомий експлойт, націлений на оболонку Bash, яка зазвичай використовується в системах Linux і Unix. Уразливість Shellshock дозволяє зловмиснику виконувати довільний код, вводячи спеціально створені вхідні дані у вразливу систему.

  5. Heartbleed: Це широко розрекламована уразливість в криптографічної бібліотеки OpenSSL, яка зазвичай використовується для захисту веб-трафіку. Уразливість Heartbleed дозволяє зловмисникові отримувати конфіденційну інформацію з пам'яті системи, потенційно включаючи закриті ключі та інші облікові дані.

  6. EternalBlue: це експлойт, націлений на уразливість в протоколі SMB, який використовується для спільного використання файлів у системах Windows. Експлойт EternalBlue широко використовувався в атаці здирників WannaCry, яка торкнулася сотні тисяч систем по всьому світу.

  7. Консоль сценаріїв Jenkins: це поширена уразливість в сервері автоматизації Jenkins, який широко використовується для розробки та розгортання програмного забезпечення. Уразливість консолі сценаріїв дозволяє зловмиснику виконувати довільний код у вразливою системі, вводячи команди в веб-інтерфейс Jenkins.

  8. Drupalgeddon: це уразливість в системі управління контентом Drupal, яка дозволяє зловмиснику виконувати довільний код, використовуючи уразливість SQL-ін'єкції. Уразливість Drupalgeddon використовувалася в багатьох гучних атак, включаючи витік Панамських документів.

  9. WordPress RevSlider: Це уразливість на популярному плагіні RevSlider для WordPress, яка дозволяє зловмиснику виконувати довільний код, використовуючи уразливість для завантаження файлів. Уразливість RevSlider використовувалася в багатьох атаках на сайти WordPress, включаючи кампанії SoakSoak і Panama.

  10. Apache Struts: це популярна платформа веб-додатків, яка була метою багатьох експлойтів віддаленого виконання коду. Найбільш відомим з цих експлойтів є витік даних Equifax, яка була викликана вразливістю на платформі Apache Struts.

Практика ідентифікації та використання віддаленого виконання коду вразливі місця

Є кілька підходів, які можуть бути корисні:

  1. Вивчіть відповідну документацію: Почніть з ознайомлення з тим, як працюють уразливості віддаленого виконання коду, і з поширеними методами, використовуваними для їх використання. Веб-сайт OWASP - відмінний ресурс для вивчення безпеки веб-додатків, включаючи уразливості при віддалене виконання коду.

  2. Практика роботи з уразливими додатками: Існує кілька навмисно вразливих веб-додатків, які ви можете використовувати для практичного виявлення та використання вразливостей віддаленого виконання коду. Деякі популярні приклади включають біса вразливе веб-додаток (DVWA), WebGoat і Mutillidae.

  3. Беріть участь в змаганнях CTF: змагання по захопленню прапора (CTF) - відмінний спосіб попрактикуватися у виявленні і використанні вразливостей, включаючи уразливості віддаленого виконання коду. Багато змагання CTF присвячені безпеки веб-додатків і можуть включати в себе завдання, пов'язані з віддаленим виконанням коду.

  4. Використовуйте інструменти тестування на проникнення: Існує безліч інструментів тестування на проникнення, які можна використовувати для виявлення і використання вразливостей віддаленого виконання коду, включаючи Metasploit, Burp Suite і ZAP. Ці інструменти можна використовувати для виявлення вразливостей і тестування різних методів експлуатації.

  5. Беріть участь в програмах винагороди за помилки: Багато організацій пропонують програми винагороди за помилки, які надають винагороду дослідникам, які виявляють і повідомляють про уразливості безпеки, включаючи уразливості віддаленого виконання коду. Участь у цих програмах може дати практичний досвід виявлення і використання вразливостей в реальних додатках.

Крім практики роботи з уразливими віддаленого виконання коду, існує кілька інших тем і методів забезпечення безпеки, які варто вивчити і практикувати:

  1. Впровадження SQL: впровадження SQL - це поширена уразливість веб-додатків, яка може дозволити зловмисникам маніпулювати запитами до бази даних і отримувати доступ до конфіденційних даних. Практика роботи з уразливими SQL-ін'єкцій може допомогти вам навчитися виявляти і використовувати ці проблеми.

  2. Міжсайтовий скриптінг (XSS): Міжсайтовий скриптінг - ще одна поширена уразливість веб-додатків, яка може дозволити зловмисникам впроваджувати шкідливі скрипти на веб-сторінки, які переглядаються іншими користувачами. Практика роботи з уразливими XSS може допомогти вам навчитися виявляти і використовувати ці проблеми.

  3. Методології тестування на проникнення: Тестування на проникнення - це систематичний підхід до виявлення і використання вразливостей безпеки в системах і додатках. Вивчення різних методологій тестування на проникнення і практика роботи з різними інструментами допоможуть вам отримати всебічне уявлення про тестування безпеки.

  4. Рекомендації щодо забезпечення безпеки веб-додатків: Важливо розуміти і застосовувати належні методи забезпечення безпеки при проектуванні і розробці веб-додатків, щоб звести до мінімуму ризик вразливостей в системі безпеки. Вивчення методів безпечного кодування, безпечних методологій розробки та тестування безпеки може допомогти вам створювати безпечні додатка.

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

Книги з оглядом віддаленого виконання коду вразливі місця

  1. "The Web Application hacker's Handbook: пошук і використання вразливостей безпеки" Дафидд Штуттард і Маркус Пінто: Ця книга являє собою всеосяжне керівництво по виявленню і використанню вразливостей веб-додатків, включаючи віддалене виконання коду. Він охоплює широке коло тем, від базових концепцій безпеки веб-додатків до передових методів експлуатації.

  2. "Black Hat Python: програмування на Python для хакерів і пентестеров" Джастіна Сейтца: Ця книга присвячена використанню мови програмування Python для написання інструментів для тестування та експлуатації на проникнення в мережу, включаючи віддалене виконання коду. Вона охоплює широке коло тем, від базових концепцій програмування до передових методів мережної безпеки.

  3. "Безпека веб-додатків: керівництво для початківців" Брайана Саллівана і Вінсента Ллю: Ця книга являє собою зрозуміле керівництво для початківців з безпеки веб-додатків, включаючи віддалене виконання коду. Він охоплює широке коло тем, від базових концепцій безпеки до практичних порад щодо забезпечення безпеки веб-додатків.

  4. "Заплутана мережа: керівництво по забезпеченню безпеки сучасних веб-додатків" Міхала Залевського: Ця книга являє собою всеосяжне керівництво з безпеки веб-додатків, включаючи віддалене виконання коду. Він охоплює широке коло тем, від архітектури і дизайну веб-додатків до поширених вразливостей в системі безпеки і методів захисту веб-додатків.

  5. "Освоєння сучасного веб-тестування на проникнення" Прахара Прасада: Ця книга являє собою практичне керівництво з тестування веб-додатків на проникнення, включаючи методи виявлення і використання вразливостей віддаленого виконання коду. Вона охоплює широкий спектр тем-від розвідки та збору інформації до тестування та експлуатації.

Список корисних навантажень для Віддалене виконання коду вразливі місця

деякі поширені корисні навантаження, які можуть бути використані при атаках на віддалене виконання коду, а також приклади:

  1. Впровадження команд: зловмисник вводить шкідливі команди у систему для виконання. Приклади:;cat /etc/passwd", "|cat /etc/passwd".

  2. Впровадження коду: зловмисник впроваджує шкідливий код, який буде виконаний системою. Приклади:<?php system($_GET[‘cmd’]); ?>”, “{{7*7}}”.

  3. Впровадження шелл-коду: зловмисник вводить шелл-код, який буде виконаний системою. Приклади: \xeb \x1d\x5e\x89\x76\x08\x31\xdb\ x88\x5e\x07\x89\x5e\x0c \ xb0\x0b \x89 \xf3 \ x8d\
    x4e\x08\x8d\ x56\x0c\ xcd\x80\xe8\xde\xff\xff\xff/bin/sh.

  4. Завантаження файлу: Зловмисник завантажує шкідливий файл в систему, який потім може бути виконаний. Приклади: PHP-файл з веб-оболонкою, який можна використовувати для виконання команд на сервері, або JSP-файл, який можна використовувати для виконання Java-коду на сервері.

  5. Динамічна оцінка коду: зловмисник відправляє код, який динамічно оцінюється системою. Приклади: "eval()", "exec()", "system()", "passthru()".

  6. Міжсайтовий скриптінг (XSS): зловмисник впроваджує шкідливий код, який виконується в веб-браузері жертви. Приклади:<script>alert(‘XSS’);</script>”, “<img src="’javascript:alert(“XSS”);’">”.

Заходи по пом'якшенню наслідків і як бути захищеним Від Віддалене виконання коду вразливі місця

  1. Перевірка і очищення вхідних даних: Правильна перевірка і очищення вхідних даних користувача можуть допомогти запобігти впровадження та виконання шкідливого коду в системі.

  2. Кодування виводу: кодування виведення може допомогти запобігти виконання шкідливого коду при виведенні в браузері або іншому додатку.

  3. Ізольована середу і віртуалізація: запуск потенційно ненадійного коду в ізольованому середовищі або віртуалізованому середовищі може обмежити його доступ до базової системи і допомогти запобігти атаки на віддалене виконання коду.

  4. Використання брандмауерів веб-додатків (WAF): WAF може відслідковувати і фільтрувати вхідний веб-трафік, щоб запобігти експлойти, які можуть призвести до віддаленого виконання коду.

  5. Методи безпечного кодування: Використання методів безпечного кодування, таких як відмова від використання користувальницького введення в системних командах, використання параметризованих запитів для доступу до бази даних і відмова від використання eval() та інших подібних функцій, може допомогти запобігти уразливості в коді при віддалене виконання коду.

  6. Білий список додатків: білий список програм і процесів, яким дозволено працювати в системі, може допомогти запобігти несанкціоноване виконання коду.

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

  8. Виправлення й оновлення: Оновлення програмного забезпечення і систем за допомогою останніх виправлень і оновлень безпеки може допомогти запобігти використання відомих вразливостей віддаленого виконання коду.

Впроваджуючи ці заходи по пом'якшенню наслідків, ви можете значно знизити ризик вразливостей віддаленого виконання коду в ваших системах.

Висновок

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

Уразливості RCE зазвичай викликані помилками перевірки і очищення вхідних даних, які можуть дозволити зловмиснику впровадити шкідливий код або команди в додаток або систему. Ці уразливості можуть бути використані різними способами, в тому числі з допомогою веб-додатків, вкладень електронної пошти і інших методів.

Інші Послуги

Готові до безпеки?

зв'язатися з нами