У меня есть машина Ubuntu 12.04 VirtualBox, на которой несколько дней назад я сменил пароль. Теперь, когда я снова воспользовался машиной, я забыл пароль и не могу получить доступ root.
Я пытался получить хэши из файла shadow для использования с john, но я не могу читать без доступа root, даже пытался получить сеанс с Metasploit, но не могу найти никакой опции для получения хэшей Linux, и я также не могу получить привилегии root с Metasploit, и также не могу получить доступ к диску в автономном режиме как к его образу VDI.
Также пытался, но не смог загрузить john в Ubuntu, так как не могу использовать ни то, apt-get
ни другое, машина содержит некоторые важные данные.
Так есть ли способ в Metasploit получить root или какой-то инструмент (вроде samdump2 для Windows) для загрузки через браузер и вручную получить хэши из работающей системы или, может быть, какой-то эксплойт?
решение1
Сначала развеем распространенное заблуждение: пока у вас есть физический доступ к (реальной или виртуальной) машине, нет способа (кроме шифрования) помешать вам получить доступ к вашим данным.
Теперь о процедурах (более подробную информацию см.Как сбросить утерянный административный пароль? на AskUbuntu.com)
используя восстановление
- Когда ваша виртуальная машина загрузится, нажмите Left shiftсразу после экрана загрузки, чтобы получить доступ кменю grub, выбиратьРасширенные опции..., и там выберите любую строку, содержащуюрежим восстановления.
- Через некоторое время вам будет представлено другое меню, в котором вы с помощью клавиш со стрелками выбираете строкукорень, нажимать enter.
сделать смонтированный
/
разделчитай пиши(вместотолько для чтения)mount -rw -o remount /
теперь вы готовы изменить пароль вашего «потерянного» пользователя.
passwd
youruser
вам будет предложено ввести новый пароль (никакого ответа вы не получите, похоже, что ваши нажатия клавиш не распознаются), после подтверждения нового пароля вы можете перезагрузить устройство и оно готово к полету.
Если описанная выше процедура не дала результата (по какой-либо причине), вы можете воспользоваться маршрутом №2:
использование live CD (образа) - "способ chroot"
- вставьте ISO-образ для Live CD в виртуальный CD-привод, загрузитесь с него, выберитеПопробуйте Убунтуиз меню, дождитесь готовности рабочего стола
- открыть окно терминала
- CTRL+ ALT+ Tна реальной машине или виртуальной машине Virtualbox
- CTRL+ ALT+ space, Tв виртуальной машине VMWare
- используйте
sudo fdisk -l
для просмотра всех доступных разделов, решите, какой из них содержит вашу/
систему (вероятно, что-то вродеdev/sda1
) смонтируйте этот раздел в какой-нибудь доступный путь (обычно
/mnt
)sudo mount /dev/sda1 /mnt
нам нужен доступ к нескольким путям
for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done
Теперь активируйте новую среду — теперь вы сможете работать с правами root в исходной системе.
sudo chroot /mnt
теперь вы готовы изменить пароль вашего «потерянного» пользователя.
passwd
youruser
с использованиемгостевые файлы(если хост — Linux или OSX)
Установите
libguestfs-tools
пакет, или как там его называет ваш дистрибутив (тот, что на хосте). Если в вашем дистрибутиве нет этого пакета,скачать его с апстрима.Смонтируйте корневую файловую систему виртуальной машины на хосте. Адаптируйте пути по мере необходимости для вашей установки.
mkdir ~/mnt guestmount -a /path/to/vm-image.vdi -m /dev/sda1 ~/mnt
Поскольку вы используете VirtualBox, вам может потребоватьсябеги
export LIBGUESTFS_BACKEND_SETTINGS=force_tcg
первым.Сгенерировать новый хеш паролядля пароля по вашему выбору.
mkpasswd -m sha-512
Отредактируйте
~/mnt/etc/shadow
, чтобы изменить хэш пароля для пользователя root на тот, который был сгенерированmkpasswd
.Размонтируйте файловую систему виртуальной машины. Теперь вы можете загрузить виртуальную машину и войти в нее как root с новым паролем.
fusermount -u ~/mnt rmdir ~/mnt
решение2
Вы можете создать новую виртуальную машину в Virtual Box и добавить второй жесткий диск, который будет жестким диском (файл vmdk) вашего сервера Ubuntu.
Вы загружаетесь на этой виртуальной машине и получаете доступ к /etc/shadow вашего сервера.