Взлом пароля локального администратора
- Font size: Larger Smaller
- Hits: 13532
- 0 Comments
- Subscribe to this entry
- Bookmark
В данной статье мы рассмотрим процесс взлома пароля локального администратора компьютера под управлением ОС Windows, в ситуации когда у нас есть физический доступ к машине жертвы. Задача довольно тривиальная и может быть разбита на два этапа:
1) Извлечение хэша из ОС Windows
2) Взлом хэша
Для начала предлагаю описать условия нашей лабораторной работы. Есть компьютер жертвы под управление ОС WindowsXP (сразу оговорюсь, что все описанное так же применимо и для свежих ОС данного производителя, в том числе и Windows7), так же на руках есть LiveCD с Linux сборкой под названием KaliLinux (известная сборка для проведения аудита информационной безопасности, которую можно скачать здесь http://www.kali.org/downloads/), есть желание узнать пароль локального админа на компьютере жертвы. Можно приступать.
- Извлечение хэша из ОС Windows
Запускаем компьютер с нашего LiveCD, заходим в терминал и даем команду fdisk–l, что бы посмотреть какие диски имеются на данном компьютере.
Рис.1
Из рисунка 1 видно, что Windows диск подцепился к логическому диску /dev/sda1
Теперь давайте создадим какую-нибудь временную директорию на Kali Linux и подцепим к ней найденный диск с Виндой, что бы в последствие получить возможность с ним работать.
Создаем директорию
root@KALI:~#mkdir/root/tempfolder
Цепляем к этой директории диск с Windows
root@KALI:~#mount /dev/sda1 /root/tempfolder
Переходим в эту директорию
root@KALI:~#cd/root/tempfolder root@KALI:~/tempfolder#
В ОС Windows по следующему пути WINDOWS\system32\config находятся два файла system и SAM, которые на пару выдадут нам хэш пароля локального администратора. Для этого давайте перейдем по указанному пути
root@KALI:~/tempfolder#cd ./WINDOWS/system32/config root@KALI:~/tempfolder/WINDOWS/system32/config#
Далее воспользуемся утилитами bkhive и samdump2 как показано на рисунке 2.
Рис.2
Если подробнее то эти две утилиты предназначены для получения хэшей и работают по следующему принципу. BKHive извлекает из файла system ключ SYSKEY, а SAMDump2 в свою очередь извлекает из SAM файла хэши, используя для декодирования SYSKEY, который извлек BKHive.
Примечание: В нашем примере мы вытаскиваем хэш из компьютера под управлением WindowsXP. Если вы вытаскиваете хэш из Windows 7 то путь будет Windows\System32\config, а файлы будут называться SYSTEMи SAM.
В нашем примере мы извлекли SYSKEY и поместили его в /root/key.txt, а потом с помощью SAMDump2, /root/key.txt и файла SAM создали файл /root/hashfile.txt с искомыми хэшами.
Теперь достаточно посмотреть его содержимое командой more как на рисунке ниже и увидеть хэш нашего локального администратора.
Рис.3
1 – Логин локального администратора
2 – 500 говорит нам, что пользователь является локальным администратором
3 – LM хэш
4 – NT хэш
2. Взлом хэша
С того момента как мы получили хэш пароля локального админа, в компьютере пользователя больше нет надобности. Сейчас наша задача вытащить из него пароль.
Существует множество утилит по взлому хэшей NTLM, однако мне хочется воспользоваться радужными таблицами, что бы существенно увеличить скорость взлома. Что такое радужные таблицы можно почитать здесь http://ru.wikipedia.org/wiki/%D0%E0%E4%F3%E6%ED%E0%FF_%F2%E0%E1%EB%E8%F6%E0
Постараюсь описать в двух словах соль использования радужных таблиц. Когда вы ломаете хэш по словарю принцип подбора следующий. Вы берете предполагаемое значение пароля из словаря, генерируете из него хэш и сравниваете с тем хэшем, который вы ломаете. Если значения совпадают, то вы понимаете что пароль найден, если нет, то берете следующее предполагаемое значение пароля из словаря, генерируете его хэш и сравниваете, и так далее пока не найдете пароль.
Радужные таблицы это таблицы с уже заранее сгенерированными хэшами, что сильно ускоряет процесс поиска. Теперь вы фактически берете из словаря не предполагаемый пароль, а хэш и сразу сравниваете его с тем, который ломаете. Когда хэши совпали, то просто смотрите в таблице соответствующий данному хэшу пароль.
Вы ставите какую-нибудь программу, которая работает с радужными таблицами, типа ophcrack или rcracki_mt и скачиваете радужную таблицу для интересующего вас алгоритма хеширования типа md5, ntlm, shaи т.д. При этом должен отметить, что сами радужные таблицы сильно различаются по размеру в зависимости от того какие символы поддерживаются и какова длина искомого пароля. Так же в зависимости от длины пароля и набора символов есть платные и бесплатные таблицы. Допустим для утилиты ophcrackсписок поддерживаемых таблиц можно посмотреть здесь http://ophcrack.sourceforge.net/tables.php.
Можно видеть, что таблица для циферного пароля под NTLM Windows7 длиной до 12 цифр можно скачать бесплатно и весить она будет 3ГБ, а таблица под NTLM Windows7 длиной до 8 всевозможных символов будет стоить денежку и весит 2ТБ.
В своем примере я воспользуюсь программой rcracki_mtи радужной таблицей до 8 символов (большие и маленькие буквы + цифры). Хоть в livecd сборке KaliLinux и есть данная утилита, но к сожалению в нем отсутствуют сами радужные таблицы. Поэтому я воспользуюсь своей «виндоус» машиной с установленным rcracki_mt и скачанной заранее радужной таблицей. Программу rcracki_mt я кинул в корень диска C:\
Итак, запускаем cmd и даем следующую команду:
C:\rcracki_mt.exe –h c222a1388df7ef4e11a002fbf711bebc C:\RainbowTables\ntlm_mixalpha-numeric#1-8_0\ -t 8 –o C:\result.txt
Мы указали нашей утилите искомый NT хэш (параметр –h), место где лежит радужная таблица по которой будет осуществлен поиск, а так же имя файла, в который нужно записать результат (параметр –o).
В конце произведенных вычислений программа покажет нам статистику и итоговый результат (см. рис. 4).
Рис.4
Из результата видно, что искомый пароль Aa1234.
Зачастую (я бы даже сказал очень часто), многие компании используют единый пароль локального администратора на всех корпоративных компьютерах и если мы знаем пароль локального админа, то в последствие это нам позволяет очень свободно разворачивать дальнейшие атаки на системы компании. В следующей статье я как раз планирую показать пример того как это можно использовать.
К чему вся эта статья. Я считаю, что каждый системный администратор должен хоть немного беспокоиться об информационной безопасности в своей компании. Любой более менее продвинутый пользователь может проделать операции описанные выше в данной статье. Следовательно мне хочется, что бы системные администраторы задумались о том, что нужно использовать криптостойкие пароли (чем длиннее тем лучше, ибо если под заданную длину есть радужная таблица, то взлом хэша не занимает много времени), что нужно блокировать биос от возможности загрузиться с флешки или livecd (это по крайней мере заставит хакера вскрывать корпус что бы сбросить биос а это уже может оставить какие-то следы и усложняет процесс), что можно подумать о такой вещи как полное шифрование системы (что вообще исключает вариант вытащить с жесткого нужные SAM и SYSTEM файлы). В общем много чего можно и нужно делать, было бы желание.
Надеюсь данная статья была вам интересна и полезна. Если есть какие-нибудь замечания или интересные мысли предлагаю оставлять их в комментариях, а я по возможности на них отвечу.