chntpw

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

chntpw
Логотип программы chntpw
Скриншот программы chntpw
Тип Восстановление данных
Разработчик Petter Nordahl-Hagen (Ранее Petter Nordahl)
Написана на C
Операционная система Linux
Первый выпуск 28 мая 1997; 27 лет назад (1997-05-28)
Последняя версия 1.00 (1 февраля 2014; 10 лет назад (2014-02-01))
Лицензия GPLv2
Сайт pogostick.net/~pnh/ntpasswd/
Логотип Викисклада Медиафайлы на Викискладе

chntpw — UNIX-утилита с открытым исходным кодом, предназначенная для считывания и модификации базы данных паролей Windows (SAM). Chntpw позволяет получать списки имён пользователей, их типы доступа (обычный или администратор), изменять или сбрасывать пароли, повышать статус произвольных пользователей до администратора и редактировать системный реестр. Для использования программы необходимо загрузить компьютер с внешнего носителя, на котором установлена операционная система с установленной chntpw. Программа поддерживает работу со следующими операционными системами семейства Windows: Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1 и Windows 10.

Особенности

[править | править код]

Chntpw даёт пользователям возможность легко удалить свой пароль в случае его утери[1], но может использоваться и для неправомерного доступа к пользовательским данным в случае, если у злоумышленника имеется физический доступ к компьютеру жертвы. В таком случае злоумышленник сможет незаметно установить на систему компьютерный вирус или получить доступ к сохранённым паролям браузера, установить SSL сертификаты и т. п. Программа не поддерживает работу с зашифрованными дисками (например, с помощью BitLocker), даже если у пользователя имеется пароль для его расшифровки.

Для использования chntpw необходимо загрузить компьютер с операционной системы Linux или загрузочного образа Bootdisk, который можно загрузить с официального сайта. В первом случае, возможно придётся самостоятельно установить chntpw (достаточно загрузить статически слинкованный бинарный файл и запустить его) или воспользоваться операционной системой, в состав которой уже входит chntpw, например Kali Linux.

chntpw [options] <samfile> [systemfile] [securityfile] ...

Chntpw использует следующие опции командной строки: -h, -u, -l, -i, -e, -d, -N, -E, -v

Пример: примонтировать диск Windows и вывести список всех пользователей в системе:

ntfs-3g /dev/sda1 /media/win
cd /media/win/Windows/System32
cp -r ./config ~ # Сохранить резервную копию базы данных
cd ./config
chntpw '-l' 'SAM'

Вывод:

| RID -|---------- Username ----------| Admin?|- Lock? --|
| 03h8 | User                             |            | dis/lock  |
| 01f6 | Администратор             | ADMIN | dis/lock  |
| 01f2 | Гость                            |            | *BLANK* |

Примечание: пользователи в программе различаются не по именам, а по уникальному номеру RID — relative identifier[2]. В дальнейшем, чтобы перейти к редактированию заданного пользователя, необходимо сообщить программе именно RID, а не имя пользователя (за исключением опции -u).

Пример: перейти в интерактивный режим и сбросить пароль пользователя:

chntpw '-i' 'SAM'
# 1 - Редактировать данные и пароли пользователей
What to do? [1] -> 1 # [Enter]
Please enter user number (RID) or 0 to exit: [1] 03e9 # [Enter]
# 1 - Удалить пароль пользователя
# 2 - Разблокировать пользователя
# 3 - Сделать пользователя администратором
Select: [q] > 1
# Пароль сброшен

Примечание: некоторые пользователи предлагают восстанавливать изменённый SAM файл, чтобы скрыть своё присутствие в системе:

cp -r ~/config /media/win/Windows/System32

Пример: открыть файл реестра, прочитать данные пользователей и хеш суммы их паролей:

chntpw '-e' 'SAM'
cd SAM\Domains\Account\Users\Names
ls # chntpw позволяет использовать стандартные команды 'cd', 'ls' и 'cat'
# Вывод:
> key name
> <User>
> <Администратор>
> <Гость>
> <Пользователь>
cd Пользователь # Перейти в каталог пользователя 'Пользователь'
ls # Вывести RID пользователя
> 2t8 
cd \SAM\Domains\Account\Users\000002T8
cat V # Вывести блок данных, содержащий хеш сумму пароля заданного пользователя
> ...

Примечание: В интерактивном режиме (или при использовании опции -l) chntpw может вывести не все имена пользователей и RID из-за внутренних ошибок самой программы. Тем не менее, как показано в предыдущем примере, с помощью редактора реестра можно получить полный список имён и RID пользователей. Хеш суммы паролей можно извлечь с помощью сторонних утилит, например pwdump.

Ограничения

[править | править код]

Chntpw не поддерживает работу с зашифрованными NTFS разделами, если эти разделы не могут быть полностью прочитаны Linux системой (как, например, LUKS[3]). Имена пользователей, содержащие символы Юникода, официально не поддерживаются, но кириллица (русский алфавит) работает. Chntpw также не поддерживает работу с паролями Active Directory. Несмотря на наличие возможности изменять пароли, рекомендуется сбрасывать пароль, так как на последних версиях Windows функция смены пароля не всегда работает. Также, стандартный образ для загрузки с внешнего накопителя, который можно скачать с официального сайта программы, зачастую не поддерживает многие сторонние драйверы, в том числе и для работы клавиатуры. В таких случаях автор рекомендует использовать полноценную операционную систему[4].

