VMware ESX / vCenter Pentesting

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

Enumeration

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

msf> auxiliary/scanner/vmware/vmware_http_login

If you find valid credentials, you can use more metasploit scanner modules to obtain information.

ESXi Post-Exploitation & Ransomware Operations

Attack Workflow inside Virtual Estates

  • Develop: ๊ฒฝ๋Ÿ‰ ๊ด€๋ฆฌ ์—์ด์ „ํŠธ(์˜ˆ: MrAgent), encryptor(์˜ˆ: Mario), ๊ทธ๋ฆฌ๊ณ  leak ์ธํ”„๋ผ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • Infiltrate: vSphere management๋ฅผ ์นจํ•ดํ•˜๊ณ , ํ˜ธ์ŠคํŠธ๋ฅผ ์—ด๊ฑฐ(enumerate), ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจํ•˜๊ณ , ํŽ˜์ด๋กœ๋“œ๋ฅผ ์Šคํ…Œ์ด์ง•ํ•ฉ๋‹ˆ๋‹ค.
  • Deploy: ๊ฐ ESXi ํ˜ธ์ŠคํŠธ์— ์—์ด์ „ํŠธ๋ฅผ ํ‘ธ์‹œํ•˜๊ณ , ์ด๋“ค์ด C2๋ฅผ ํด๋งํ•˜๋„๋ก ๋‘” ๋‹ค์Œ ์ง€์‹œ๊ฐ€ ๋‚ด๋ ค์ง€๋ฉด encryptor๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • Extort: ์•”ํ˜ธํ™”๊ฐ€ ํ™•์ธ๋˜๋ฉด proof-of-compromise ๋ฐ์ดํ„ฐ๋ฅผ leakํ•˜๊ณ  ransom chats๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Hypervisor Takeover Primitives

Once command execution on an ESXi console/SSH session is obtained, attackers typically run the following management commands to fingerprint and isolate the host before ransomware deployment:

uname -a                                   # hostname / build metadata for tracking
esxcli --formatter=csv network nic list    # adapter + MAC inventory
esxcli --formatter=csv network ip interface ipv4 get
esxcli network firewall set --enabled false
/etc/init.d/vpxa stop                      # cut vCenter off from the host
passwd root                                # rotate credentials under attacker control

๋™์ผํ•œ ์—์ด์ „ํŠธ๋Š” ๋ณดํ†ต ํ•˜๋“œ์ฝ”๋“œ๋œ C2 URI๋ฅผ ํด๋งํ•˜๋Š” ์˜๊ตฌ ๋ฃจํ”„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋„๋‹ฌ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์žฌ์‹œ๋„๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ฏ€๋กœ, ์šด์˜์ž๊ฐ€ ๋ช…๋ น์„ ๋‚ด๋ฆด ๋•Œ๊นŒ์ง€ ๋น„์ฝ˜์€ ๊ณ„์† ํ™œ์„ฑ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

MrAgent-Style Instruction Channel

๊ฒฝ๋Ÿ‰ ๊ด€๋ฆฌ ์—์ด์ „ํŠธ๋Š” C2 ํ์—์„œ ํŒŒ์‹ฑ๋œ ๊ฐ„๊ฒฐํ•œ ๋ช…๋ น ์ง‘ํ•ฉ์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ง‘ํ•ฉ๋งŒ์œผ๋กœ๋„ ๋Œ€ํ™”ํ˜• ์…ธ ์—†์ด ์ˆ˜์‹ญ ๋Œ€์˜ ์นจํ•ด๋œ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

