Translated ['src/linux-hardening/privilege-escalation/README.md', 'src/l

This commit is contained in:
Translator 2025-10-01 10:20:28 +00:00
parent f9c44abc17
commit 83038eb01c
4 changed files with 499 additions and 294 deletions

View File

@ -110,6 +110,7 @@
- [Checklist - Linux Privilege Escalation](linux-hardening/linux-privilege-escalation-checklist.md)
- [Linux Privilege Escalation](linux-hardening/privilege-escalation/README.md)
- [Android Rooting Frameworks Manager Auth Bypass Syscall Hook](linux-hardening/privilege-escalation/android-rooting-frameworks-manager-auth-bypass-syscall-hook.md)
- [Vmware Tools Service Discovery Untrusted Search Path Cve 2025 41244](linux-hardening/privilege-escalation/vmware-tools-service-discovery-untrusted-search-path-cve-2025-41244.md)
- [Arbitrary File Write to Root](linux-hardening/privilege-escalation/write-to-root.md)
- [Cisco - vmanage](linux-hardening/privilege-escalation/cisco-vmanage.md)
- [Containerd (ctr) Privilege Escalation](linux-hardening/privilege-escalation/containerd-ctr-privilege-escalation.md)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,146 @@
# VMware Tools service discovery LPE (CWE-426) via regex-based binary discovery (CVE-2025-41244)
{{#include ../../banners/hacktricks-training.md}}
Ця техніка зловживає пайплайнами виявлення сервісів, керованими regex, які розбирають командні рядки запущених процесів, щоб визначити версії сервісів, а потім запускають кандидатний бінарний файл з прапорцем "version". Коли дозволяючі шаблони приймають ненадійні, керовані атакуючим шляхи (наприклад, /tmp/httpd), привілейований колектор виконує довільний бінарний файл з ненадійного розташування, що призводить до локального підвищення привілеїв. NVISO задокументувала це в VMware Tools/Aria Operations Service Discovery як CVE-2025-41244.
- Вплив: локальне підвищення привілеїв до root (або до привілейованого облікового запису для виявлення)
- Причина: Untrusted Search Path (CWE-426) + надмірно широка відповідність regex командних рядків процесів
- Затронуті: open-vm-tools/VMware Tools на Linux (credential-less discovery), VMware Aria Operations SDMP (credential-based discovery via Tools/proxy)
## Як працює виявлення сервісів VMware (на високому рівні)
- Credential-based (legacy): Aria виконує скрипти виявлення всередині гостьової ОС через VMware Tools, використовуючи налаштовані привілейовані облікові дані.
- Credential-less (modern): Логіка виявлення працює в межах VMware Tools, які вже мають привілеї в гостьовій системі.
Обидва режими в кінцевому підсумку виконують shell логіку, яка сканує процеси з прослуховуючими сокетами, витягує відповідний шлях команди за допомогою regex і виконує перший токен argv з прапорцем версії.
## Root cause and vulnerable pattern (open-vm-tools)
В open-vm-tools скрипт плагіна serviceDiscovery get-versions.sh знаходить кандидатні бінарні файли за допомогою широких регулярних виразів та виконує перший токен без будь-якої перевірки довіреного шляху:
```bash
get_version() {
PATTERN=$1
VERSION_OPTION=$2
for p in $space_separated_pids
do
COMMAND=$(get_command_line $p | grep -Eo "$PATTERN")
[ ! -z "$COMMAND" ] && echo VERSIONSTART "$p" "$("${COMMAND%%[[:space:]]*}" $VERSION_OPTION 2>&1)" VERSIONEND
done
}
```
Викликається з дозволяючими шаблонами, що містять \S (непробільні символи), які з легкістю відповідатимуть не-системним шляхам у розташуваннях, доступних для запису користувачем:
```bash
get_version "/\S+/(httpd-prefork|httpd|httpd2-prefork)($|\s)" -v
get_version "/usr/(bin|sbin)/apache\S*" -v
get_version "/\S+/mysqld($|\s)" -V
get_version "\.?/\S*nginx($|\s)" -v
get_version "/\S+/srm/bin/vmware-dr($|\s)" --version
get_version "/\S+/dataserver($|\s)" -v
```
- Витяг відбувається за допомогою grep -Eo і бере перший токен: ${COMMAND%%[[:space:]]*}
- Немає whitelist/allowlist довірених системних шляхів; будь-який виявлений listener з відповідною назвою виконується з -v/--version
This creates an untrusted search path execution primitive: arbitrary binaries located in world-writable directories (e.g., /tmp/httpd) get executed by a privileged component.
## Exploitation (both credential-less and credential-based modes)
Передумови
- Ви можете запустити непривілейований процес, який відкриває прослуховувальний сокет на гості.
- Завдання виявлення увімкнено і запускається періодично (історично ~5 хвилин).
Кроки
1) Розмістіть двійник у шляху, що відповідає одному з дозволяючих регулярних виразів, наприклад /tmp/httpd або ./nginx
2) Запустіть його від імені користувача з низькими привілеями і переконайтеся, що він відкриває прослуховувальний сокет
3) Зачекайте цикл виявлення; привілейований колектор автоматично виконає: /tmp/httpd -v (або подібне), запустивши вашу програму як root
Мінімальна демонстрація (за підходом NVISOs)
```bash
# Build any small helper that:
# - default mode: opens a dummy TCP listener
# - when called with -v/--version: performs the privileged action (e.g., connect to an abstract UNIX socket and spawn /bin/sh -i)
# Example staging and trigger
cp your_helper /tmp/httpd
chmod +x /tmp/httpd
/tmp/httpd # run as low-priv user and wait for the cycle
# After the next cycle, expect a root shell or your privileged action
```
Типовий ланцюг процесів
- З обліковими даними: /usr/bin/vmtoolsd -> /bin/sh /tmp/VMware-SDMP-Scripts-.../script_...sh -> /tmp/httpd -v -> /bin/sh -i
- Без облікових даних: /bin/sh .../get-versions.sh -> /tmp/httpd -v -> /bin/sh -i
Артефакти (з обліковими даними)
Відновлені SDMP wrapper scripts під /tmp/VMware-SDMP-Scripts-{UUID}/ можуть показувати пряме виконання зловмисного шляху:
```bash
/tmp/httpd -v >"/tmp/VMware-SDMP-Scripts-{UUID}/script_-{ID}_0.stdout" 2>"/tmp/VMware-SDMP-Scripts-{UUID}/script_-{ID}_0.stderr"
```
## Узагальнення техніки: regex-driven discovery abuse (portable pattern)
Багато агентів і систем моніторингу реалізують виявлення версій/сервісів шляхом:
- Перерахування процесів з прослуховуючими сокетами
- Пошуку в argv/command lines за допомогою permissive regex (наприклад, патерни, що містять \S)
- Запуску знайденого шляху з безпечним прапорцем типу -v, --version, -V, -h
Якщо regex приймає ненадійні шляхи і шлях виконується з привілейованого контексту, отримуємо CWE-426 Untrusted Search Path execution.
Abuse recipe
- Назвіть свій бінарний файл як звичні демони, які regex ймовірно знайде: httpd, nginx, mysqld, dataserver
- Розмістіть його в записуваному каталозі: /tmp/httpd, ./nginx
- Переконайтесь, що воно співпадає з regex і відкриває порт для виявлення
- Зачекайте на плановий колектор; отримаєте автоматичний привілейований виклик <path> -v
Masquerading note: This aligns with MITRE ATT&CK T1036.005 (Match Legitimate Name or Location) to increase match probability and stealth.
Reusable privileged I/O relay trick
- Побудуйте допоміжну програму так, щоб при виклику з привілеями (-v/--version) вона підключалась до відомої точки зустрічі (наприклад, a Linux abstract UNIX socket like @cve) і мостила stdio до /bin/sh -i. Це уникає артефактів на диску і працює в багатьох середовищах, де той самий бінарний файл повторно викликається з прапорцем.
## Detection and DFIR guidance
Hunting queries
- Незвичні дочірні процеси vmtoolsd або get-versions.sh, такі як /tmp/httpd, ./nginx, /tmp/mysqld
- Будь-яке виконання discovery-скриптами абсолютних шляхів поза системними префіксами (шукайте пробіли в розширеннях ${COMMAND%%...})
- ps -ef --forest для візуалізації дерев спадкоємності: vmtoolsd -> get-versions.sh -> <non-system path>
On Aria SDMP (credential-based)
- Перевірте /tmp/VMware-SDMP-Scripts-{UUID}/ на предмет тимчасових скриптів та артефактів stdout/stderr, що показують виконання шляхів нападника
Policy/telemetry
- Сповіщення при виконанні привілейованих колекторів з не-системних префіксів: ^/(tmp|home|var/tmp|dev/shm)/
- Моніторинг цілісності файлів get-versions.sh та VMware Tools plugins
## Mitigations
- Patch: Apply Broadcom/VMware updates for CVE-2025-41244 (Tools and Aria Operations SDMP)
- Вимкніть або обмежте discovery без облікових даних там, де можливо
- Перевіряйте довірені шляхи: обмежте виконання дозволеними директоріями (/usr/sbin, /usr/bin, /sbin, /bin) і лише точними відомими бінарними файлами
- Уникайте permissive regex з \S; віддавайте перевагу анкерованим, явним абсолютним шляхам і точним іменам команд
- Знижуйте привілеї для discovery helper-ів де можливо; використовуйте sandbox (seccomp/AppArmor) щоб зменшити вплив
- Моніторьте та сповіщайте про виконання vmtoolsd/get-versions.sh не-системних шляхів
## Notes for defenders and implementers
Більш безпечний шаблон для пошуку і виконання
```bash
# Bad: permissive regex and blind exec
COMMAND=$(get_command_line "$pid" | grep -Eo "/\\S+/nginx(\$|\\s)")
[ -n "$COMMAND" ] && "${COMMAND%%[[:space:]]*}" -v
# Good: strict allowlist + path checks
candidate=$(get_command_line "$pid" | awk '{print $1}')
case "$candidate" in
/usr/sbin/nginx|/usr/sbin/httpd|/usr/sbin/apache2)
"$candidate" -v 2>&1 ;;
*)
: # ignore non-allowlisted paths
;;
esac
```
## Джерела
- [NVISO You name it, VMware elevates it (CVE-2025-41244)](https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/)
- [Broadcom advisory for CVE-2025-41244](https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/36149)
- [open-vm-tools serviceDiscovery/get-versions.sh (stable-13.0.0)](https://github.com/vmware/open-vm-tools/blob/stable-13.0.0/open-vm-tools/services/plugins/serviceDiscovery/get-versions.sh)
- [MITRE ATT&CK T1036.005 Match Legitimate Name or Location](https://attack.mitre.org/techniques/T1036/005/)
- [CWE-426: Untrusted Search Path](https://cwe.mitre.org/data/definitions/426.html)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -1,16 +1,28 @@
# VMware ESX / vCenter Pentesting
{{#include ../../banners/hacktricks-training.md}}
# Перерахування
## Перерахування
```bash
nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# Брутфорс
## Bruteforce
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Якщо ви знайдете дійсні облікові дані, ви можете використовувати більше модулів сканера Metasploit для отримання інформації.
Якщо ви знайдете дійсні облікові дані, ви можете використати більше metasploit scanner modules для отримання інформації.
### Див. також
Linux LPE via VMware Tools service discovery (CWE-426 / CVE-2025-41244):
{{#ref}}
../../linux-hardening/privilege-escalation/vmware-tools-service-discovery-untrusted-search-path-cve-2025-41244.md
{{#endref}}
{{#include ../../banners/hacktricks-training.md}}