SAMInside

Внимание! Данная программа может использоваться исключительно для восстановления своих собственных забытых паролей!

Программа SAMInside выполняет следующие функции:

SAMInside является первой в мире программой, которая ломает защиту ключом Syskey!

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

Скорость перебора паролей программы SAMInside на разных процессорах:

Процессор Скорость перебора по LMHash Скорость перебора по NTHash
Intel Pentium-III 1000 МГц~3,2 миллиона паролей/cек~3,3 миллиона паролей/cек
AMD AthlonXP 1700+ (1466 МГц)~5,7 миллиона паролей/cек~5,1 миллиона паролей/cек
Intel Pentium-4 2500 МГц~3,7 миллиона паролей/cек~5,4 миллиона паролей/cек


Причем, при переборе по NTHash, если перебирается один пользователь, скорость возрастает на 60-100% и, к примеру, на Athlon XP 1700+ составляет 10 миллионов паролей/cек.

Еще одним характерным отличием программы от своих аналогов является то, что она наиболее правильно и корректно извлекает имена и пароли пользователей из SAM-файлов Windows NT/2000/XP/2003 в национальных кодировках символов.

Программа работает под всеми операционными системами Windows (от Windows 95 до Windows 2003) и требует для работы любой процессор линейки x86 не ниже Intel Pentium (или AMD K6-II), обязательно с поддержкой MMX.

Возможности программы

Меню "File":

"Import SAM-file..." (Ctrl+O) - открыть и загрузить в программу нужный SAM-файл. Если SAM-файл получен из системы Windows NT/2000/XP/2003 и зашифрован ключом SYSKEY (а в системах Windows 2000/XP/2003 шифрование включено принудительно), то программа дополнительно запросит открыть SYSTEM-файл, располагающийся в той же директории Windows, что и SAM-файл, а именно - в каталоге %SystemRoot%\System32\Config. Также копии этих файлов могут находиться в каталогах %SystemRoot%\Repair и %SystemRoot%\Repair\RegBack.

"Import PWDUMP-file... - открыть и загрузить в программу текстовый файл с хэшами в формате программы PWDUMP. Общепризнанный формат хэшей в этих файлах такой: Имя_пользователя:RID:LMHash:NTHash:Описание_учетной_записи::
например: BillG:1010:5ECD9236D21095CE7584248B8D2C9F9E:C04EB42B9F5B114C86921C4163AEB5B1:::
Также информацию о пользователях в этом формате сохраняют и другие программы, например LC4.

"Import local machine SAM" - импорт хэшей из SAM-файла с локального компьютера. Для выполнения операций из этого меню программу нужно запустить от имени пользователя с правами Администратора.

"Using LSASS" - импорт локальных хэшей используя подключение к процессу LSASS.

"Using Scheduler" - импорт локальных хэшей с использованием системной утилиты Scheduler, имеющей права пользователя SYSTEM.

"Export to PWDUMP-file..." (Ctrl+S) - экспорт полученных данных в формат программы PWDUMP (этот формат описан выше). После этого вы можете загружать полученный файл в любую удобную для вас программу для восстановления паролей.

Меню "Edit":

"Mark all users" (Alt+M) - отметить всех пользователей. При этом помечаются только те пользователи, пароли к которым еще не найдены.

"Unmark all users" (Alt+U) - снять отметку со всех пользователей.

"Delete all users" (F12) - удалить всех пользователей с хэшами, которые загружены в программу.

Меню "Tools":

"Check password" (F2) - проверить пароль на всех пользователях, загруженных в программу. В текстовом поле "Password:" введите нужный пароль и выберите этот пункт меню (или нажмите F2). После этого программа проверит данный пароль на всех пользователях, пароль к которым еще не найден. Таким образом, для проверки пароля не нужно отмечать пользователей.

"Generate LMHash and NTHash..." (F3) - генерировать LM-хэш и NT-хэш по известному паролю. В текстовом поле "Password:" введите нужный пароль и выберите этот пункт меню (или нажмите F3). После этого в диалоговом окне появятся хэши, которые соответствуют данному паролю.

