Translated ['src/linux-hardening/privilege-escalation/vmware-tools-servi

This commit is contained in:
Translator 2025-10-01 10:24:00 +00:00
parent 90c60955a2
commit 25c361d411
4 changed files with 498 additions and 289 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}}
Hierdie tegniek misbruik regex-gedrewe service discovery-pipelines wat hardlopende prosesopdraglyne ontleed om diensweergawes af te lei en daarna 'n kandidaat-binary met 'n "version"-vlag uitvoer. Wanneer toegewingpatrone onbetroubare, deur 'n aanvaller beheerde paaie aanvaar (bv. /tmp/httpd), voer die bevoorregte versamelaar 'n ewekansige binary uit vanaf 'n onbetroubare ligging, wat local privilege escalation tot gevolg het. NVISO het dit gedokumenteer in VMware Tools/Aria Operations Service Discovery as CVE-2025-41244.
- Impak: Local privilege escalation to root (or to the privileged discovery account)
- Oorsaak: Untrusted Search Path (CWE-426) + permissive regex matching of process command lines
- Getroffen: open-vm-tools/VMware Tools on Linux (credential-less discovery), VMware Aria Operations SDMP (credential-based discovery via Tools/proxy)
## Hoe VMware service discovery werk (hoë vlak)
- Credential-based (legacy): Aria voer discovery-skripte binne die guest uit via VMware Tools met geconfigureerde bevoorregte credentials.
- Credential-less (modern): Discovery-logika loop binne VMware Tools en het reeds bevoorregte regte in die guest.
Albei modusse voer uiteindelik shell-logika uit wat prosesse met luisterende sokkette skandeer, 'n pasende opdragpad via 'n regex uithaal, en die eerste argv-token met 'n version-vlag uitvoer.
## Hoofrede en kwesbare patroon (open-vm-tools)
In open-vm-tools stem die serviceDiscovery-plugin script get-versions.sh kandidaat-binaries aan deur breë regular expressions te gebruik en voer die eerste token uit sonder enige trusted-path-validasie:
```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
}
```
Dit word aangeroep met permissiewe patrone wat \S (nie-witspasie) bevat en sal maklik nie-stelselpaadjies in gebruikersskryfbare liggings pas:
```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
```
- Uittrekking gebruik grep -Eo en neem die eerste token: ${COMMAND%%[[:space:]]*}
- Geen whitelist/allowlist van vertroude stelselpaaie nie; enige ontdekte listener met 'n ooreenstemmende naam word uitgevoer met -v/--version
Dit skep 'n untrusted search path execution primitive: ewekansige binaries wat in world-writable gidsies geleë is (bv. /tmp/httpd) word deur 'n geprivilegieerde komponent uitgevoer.
## Exploitation (both credential-less and credential-based modes)
Voorvereistes
- Jy kan 'n ongeprivilegieerde proses laat loop wat 'n listening socket op die guest oopmaak.
- Die discovery job is geaktiveer en loop periodiek (tipies elke ~5 minute).
Stappe
1) Plaas 'n binary in 'n pad wat ooreenstem met een van die permissiewe regexes, bv. /tmp/httpd of ./nginx
2) Laat dit loop as 'n laag-privilegieerde gebruiker en maak seker dit open enige listening socket
3) Wag vir die discovery-siklus; die privileged collector sal outomaties uitvoer: /tmp/httpd -v (of soortgelyk), wat jou program as root uitvoer
Minimale demo (met NVISO se benadering)
```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
```
Tipiese prosesafstamming
- Credential-based: /usr/bin/vmtoolsd -> /bin/sh /tmp/VMware-SDMP-Scripts-.../script_...sh -> /tmp/httpd -v -> /bin/sh -i
- Credential-less: /bin/sh .../get-versions.sh -> /tmp/httpd -v -> /bin/sh -i
Artefakte (credential-based)
Herstelde SDMP wrapper scripts onder /tmp/VMware-SDMP-Scripts-{UUID}/ kan direkte uitvoering van die rogue path toon:
```bash
/tmp/httpd -v >"/tmp/VMware-SDMP-Scripts-{UUID}/script_-{ID}_0.stdout" 2>"/tmp/VMware-SDMP-Scripts-{UUID}/script_-{ID}_0.stderr"
```
## Algemeneer die tegniek: regex-gedrewe ontdekkingmisbruik (draagbare patroon)
Baie agents en monitoring-suites implementeer weergawe-/diensontdekking deur:
- Opsomming van prosesse met luisterende sockets
- Grepping argv/command lines met permissiewe regexes (bv. patrone wat \S bevat)
- Die gematchte pad uit te voer met 'n goedaardige vlag soos -v, --version, -V, -h
As die regex onbetroubare paadjies aanvaar en die pad vanaf 'n geprivilegieerde konteks uitgevoer word, kry jy CWE-426 Untrusted Search Path-uitvoering.
Abuse recipe
- Gee jou binary 'n naam soos algemene daemons wat die regex waarskynlik sal pas: httpd, nginx, mysqld, dataserver
- Plaas dit in 'n skrywebare gids: /tmp/httpd, ./nginx
- Verseker dit pas die regex en open enige poort om geïnventariseer te word
- Wag vir die geskeduleerde versamelaar; jy kry 'n outomatiese geprivilegieerde aanroep van <path> -v
Maskeeringsnota: Dit stem ooreen met MITRE ATT&CK T1036.005 (Match Legitimate Name or Location) om die kans op 'n match en onopgemerktheid te verhoog.
Reusable privileged I/O relay truuk
- Bou jou helper sodat by geprivilegieerde aanroep (-v/--version) dit verbinding maak na 'n bekende rendezvous (bv. 'n Linux abstract UNIX socket soos @cve) en stdio oorbrug na /bin/sh -i. Dit vermy on-disk artefakte en werk oor baie omgewings waar dieselfde binary met 'n vlag heruitgevoer word.
## Opsporings- en DFIR-riglyne
Opspoornavrae
- Ongewone subprosesse van vmtoolsd of get-versions.sh soos /tmp/httpd, ./nginx, /tmp/mysqld
- Enige uitvoering van nie-stelsel absolute paadjies deur ontdekkingskripte (kyk vir spasies in ${COMMAND%%...} uitbreidings)
- ps -ef --forest om afstammings-boom te visualiseer: vmtoolsd -> get-versions.sh -> <non-system path>
Op Aria SDMP (credential-based)
- Inspekteer /tmp/VMware-SDMP-Scripts-{UUID}/ vir tydelike skripte en stdout/stderr-artefakte wat uitvoering van aanvallerpaaie toon
Beleid/telemetrie
- Alarmeer wanneer geprivilegieerde versamelaars vanaf nie-stelsel voorvoegsels uitvoer: ^/(tmp|home|var/tmp|dev/shm)/
- Lêerintegriteitsmonitering op get-versions.sh en VMware Tools-plugins
## Mitigasies
- Patch: Pas Broadcom/VMware-opdaterings toe vir CVE-2025-41244 (Tools and Aria Operations SDMP)
- Deaktiveer of beperk ontdekking sonder credentials waar moontlik
- Valideer vertroude paaie: beperk uitvoering tot toegelate gidse (/usr/sbin, /usr/bin, /sbin, /bin) en slegs presiese bekende binaries
- Vermy permissiewe regexes met \S; verkies geanker, eksplisiete absolute paaie en presiese opdragname
- Verlaag voorregte vir ontdekkinghelpers waar moontlik; sandbox (seccomp/AppArmor) om impak te verminder
- Monitor en waarsku op vmtoolsd/get-versions.sh wat nie-stelselpaadjies uitvoer
## Aantekeninge vir verdedigers en implementeerders
Veiliger matching- en uitvoerpatroon
```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
```
## Verwysings
- [NVISO Jy noem dit, VMware eskaleer dit (CVE-2025-41244)](https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/)
- [Broadcom-advies vir 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,27 @@
# VMware ESX / vCenter Pentesting
{{#include ../../banners/hacktricks-training.md}}
# Opname
## Enumeration
```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
## Bruteforce
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
As jy geldige akrediteerbare inligting vind, kan jy meer metasploit skandeerder modules gebruik om inligting te verkry.
As jy valid credentials vind, kan jy meer metasploit scanner modules gebruik om inligting te verkry.
### Sien ook
Linux LPE via VMware Tools diensontdekking (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}}