Извлечение зашифрованных учетных данных из распространенных инструментов PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Извлечение зашифрованных учетных данных из общих инструментов

Ассоциация большинство кибератак полагаться на украденные учетные данные, полученные либо путем обмана сотрудников и конечных пользователей, чтобы они поделились ими, либо путем сбора учетных данных домена, кэшированных на рабочих станциях и других системах в сети. Эти украденные учетные данные дают злоумышленникам возможность бокового перемещения в среде по мере того, как они переключаются с машины на машину — как в локальной среде, так и в облаке — до тех пор, пока они не доберутся до критически важных для бизнеса ресурсов.

В Убер нарушение еще в сентябре злоумышленники нашел учетные данные в определенном сценарии PowerShell. Но есть множество менее ярких, но не менее опасных способов, которыми злоумышленники могут найти учетные данные, которые позволят им получить доступ к среде. К ним относятся общие локальные учетные данные, локальные пользователи с похожими паролями и учетные данные, хранящиеся в файлах на общих сетевых ресурсах.

В нашем исследовании мы столкнулись с вопросом, какую информацию можно извлечь из взломанной машины — без использования каких-либо уязвимостей — для перемещения в боковом направлении или извлечения конфиденциальной информации. Все инструменты, которые мы здесь использовали, доступны на нашем GitHub репозиторий.

Организации полагаются на несколько инструментов для аутентификации на серверах и базах данных с использованием протоколов SSH, FTP, Telnet или RDP, и многие из этих инструментов сохраняют учетные данные для ускорения аутентификации. Мы рассмотрим три таких инструмента — WinSCP, Robomongo и MobaXterm — чтобы показать, как злоумышленник может извлечь учетные данные, не являющиеся открытым текстом.

WinSCP: замаскированные учетные данные

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

WinSCP предлагает возможность сохранить учетные данные, используемые для подключения к удаленным компьютерам через SSH. Хотя учетные данные запутываются при сохранении в реестре Windows (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions), они вообще не шифруются. Любой, кто знает алгоритм, используемый для обфускации, может получить доступ к учетным данным.

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

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

Робомонго: не секретный ключ

Robomongo (теперь Robo 3T) — это клиент MongoDB, используемый для подключения к серверам баз данных Mongo. Когда вы сохраняете свои учетные данные, они шифруются и сохраняются в robo3t.json JSON-файл. Секретный ключ, используемый для шифрования учетных данных, также сохраняется локально в виде открытого текста в robo3t.key .

Это означает, что злоумышленник, получивший доступ к машине, может использовать ключ, сохраненный в виде открытого текста, для расшифровки учетных данных.

Мы просмотрели исходный код Robomongo на GitHub, чтобы понять, как ключ используется для шифрования пароля, и узнали, что он использует библиотеку SimpleCrypt из Qt. Хотя Robomongo использует шифрование для безопасного хранения учетных данных, тот факт, что секретный ключ сохраняется в открытом виде, не является лучшей практикой. Злоумышленники потенциально могут прочитать его, потому что любой пользователь, имеющий доступ к рабочей станции, может расшифровать учетные данные. Даже если информация закодирована таким образом, что люди не могут ее прочитать, определенные методы могут определить, какая кодировка используется, а затем расшифровать информацию.

MobaXterm: расшифровка пароля

MobaXterm — это мощный инструмент для подключения к удаленным компьютерам с использованием различных протоколов, таких как SSH, Telnet, RDP, FTP и т. д. Пользователю, который хочет сохранить учетные данные в MobaXterm, будет предложено создать мастер-пароль для защиты своих конфиденциальных данных. По умолчанию MobaXterm запрашивает мастер-пароль только на новом компьютере.

Это означает, что мастер-пароль где-то сохранен, и MobaXterm извлечет его для доступа к зашифрованным учетным данным. Мы использовали Procmon из пакета Sysinternals Suite для сопоставления всех ключей реестра и файлов, к которым обращается MobaXterm, и нашли мастер-пароль, сохраненный в реестре Windows (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM). Учетные данные и пароли сохраняются в разделах реестра C и P соответственно.

Изначально нам не удалось расшифровать мастер-пароль, который был зашифрован с помощью DPAPI. В конце концов мы выяснили, что первые 20 байтов DPAPI, которые всегда одинаковы при использовании DPAPI, были удалены. Когда мы добавили первые 20 байт, мы смогли расшифровать шифр DPAPI, чтобы получить хэш SHA512 мастер-пароля. Этот хэш используется для шифрования и расшифровки учетных данных.

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

Знать риски

Разработчики, DevOps и ИТ-отделы используют различные инструменты для подключения к удаленным компьютерам и управления этими данными доступа. Поставщики должны хранить эту конфиденциальную информацию наиболее безопасным способом. Однако шифрование всегда выполняется на стороне клиента, и злоумышленник может воспроизвести поведение инструмента, чтобы расшифровать учетные данные.

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

Отметка времени:

Больше от Темное чтение