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() метод проведения Время выполнения класс без надлежащей проверки входных данных. Злоумышленник может предоставить специально созданный ввод для выполнения произвольных команд в системе.

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 для выполнения кода от имени непривилегированного пользователя, а затем использовать этот доступ для повышения своих привилегий путем использования уязвимой программы setuid.

  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 - это оболочка командной строки и язык сценариев, разработанный корпорацией Майкрософт. Он часто используется тестировщиками для запуска команд в целевых системах с целью использования уязвимостей 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 обычно вызваны ошибками в проверке и очистке входных данных, которые могут позволить злоумышленнику внедрить вредоносный код или команды в приложение или систему. Эти уязвимости могут быть использованы различными способами, в том числе с помощью веб-приложений, вложений электронной почты и других методов.

Другие Услуги

Готовы к безопасности?

Связаться с нами