17
NTLM. Часть 1 Pass-the-hash 16/06/2014 Alexey “GreenDog” Tyurin

Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Embed Size (px)

DESCRIPTION

Мы поговорим о NTLM, SSO- аутентификации и об эксплуатации pass-the-hash техники. Плюс обсудим методы защиты, которые пришли к нам с новейшими версиями ОС.

Citation preview

Page 1: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

NTLM. Часть 1Pass-the-hash

16/06/2014Alexey “GreenDog” Tyurin

Page 2: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 2

about

- пентестер (Web, EBA, MS nets)- рубрика “Easy Hack” (Xakep)- co-org Defcon Russia, ZeroNights

https://twitter.com/[email protected]

Page 3: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 3

NTLM

Как технология• Хранение паролей в ОС, в ActiveDirectory• Аутентификация• Auto Single-Sing-on

Основа атак на windows-сети

Page 4: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 4

Почему и Зачем?

• Почти все корпоративные сети построены на AD и windows

• Низкий уровень знаний админов• Возможность получить полный контроль

над всем• Нет реальной возможности полностью

защититься• Много тонкостей и трюков

Page 5: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 5

Хранение

Хранить пароли надо, но хранить plain-text’ом – плохо - NT хеш:MD4(UTF-16-LittleEndian(password)) - LM «хеш» (раньше)см. далее

Page 6: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 6

LM hashwiki:• Пароль пользователя как OEM-строка (Россия - cp866) приводится к

верхнему регистру.• Пароль дополняется нулями или обрезается до 14 байтов• Получившийся пароль разделяется на две половинки по 7 байтов.• Эти значения используются для создания двух ключей DES, по одному для

каждой 7-байтовой половинки, рассматривая 7 байтов как битовый поток и вставляя ноль после каждых 7 битов. Так создаются 64 бита, необходимые для ключа DES.

• Каждый из этих ключей используется для DES-шифрования ASCII-строки «KGS!@#$%», получая два 8-байтовых шифрованных значения.

• Данные шифрованные значения соединяются в 16-байтовое значение, являющееся LM-хешем.

До Windows Vista/2008 по умолчанию хранятся и LM-хеши

Page 7: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 7

NT и LM хеши

• Брутабельно• Можно использовать «радужные таблицы»• Сначала LM: по частям и без регистра

Чем: l0phtcrack, Cain, John-the-Ripper, HashCat…

Page 8: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 8

NTLM authNTLM v1

1) Когда юзер, хочет подключиться к серверу, то ОС отправляет запрос на подключение, содержащее имя юзера и домена2) Сервер генерирует 16-байтовое случайное значение (challenge) и отправляет его серверу (вместе с информацией об имени хоста, домена и т.д.)3) Клиент «хеширует» пароль вместе с challengeм и отправляет ответ на сервер.

Сервер проводит аналогичное «хеширование» на своей стороне и сравнивает хеши, определяя возможность доступа юзера.

При аутентификации в домене, сервер передают имя пользователя, challenge и хеш клиента с третьего шага на контроллер домена, где и происходит сравнение.

NTLM v2 – похож, добавлен клиентский challenge, для затруднения брута и защиты от «радужных» таблиц

Page 9: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 9

NTLM auth

• Основополагающий протокол виндовой Single-Sign-on• Глубокое внедрение:

- Почти любой протокол (http, smb, pop3, ftp…)- Почти все продукты/технологии M$- Включена по умолчанию

= Необходимо хранить NT-хеш

*Признан M$ как небезопасный протокол**Время жизни большое (смена пароля)

Page 10: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 10

Где хранить хеши?В файловой системе:• Локальный юзеры – SAM файл в каждой ОС• Доменные юзеры – NTDS.DIT на контроллере домена• Зашелдуреные таски, сервисы (всё, что с учётками и должно

работать после перезагрузки) - LSA secrets

В оперативной памяти:• Юзеры с активной сессией в ОС – LSASS (Local System Security

Authority Subsystem)

* На самом деле, Win так же хранят почти «plain-text» пароли и не NT-хеши паролей, но об этом потом

Page 11: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 11

Доступ к хешам. Кто?

• Админ (не ко всему)• NT AUTHORITY\SYSTEM+ Любой админ – это по сути SYSTEM+ Любой сервис - это по сути SYSTEM+ Любой юзер с опред. привилегиями (=~ админ)

= Необходимо поднимать привилегии

Page 12: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 12

Доступ к хешам. Чем?

• WCE http://www.ampliasecurity.com/research/wcefaq.html

• Mimikatz https://github.com/gentilkiwi/mimikatz

• Metasploit

• + куууча олдскульных тулз (cain&abel, *dump)

Page 13: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 13

Что дальше?

Pass-the-Hash

• Почти все модули Metasploit поддерживают PtH-аутентификацию (Psexec, shares, ms sql …)

• Xfreerdp для RDP (для Win 8.1, 2012)• С помощью WCE можно «прошить» краденный хеш

почти в любое приложение

Page 14: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 14

PtH. Что можем?• «Горизонтальное» повышение привилегийЕсть хеш локального админа на одном хосте, он же подходит на другие* С Windows Vista|2008 – локальный админ по умолчанию отключен

DC

* Server =~ server or client computer** DC – Domain Controller

Page 15: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 15

PtH. Что можем?• Повышение привилегийЕсть хеш локального админа на хосте и из памяти получаем хеш доменного админа

DC

* Server =~ server or client computer** DC – Domain Controller

Page 16: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 16

PtH. Защита• Полная - отсутствует

• Есть возможность защититься при комплексном подходе:- Ограничить использование привилегированных учёток- Отключение/запрет на удалённый доступ локальных- «Безопасные» методы аутентификации- фаерволы, патчи…

Page 17: Tyurin Alexey - NTLM. Part 1. Pass-the-Hash

Defcon Russia (DCG #7812) 17

Q?

https://twitter.com/[email protected]