InstructionEffect
Config๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ, ์‹คํ–‰ ์ง€์—ฐ ๋˜๋Š” ์Šค๋กœํ‹€๋ง์„ ์ •์˜ํ•˜๋Š” ๋กœ์ปฌ JSON ๊ตฌ์„ฑ์„ ๋ฎ์–ด์จ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์žฌ๋ฐฐํฌํ•˜์ง€ ์•Š๊ณ ๋„ ์ฆ‰์‹œ ์ž‘์—…์„ ์žฌ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Infouname/esxcli ํ”„๋กœ๋ธŒ๋กœ ์ˆ˜์ง‘ํ•œ ํ•˜์ดํผ๋ฐ”์ด์ € ๋นŒ๋“œ ์ •๋ณด, IP ๋ฐ ์–ด๋Œ‘ํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Exec๋žœ์„ฌ์›จ์–ด ๋‹จ๊ณ„ ์‹œ์ž‘: root ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ณ€๊ฒฝํ•˜๊ณ  vpxa๋ฅผ ์ค‘์ง€ํ•˜๋ฉฐ, ์„ ํƒ์ ์œผ๋กœ ์žฌ๋ถ€ํŒ… ์ง€์—ฐ์„ ์˜ˆ์•ฝํ•œ ํ›„ ์•”ํ˜ธํ™”๊ธฐ๋ฅผ pull+execute ํ•ฉ๋‹ˆ๋‹ค.
Run์ž„์˜์˜ C2 ์ œ๊ณต ๋ช…๋ น์„ ./shmv๋กœ ๊ธฐ๋กํ•˜๊ณ  chmod +x ํ•œ ๋’ค ์‹คํ–‰ํ•˜์—ฌ ์›๊ฒฉ ์…ธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
Remove๋„๊ตฌ ์ •๋ฆฌ๋‚˜ ํŒŒ๊ดด์  ์‚ญ์ œ๋ฅผ ์œ„ํ•ด rm -rf <path>๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Abort / Abort_f์šด์˜์ž๊ฐ€ ์žฌ๋ถ€ํŒ… ํ›„ ๋™์ž‘์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋Œ€๊ธฐ ์ค‘์ธ ์•”ํ˜ธํ™” ์ž‘์—…์„ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ์ค‘์ธ ์›Œ์ปค ์Šค๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
Quit์—์ด์ „ํŠธ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋น ๋ฅธ ์ž๊ธฐ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ rm -f ํ•ฉ๋‹ˆ๋‹ค.
Welcome์ฝ˜์†” ๋ฐฐ๋„ˆ์— ๋ชธ๊ฐ’ ๊ณต์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด esxcli system welcomemesg set -m="text"๋ฅผ ์•…์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ ์ด๋“ค ์—์ด์ „ํŠธ๋Š” ๊ฒฝ์Ÿ ์ƒํƒœ๋กœ๋ถ€ํ„ฐ ๊ณต์œ  ์ƒํƒœ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ mutex๋กœ ๋ณดํ˜ธ๋œ JSON ๋ธ”๋กญ(๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ + ์ƒํƒœ/ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ)์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ์—๋Š” ํ”ผ์ƒ์  ์ •์  ๋ถ„์„์„ ์ง€์—ฐ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ •ํฌ ์ฝ”๋“œ๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ”ํ•˜์ง€๋งŒ ํ•ต์‹ฌ ๋ฃจํ‹ด์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

Virtualization & Backup-Aware Targeting

Mario๋ฅ˜ ์•”ํ˜ธํ™”๊ธฐ๋Š” ์šด์˜์ž๊ฐ€ ์ œ๊ณตํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฃจํŠธ๋งŒ ์ˆœํšŒํ•˜๋ฉฐ ๋น„์ฆˆ๋‹ˆ์Šค ์—ฐ์†์„ฑ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฐ€์ƒํ™” ๊ด€๋ จ ์‚ฐ์ถœ๋ฌผ๋งŒ ๊ฑด๋“œ๋ฆฝ๋‹ˆ๋‹ค:

ExtensionTarget
vmdk, vmem, vmsd, vmsn, vswpVM ๋””์Šคํฌ, ๋ฉ”๋ชจ๋ฆฌ ์Šค๋ƒ…์ƒท ๋ฐ ์Šค์™‘ ๋ฐฑํ‚น ํŒŒ์ผ.
ova, ovfํœด๋Œ€์šฉ VM ์–ดํ”Œ๋ผ์ด์–ธ์Šค ๋ฒˆ๋“ค/๋ฉ”ํƒ€๋ฐ์ดํ„ฐ.
vib๋ณต๊ตฌ/ํŒจ์น˜ ์ ์šฉ์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ESXi ์„ค์น˜ ๋ฒˆ๋“ค.
vbk, vbm์˜จ๋ฐ•์Šค ๋ณต์› ๋ฐฉํ•ด๋ฅผ ์œ„ํ•œ Veeam VM ๋ฐฑ์—… ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ.

