(0day) Пароли в открытом виде или секреты LSA

Не успел я сконсолидировать типовые методы пост-эксплуатации на платформе Windows в предыдущем посте, как (неожиданно и в тот же день) Александр Зайцев нарыл в сети новую, куда более интересную тему. Речь идет про опубликованный на днях французским исследователем "швейцарский нож" под названием mimikatz. Инструмент, помимо аналогичного функционала, поддерживаемого Windows Credentials Editor, позволяет выдергивать креды залогиневшегося пользователя в системе открытым текстом! Атака реализуется следующей магией:

mimikatz # privilege::debug
mimikatz # inject::process lsass.exe sekurlsa.dll
mimikatz # @getLogonPasswords



Подобное чудо связано с использованием поставщика безопасности wdigest, который с целью поддержки SSO хранит пароль в памяти открытым текстом (кто бы мог подумать!). Стоит ли говорить какой выхлоп для атакующего играет подобный недостаток :) К слову, парни уже прикручивают это чудо к MSF - http://pauldotcom.com/2012/02/dumping-cleartext-credentials.html

В качестве временного решения можно отключить поставщика безопасности wdigest через соответствующую ветвь реестра (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa). Однако стоит понимать, что атакующий может проделать тоже самое в обратном порядке.

21 комментарий :

  1. В проге "Cain & Abel" LSA Secrets Dumper появился уже в 2009 году

    ОтветитьУдалить
  2. ты бы хоть на картинку взглянул) речь идет про выдергивание паролей открытым текстом, тех пользователей, которые болтаются на терминале! Подобного функционала нету ни в одной другой тулзе, включая известного тебе каина.

    ОтветитьУдалить
  3. Дмитрий Пономарев21 февраля 2012 г. в 11:44

    Дмитрий, а почему 0day?.. Указали бы, какие привилегии нужны, чтобы "сказку сделать былью".
    Кстати, в открытом виде пароли хранятся и для TS-провайдера (tspkg). Правда, прежде чем советовать его отключать, надо упомянуть, что его задействует "RDP-SSO" (NLA). Про digest и Chap можно не упомянать – не заслуживают. :)

    ОтветитьУдалить
  4. ха-ха-ха, трололо!

    Дима, 0day твоему, уже даже в реализации mimikatz скоро год будет.

    ОтветитьУдалить
  5. to Дмитрий Пономарев:

    0day потому как патча для подобной фичи на текущий момент нету. Касаемо провайдера tspkg, мне кажется он заслуживает меньшего внимания, чем wdigest, т.к. не задействован по умолчанию. Вы видимо придерживаетесь другого мнения, можно узнать почему?

    to Анонимный:

    приходи к нам в компанию работать на пентестера! нам парни, которые шарят раньше всех подобные темы ох как нужны!;)

    ОтветитьУдалить
  6. Дмитрий Пономарев21 февраля 2012 г. в 15:55

    Патча для _фичи_?
    Если пароль где-то хранится в открытом виде, то его можно выгрузить и из памяти, без пристраивания к LSA. Это тоже 0day?..

    // Вы видимо придерживаетесь другого мнения <...>
    CredSSP c TSSP задействованы "изкоробки" в NT 6.x.

    ОтветитьУдалить
  7. Дмитрий Пономарев21 февраля 2012 г. в 20:42

    Как бы что?.. CVE ID?
    Ну, ОК, признаю: "страшная уязвимость".

    Тянется ведь и из TSSP, но уязвим только Digest-package?.. :)

    ОтветитьУдалить
  8. ммм... я не совсем понимаю, о чем мы спорим? и что Вы мне хотите доказать?

    ОтветитьУдалить
  9. Дмитрий Пономарев22 февраля 2012 г. в 12:41

    Дима, описание на Секлабе надо поправить: пользователи, _обладающий привилегией SeDebugPrivilege_ (Администраторы в общем случае).

    Утверждать, что SSPI-модули "хранят пароли пользователей в незашифрованном виде в памяти ОС" неверно. Во-первых хранятся пароли пользователей, локально зарегистрированных (имеется сессия) в системе (это не то же самое, что "пароли пользователей, _"авторизованных на системе"_), а во-вторых, хранятся они храняться "зашифрованными" с помощью "LsaProtectMemory".

    P.S. Таки признали TSPkg виноватым. :)

    ОтветитьУдалить
  10. с первым согласен, со вторым нет. по мне обратимое шифрование - это не шифрование вовсе.

    >> P.S. Таки признали TSPkg виноватым. :)

    а с этим никто и не спорил

    ОтветитьУдалить
  11. >по мне обратимое шифрование - это не шифрование вовсе.

    Никому об этом не говори!!!!

    ОтветитьУдалить
  12. Дмитрий Пономарев22 февраля 2012 г. в 22:12

    // по мне обратимое шифрование - это не шифрование вовсе
    А бывает необратимое шифрование?.. :)
    Дмитрий, не петросяньте.
    ProtectMemory именно шифрует, блочным, кажется, DEA в ECB-режиме, пусть ключом, зашитым в lsasrv.dll (так было у NT 5.0).

    Дмитрий, а долго ждать CVE ID? Я не в теме. Просвятите, пожалуйста.

    ОтветитьУдалить
  13. Correct, crypted in memory but in reversible way (LsaProtectMemory/LsaUnprotectMemory, see : http://blog.gentilkiwi.com/mimikatz/sekurlsa/wdigest#getWDigestFunctions & http://blog.gentilkiwi.com/mimikatz/sekurlsa/tspkg#getTsPkgFunctions), msv1_0 also use subcalls too for pass the hash.

    Usualy, debug privilege is needed, but you can use system account too, (psexec -s or other tricks) and with it : no need of privilege :)

    I disagree vulnerability, it's a weakness (but big fail ;))

    Benjamin `gentilkiwi`

    ps : I'm not "швейцарский нож", gentil kiwi mean "хороший киви"

    ОтветитьУдалить
  14. to Дмитрий Пономарев:

    ну зачем привязываться к словам ;) Вы ведь прекрасно поняли, что я имею ввиду под этим однонаправленное шифрование при хранении хеш-значений от используемых паролей. И то, что существует потребность в хранении пароля - это тоже понятно. Удивление вызывает другое. А именно, то что ОС без моего ведома и по умолчанию хранит мой пароль, когда я захожу на терминал или захожу в интерактивном режиме.

    >> а долго ждать CVE ID? Я не в теме.

    мну тоже не в теме)

    to Gentil Kiwi:

    I agree - this is a weakness. But then, NTLM Relay (MS08-068) can also be attributed to the weakness of.

    ОтветитьУдалить
  15. Yes for MS068-068, strange categorization.
    (by the way I'm not a swiss knife ;) ;))

    ОтветитьУдалить
  16. Gentil Kiwi -- swiss knife is not you =) It's about your toolset.

    ОтветитьУдалить
  17. Читайте, просвящайтесь:
    http://passcape.com/index.php?section=docsys&cmd=details&id=34&setLang=6

    ОтветитьУдалить