Bootdisk это загрузочный образ, созданный автором chntpw и доступный для скачивания на официальном сайте утилиты. Известно много проблем, связянных с работой с файловой системой NTFS и поддержкой сторонних драйверов[5]. Последняя версия включает в себя:

  • Автоматический поиск разделов Windows на всех дисках
  • Возможность редактирования локальных групп Windows
  • Современные драйверы для файловой системы NTFS

Дистрибутивы с chntpw

[править | править код]

Программа chntpw входит в состав некоторых дистрибутивов Linux, включая следующие:

В связи с десятилетием утилиты автор изменил лицензию с некоммерческой на GNU General Public License (GPL) v2[19].

Аналоги для других операционных систем

[править | править код]

Подавляющее большинство дистрибутивов Linux использует файл /etc/shadow для хранения хеш-сумм паролей пользователей[20][21]. Для смены пароля достаточно изменить содержимое файла, подменив исходную хеш-сумму на желаемую. Тем не менее, зачастую в этом нет необходимости, так как многие дистрибутивы Linux предоставляют опцию загрузки в режиме восстановления системы, где доступна стандартная команда для смены пароля passwd[22].

Mac OS предоставляет возможность смены пароля по учётной записи Apple ID и с помощью загрузки с установочного диска в режиме восстановления системы[23].

Примечания

[править | править код]
  1. 1 2 6 аварийных ситуаций, в которых вам не обойтись без Linux - ITC.ua. ITC.ua. Дата обращения: 29 октября 2015. Архивировано 28 июля 2018 года.
  2. 2.3 Security Identifiers (SIDs). msdn.microsoft.com. Дата обращения: 28 октября 2015. Архивировано 12 сентября 2017 года.
  3. Matei Cezar. LUKS: Linux Hard Disk Data Encryption with NTFS Support in Linux (7 января 2015). Дата обращения: 22 октября 2015. Архивировано 7 марта 2018 года.
  4. Offline Windows pw & reg-editor, FAQ. Дата обращения: 5 сентября 2015. Архивировано 8 октября 2015 года.
  5. Offline Windows pw & reg-editor, bootdisk. pogostick.net. Дата обращения: 24 октября 2015. Архивировано 18 апреля 2018 года.
  6. Kali Linux Has Been Released! www.backtrack-linux.org. Дата обращения: 29 октября 2015. Архивировано 5 ноября 2015 года.
  7. Kali Linux. Официальный сайт. Архивировано из оригинала 21 марта 2013 года.
  8. chntpw | Penetration Testing Tools. tools.kali.org. Дата обращения: 28 октября 2015. Архивировано 20 декабря 2018 года.
  9. Detailed-packages-list - SystemRescueCd. www.sysresccd.org. Дата обращения: 28 октября 2015. Архивировано 3 января 2016 года.
  10. James Stanger. Resetting Passwords with SystemRescueCd. Linux Magazine. Дата обращения: 2 января 2016. Архивировано 2 мая 2018 года.
  11. chntpw | PkgDB. Дата обращения: 24 октября 2015. Архивировано из оригинала 18 ноября 2015 года.
  12. Ubuntu – Подробная информация о пакете chntpw в precise. packages.ubuntu.com. Дата обращения: 24 октября 2015. Архивировано 12 сентября 2017 года.
  13. Lincoln Spector. Gain Administrator Access Without a Password. PCWorld. Дата обращения: 2 января 2016. Архивировано 31 августа 2017 года.
  14. Chris Hoffman. Linux to the rescue! How Ubuntu can help a computer in distress. PCWorld (28 апреля 2014). Дата обращения: 2 января 2016. Архивировано 28 августа 2017 года.
  15. SlackBuilds.org - chntpw. slackbuilds.org. Дата обращения: 30 октября 2015. Архивировано 18 ноября 2015 года.
  16. app-crypt/chntpw – Gentoo Packages. packages.gentoo.org. Дата обращения: 30 октября 2015. Архивировано 12 сентября 2017 года.
  17. chntpw-0.99.6-18.110511.el6.nux.i686.rpm CentOS 6 Download. pkgs.org. Дата обращения: 30 октября 2015. Архивировано из оригинала 18 ноября 2015 года.
  18. Arch Linux - chntpw 140201-1 (x86_64). www.archlinux.org. Дата обращения: 30 октября 2015. Архивировано 12 сентября 2017 года.
  19. The Offline NT Password Editor History. Дата обращения: 22 октября 2015. Архивировано 28 ноября 2010 года.
  20. Chapter 4. Authentication. www.debian.org. Дата обращения: 28 октября 2015. Архивировано 22 декабря 2017 года.
  21. Shadow Passwords. access.redhat.com. Дата обращения: 28 октября 2015. Архивировано из оригинала 22 сентября 2015 года.
  22. 8.7. Recovering a Broken System. www.debian.org. Дата обращения: 28 октября 2015. Архивировано 4 марта 2016 года.
  23. Сброс пароля для входа в систему. support.apple.com. Дата обращения: 28 октября 2015. Архивировано 17 апреля 2018 года.

Литература

[править | править код]
  • Joseph Muniz, Aamir Lakhani. Web Penetration Testing with Kali Linux. — Birmingham: Packt Publishing Ltd., 2013. — ISBN 978-1-78216-316-9.
  • Mark D. Spivey. Practical Hacking Techniques and Countermeasures. — New York: Auerbach Publications, 2006. — С. 325-336. — 752 с. — ISBN 978-0-84937-057-1.