"Hidden mode" (Ctrl+Alt+H) - "Скрытый режим" работы программы. При выборе этого режима программа исчезнет с экрана и с панели задач. Для возврата из скрытого режима нажмите эту же комбинацию клавиш.

"Language" - выбрать язык интерфейса программы. В этом меню находится список всех Language-файлов, найденных программой в своей рабочей директории.

Меню "Search":

"Brute-force attack" - атака полным перебором.

"Start(Stop) on LM Hashes" (F5) - начать/остановить полный перебор по LM-хэшам. Перед запуском перебора отметьте тех пользователей, к которым нужно восстановить пароли, и нажмите F5.

"Start(Stop) on NT Hashes" (F6) - начать/остановить полный перебор по NT-хэшам. Перед запуском перебора отметьте тех пользователей, к которым нужно восстановить пароли, и нажмите F6.

"Options..." - настройки полного перебора, которые позволяют выбрать наборы символов для перебора, а также установить минимальную и максимальную длину восстанавливаемых паролей.

"Mask attack" - перебор по маске (пункты из этого меню недоступны в Demo-версии программы).

"Start(Stop) on LM Hashes" (F7) - начать/остановить перебор по маске по LM-хэшам. Перед запуском перебора отметьте тех пользователей, к которым нужно восстановить пароли, и нажмите F7.

"Start(Stop) on NT Hashes" (F8) - начать/остановить перебор по маске по NT-хэшам. Перед запуском перебора отметьте тех пользователей, к которым нужно восстановить пароли, и нажмите F8.