์šด์˜์  ํŠน์ด์‚ฌํ•ญ:

  • ๋ฐฉ๋ฌธํ•œ ๋ชจ๋“  ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ์•”ํ˜ธํ™” ์ „์— ํ•ญ์ƒ โ€œHow To Restore Your Files.txtโ€œ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ถ„๋ฆฌ๋œ ํ˜ธ์ŠคํŠธ์—์„œ๋„ ๋ชธ๊ฐ’ ์—ฐ๋ฝ์ฒ˜๊ฐ€ ํ‘œ์‹œ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ ์ฒ˜๋ฆฌ๋œ ํŒŒ์ผ์€ ์ด๋ฆ„์— .emario, .marion, .lmario, .nmario, .mmario ๋˜๋Š” .wmario๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฑด๋„ˆ๋›ฐ์–ด, ๊ณต๊ฒฉ์ž์˜ ๋ณตํ˜ธํ™” ๋„๊ตฌ๋ฅผ ํŒŒ๊ดดํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ค‘ ์•”ํ˜ธํ™”๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์•”ํ˜ธํ™”๋œ ํŽ˜์ด๋กœ๋“œ๋Š” ์›๊ฒฉ ์ฝ˜์†”์ด๋‚˜ datastore ๋ชฉ๋ก์—์„œ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก *.mario ์Šคํƒ€์ผ ์ ‘๋ฏธ์‚ฌ(์ผ๋ฐ˜์ ์œผ๋กœ .emario)๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

Layered Encryption Upgrades

์ตœ๊ทผ Mario ๋นŒ๋“œ๋Š” ์›๋ž˜์˜ ์„ ํ˜• ๋‹จ์ผ ํ‚ค ๋ฃจํ‹ด์„ ๋Œ€์šฉ๋Ÿ‰ VMDK์— ์ตœ์ ํ™”๋œ ํฌ์†Œ ๋‹ค์ค‘ ํ‚ค ์„ค๊ณ„๋กœ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ํ‚ค ์Šค์ผ€์ค„: 32๋ฐ”์ดํŠธ ๊ธฐ๋ณธ ํ‚ค(๋Œ€์ฒด๋กœ var_1150 ์ฃผ๋ณ€์— ์ €์žฅ)์™€ ๋…๋ฆฝ๋œ 8๋ฐ”์ดํŠธ ๋ณด์กฐ ํ‚ค(var_20)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ๋จผ์ € ๊ธฐ๋ณธ ์ปจํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜๋œ ๋‹ค์Œ ๋””์Šคํฌ ์“ฐ๊ธฐ ์ „์— ๋ณด์กฐ ํ‚ค๋กœ ๋‹ค์‹œ ํ˜ผํ•ฉ๋ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ๋ณ„ ํ—ค๋”: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฒ„ํผ(์˜ˆ: var_40)๋Š” ์ฒญํฌ ๋งต๊ณผ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”์ ํ•˜์—ฌ ๊ณต๊ฒฉ์ž์˜ ๊ฐœ์ธ ๋ณตํ˜ธ๊ธฐ๊ฐ€ ํฌ์†Œ ๋ ˆ์ด์•„์›ƒ์„ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์  ์ฒญํ‚น: ์ผ์ •ํ•œ 0xA00000 ๋ฃจํ”„ ๋Œ€์‹  ์ฒญํฌ ํฌ๊ธฐ์™€ ์˜คํ”„์…‹์ด ํŒŒ์ผ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์žฌ๊ณ„์‚ฐ๋˜๋ฉฐ, ์ž„๊ณ„๊ฐ’์€ ํ˜„๋Œ€ VM ์ด๋ฏธ์ง€์— ๋งž์ถฐ ์•ฝ 8GB๊นŒ์ง€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ํฌ์†Œ ์ปค๋ฒ„๋ฆฌ์ง€: ์ „๋žต์ ์œผ๋กœ ์„ ํƒ๋œ ์˜์—ญ๋งŒ ๊ฑด๋“œ๋ ค ๋Ÿฐํƒ€์ž„์„ ๊ธ‰๊ฒฉํžˆ ์ค„์ด๋ฉด์„œ๋„ VMFS ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ๊ฒŒ์ŠคํŠธ ๋‚ด NTFS/EXT4 ๊ตฌ์กฐ ๋˜๋Š” ๋ฐฑ์—… ์ธ๋ฑ์Šค๋ฅผ ์†์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๊ณ„์ธก: ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋นŒ๋“œ๋Š” ์ฒญํฌ๋ณ„ ๋ฐ”์ดํŠธ ์ˆ˜์™€ ํ•ฉ๊ณ„(์•”ํ˜ธํ™”๋จ/๊ฑด๋„ˆ๋œ€/์‹คํŒจ)๋ฅผ stdout์œผ๋กœ ๊ธฐ๋กํ•˜์—ฌ ๋ณ„๋„ ๋„๊ตฌ ์—†์ด๋„ ๋ผ์ด๋ธŒ ์นจํˆฌ ์ค‘ ์ œํœด์ž์—๊ฒŒ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

See also

Linux LPE via VMware Tools service discovery (CWE-426 / CVE-2025-41244):

Vmware Tools Service Discovery Untrusted Search Path Cve 2025 41244

References

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