"Options..." - настройки перебора по маске, которые позволяют сформировать маску для перебираемых паролей, а также установить максимальную длину перебираемых паролей. Установка маски заключается в следующем - если вы не знаете N-й символ пароля, то включите N-й флажок маски и в соответствующем текстовом поле укажите маску для этого символа. В программе используются следующие маски:
        ? - Любой печатаемый символ (коды символов: 32...255).
        A - Любая заглавная латинская буква (A...Z).
        a - Любая строчная латинская буква (a...z).
        S - Любой специальный символ (!@#...).
        N - Любая цифра (0...9).
        X - Любой символ из пользовательского набора символов.
Если же вы заранее знаете определенный символ пароля, то впишите его в N-е текстовое поле и снимите флажок маски.

"Dictionary attack" - перебор по словарю.

"Start(Stop)" (F9) - атака по словарю. Для работы просто выберите текстовый файл словаря и программа начнет проверять каждый пароль из словаря на всех пользователях, пароль к которым еще не найден.

Дополнительная информация:

Ограничения программы:

Ограничения Demo-версии
  1. Нельзя использовать другой алфавит для перебора (цифры, национальные символы и пр.), кроме заглавных латинских букв.
  2. Недоступен перебор по маске.
FAQ

Q1: Что такое SAM-файлы, зачем они нужны и где они расположены?
A: Так называемый SAM-файл - это файл, который прямо так и называется - sam. Это фактически ветка реестра "HKEY_LOCAL_MACHINE\SAM" Windows NT/2000/XP/2003 в бинарном виде. SAM-файл расположен в каталоге C:\WINNT\System32\Config\ (или в каталоге C:\WINDOWS\System32\Config\) и в нем находятся аккаунты (т.е. логин/пароль) пользователей данного компьютера.

Q2: Я указываю программе для перебора свой SAM-файл, расположенный в каталоге C:\WINNT\System32\Config\, а программа SAMInside не может его прочитать. Почему?
A: Дело в том, что файлы в этом каталоге (sam, system, software и другие файлы без расширений) - это фрагменты реестра Windows и операционная система по умолчанию никому не дает к ним доступа, даже на чтение. Получить к ним доступ можно следующими способами:

  1. Запустить SAMInside из-под аккаунта Администратора и произвести импорт локального SAM-файла, используя либо программу Scheduler, либо используя подключение к LSASS.
  2. Из-под аккаунта Администратора запустить "Мастер архивации и восстановления" (Панель управления -> Администрирование -> Управление компьютером) и создать диск аварийного восстановления (Repair disk). При этом в каталоге C:\WINNT\Repair\ будет сохранены копии текущих SAM/SYSTEM-файлов, к которым есть доступ и которые можно загружать в SAMInside.
  3. Если ваш загрузочный диск имеет файловую систему не NTFS, то создайте загрузочную дискету из-под ОС Windows 98, загрузитесь с нее и скопируйте нужные SAM/STYSTEM-файлы в другой каталог или на дискету. Затем загружайтесь в свою ОС и импортируйте эти файлы в SAMInside.
  4. Если ваш загрузочный диск имеет файловую систему NTFS, то создайте загрузочную дискету в программе NTFSDos Pro, загрузитесь с нее, примонтируйте нужный NTFS-раздел и скопируйте нужные SAM/SYSTEM-файлы в другой каталог или на дискету.
  5. Т.к. размер SYSTEM-файла обычно составляет несколько мегабайт, то для его сжатия (если вы копируете на дискету) используйте любой DOS-архиватор, например HA:
Q3: В чем разница между LM- и NT-паролями? Я нашел с помощью вашей программы LM-пароль "ADMIN", а NT-пароль - "Admin". Какой из них мне использовать для входа в систему?
A: Подробно о формировании этих паролей и об отличиях между ними вы можете прочитать в данной статье в разделе "Хранение паролей в Windows 2000/XP". А если кратко, то для Windows LM- и NT-пароли равнозначны и в данном случае вы войдете в систему с любым паролем - "ADMIN", "Admin", "aDmIn" или "admin", т.к. если в системе включено формирование LM-паролей, то проверка происходит по LM-хэшу, а при его формировании любой пароль переводится в верхний регистр и все вышеприведенные пароли будут давать одинаковый LM-хэш.
Если же формирование LM-хэша отключено, тогда для входа в систему используется регистрозависимый NT-пароль.

Q4: У меня пароль 8(9,10...) символов, но при попытке установить начальный пароль больше 7 символов не запускается LM-перебор, либо программа заканчивает перебирать все 7-символьные пароли и выдает, что перебор закончен. Почему? Ведь у меня пароль длиннее?
A: Немного о формировании LMHash в Windows. Система берет пароль, преобразует его в верхний регистр, обрезает до 14 символов, затем делит его на 2 половинки по 7 символов и шифрует по отдельности. Поэтому, при поиске пароля (к примеру, "123456789") программа находит его по половинкам - сначала "89" (так как она короче), а затем - и "1234567". Поэтому длина начального пароля и ограничена 7 символами.

Q5: У меня короткий NT-пароль (LM-пароль отсутствует), состоящий из латинских букв, но программа его не находит, почему? (Примечание: алфавит состоит из заглавных букв).
A: Дело в том, что Windows всегда преобразует LM-пароль в верхний регистр (т.е. при шифровании паролей "Admin", "ADMIN" и "aDmIn" на выходе будет один и тот же LMHash, можете проверить это, используя функцию программы по генерации хэшей), а NT-пароль является регистрозависимым и перечисленные выше пароли будут иметь разные NTHash. Поэтому, при восстановлении NT-пароля нужно использовать разные алфавиты, состоящие как из заглавных, так и из строчных символов нужного алфавита!

Q6: При импорте локального SAM-файла методом "Using Scheduler" программа сообщает об ошибке "Can't open temporary file!" почему?
A: Дело в том, что этот метод получает содержимое ветки реестра HKEY_LOCAL_MACHINE\SAM\SAM, используя системную утилиту Scheduler, по умолчанию имеющую права пользователя SYSTEM. Но на некоторых компьютерах доступ на чтение этой ветки реестра закрыт даже пользователю SYSTEM. Это делается либо программами-твикерами, либо "ручными" настройками реестра ОС.
Для получения локальных хэшей вы можете также использовать другой метод, который применяется в программе - "Using LSASS", либо используйте внешнюю утилиту PWDUMP или же программы LC4/LC+4.
Либо воспользуйтесь следующими рекомендациями:
  1. Запустите программу regedt32.exe.
  2. Откройте раздел реестра HKEY_LOCAL_MACHINE.
  3. Для подраздела HKEY_LOCAL_MACHINE\SAM через пункт меню "Разрешения" установите пользователю SYSTEM и своему аккаунту Администратора следующие права: "Полный доступ" + "Чтение" (либо эти разрешения уже должны присутствовать и быть "затененными", т.е. недоступными для изменения).
  4. Для подраздела HKEY_LOCAL_MACHINE\SAM\SAM через пункт меню "Разрешения" также установите пользователю SYSTEM права "Полный доступ" + "Чтение", для своего же аккаунта Администратора достаточно будет прав на "Чтение".
  5. Запустите в командной строке консоли:
    regedit.exe /E /A samexport.txt "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account".
  6. Положите программу SAMDump.exe и полученный файл samexport.txt в один каталог.
  7. Запустите:
    SAMDump.exe >hashes.txt
  8. Загрузите полученный файл с хэшами hashes.txt в SAMInside.
  9. Внимание: данные действия с реестром производите ОЧЕНЬ внимательно, т.к. неверная установка прав доступа может привести к полной неработоспособности Windows.
Q7: При загрузке SAM-файла (или SYSTEM-файла) программа сообщает, что его формат неверный или он поврежден, несмотря на то, что я копировал его из директории C:\WINDOWS\System32\Config. Почему я не могу загрузить свой файл в программу?
A: Такая ситуация возникает, если формат загружаемого вами файла неизвестен программе SAMInside. В первую очередь посмотрите на сигнатуру (т.е. первые 4 байта) своего файла, она должна быть такая - 'regf'. Если это не так, то, возможно, у вас произошла одна из следующих ситуаций:
    - вы скопировали файл с EFS-диска (т.е. с диска, на котором установлена Encrypting File System, поддерживающая шифрование файлов); в этом случае ваши файлы зашифрованы и представляют собой псевдослучайный набор байтов, которые не могут использоваться для получения нужных веток реестра.
    - ваши файлы расположены на NTFS-диске и вы использовали для их копирования программу, которая работает с ошибками; такая ситуация часто происходит при использовании программы NTFSDos и ряда других программ, которые некорректно работают с NTFS 5.0 и выше, поэтому для копирования файлов используйте более новые программы, например NTFSDos Pro.
Если же у вашего файла сигнатура правильная (т.е. он действительно является файлом реестра), но программа не может его импортировать, то пришлите свой файл в службу поддержки для его анализа.

Q8: У меня работают оба метода получения локальных хэшей - и "Using Scheduler", и "Using LSASS". Зачем тогда в программе присутствуют два этих метода одновременно?
A: Это сделано специально для того, что если один из этих методов не сработает (например, причина, почему может не работать метод через программу Scheduler, описан выше) или же будет работать с ошибками, то у вас всегда будет альтернативный способ получения локальных хэшей.
То есть, если не сработает один метод, используйте другой и наоборот.

Q9: Ваша программа восстановила пароль из SAM-файла, но когда я пытаюсь войти с ним в Windows, то ОС сообщает, что пароль неверный! В чем дело?
A: В вашем случае происходит следующее - ваш компьютер подключен к сети, где присутствует сервер домена с включенной службой Active Directory. В этом случае учетные записи пользователей хранятся на сервере домена, а не в SAM-файле. SAMInside же восстанавливает пароли только локальных учетных записей и хранящиеся на локальном компьютере. Но если пользователь уже заходил в сеть, то его учётная запись кэшируется на локальном компьютере (по умолчанию Windows 2000/XP кэшируют 10 последних вошедших пользователей с их паролями). Для доступа к этим данным воспользуйтесь программой lsadump2.

В следующих версиях ожидается