Вопрос или проблема
Конфигурация:
- AWS Lightsail (WordPress)
Проблема:
- Я потерял пару ключей SSH для экземпляра
Принятые меры:
- Я создал снимок экземпляра
- Я создал новый экземпляр из снимка
- Отсоединил статический IP от старого экземпляра и присоединил его к новому экземпляру
Проблема:
- Я не могу войти с учетными данными от старого экземпляра
- Он не распознает имя пользователя/пароль, которые я создавал в старом экземпляре
Вопросы:
- Являются ли предпринятые шаги подходящим способом переназначения пары ключей экземпляру?
- Когда экземпляр создается из снимка, означает ли это, что он является точной копией старого, даже с теми же учетными данными для входа?
- Как я могу восстановить имя пользователя/пароль, которые я создавал в старом экземпляре?
- Как я могу назначить новые учетные данные новому экземпляру, если старые нельзя восстановить?
Я не знаком с Lightsail, но стандартный способ восстановления доступа к экземплярам EC2 — это создать новый экземпляр, отсоединить корневой диск от старого и присоединить его как дополнительный диск к новому, заменить SSH-ключ в файле authorized_keys и снова присоединить его к старому. Обычно это работает.
Для тех, кто оказался в моей ситуации и ищет ответ:
Шаги для восстановления учетных данных для входа:
- Войдите в консоль SSH. Если вы забыли пароль, его можно восстановить с помощью
cat bitnami_application_password
- Восстановите Admin-ID с помощью следующей команды
mysql -u root -p bitnami_wordpress -e "SELECT * FROM wp_users;"
Примечание: Admin-ID — это число, а не имя пользователя. Запомните это число и адрес электронной почты, использованный с этим ID. - Используйте
mysql -u root -p bitnami_wordpress -e "UPDATE wp_users SET user_pass=MD5('NEWPASSWORD') WHERE ID='ADMIN-ID';"
ЗаменитеNEWPASSWORD
иADMIN-ID
на ваш новый пароль и Admin-ID, который вы записали ранее. - Войдите в wp-admin с новым паролем и адресом электронной почты
Дополнительная информация: https://docs.bitnami.com/installer/apps/wordpress/administration/reset-wp-admin-password/
Я смог успешно восстановить свой экземпляр Windows Server 2016, для которого я потерял пароль в Lightsail, не переходя на EC2, восстановив хэш NTLM и используя атаку с передачей хэша.
-
Запустите экземпляр
Если не запущен, запустите экземпляр, пароль к которому вы потеряли, или создайте экземпляр из снимка. Вам не нужен пароль, но экземпляр должен быть запущен и готов принимать соединения RDP (протокол удаленного рабочего стола). -
Откройте порт 445 (SMB)
В настройках сети Lightsail откройте порт TCP 445.
Это необходимо для последующего удаленного административного доступа. -
Создайте снимок диска с корневого диска
Используйте AWS CLI для создания снимка диска:
aws lightsail create-disk-snapshot --instance-name <INSTANCE_NAME> --disk-snapshot-name recovery-snapshot
Это можно сделать только через CLI, а не через веб-интерфейс. -
Запустите новый экземпляр восстановления на базе Ubuntu
Создайте новый экземпляр Ubuntu, используя интерфейс Lightsail.
Он будет использоваться для монтирования и чтения диска Windows. -
Создайте и подключите диск
В консоли Lightsail создайте новый диск из снимка восстановления, который мы создали ранее.
Подключите этот диск к экземпляру восстановления Ubuntu. -
Смонтируйте диск в Ubuntu
Подключитесь по SSH к экземпляру Ubuntu и смонтируйте диск Windows:
sudo mkdir /mnt/recovery
sudo mount /dev/nvme1n1p1 /mnt/recovery
-
Установите инструменты Impacket
Установите Impacket с помощьюpipx
:
sudo apt-get install pipx
python3 -m pipx install impacket
export PATH="$PATH:/home/ubuntu/.local/bin"
-
Извлеките хэш NTLM администратора
Используйтеsecretsdump.py
из Impacket, чтобы извлечь хэш NTLM:
secretsdump.py -sam /mnt/recovery/Windows/System32/config/SAM -system /mnt/recovery/Windows/System32/config/SYSTEM LOCAL
Скопируйте хэш NTLM для учетной записиАдминистратора
. -
Сбросьте пароль администратора
Используйтеchangepasswd.py
, чтобы сбросить пароль с использованием хэша NTLM:
changepasswd.py -hashes :<NTLM_HASH> Administrator@<INSTANCE_IP>
Введите новый пароль, когда будет предложено. -
Вход через RDP
Используйте RDP для соединения с экземпляром Windows с новым паролем:
mstsc /v:<INSTANCE_IP>
-
Очистка
- Удалите экземпляр восстановления Ubuntu.
- Удалите присоединенный диск восстановления.
- Удалите снимок диска, чтобы освободить место на хранилище.
- Удалите правило брандмауэра, открывающее порт 445.
Аналогичный подход можно использовать для машин на Linux. Просто смонтируйте диск и войдите в chroot, вызовите chpasswd, а затем скопируйте все с второго диска на корневой диск. Если вас просто интересует восстановление данных, вы можете запустить второй экземпляр Windows, присоединить диск и скопировать все необходимые данные.
.
Ответ или решение
Конфигурация и контекст проблемы требуют внимательного подхода, особенно когда дело касается восстановления доступа к экземплярам AWS, которые были созданы из снимков. Рассмотрим вопросы и шаги, которые могут помочь в данной ситуации, используя подход TEA (Теория, Пример, Применение).
Теория
Перемещение данных и копий экземпляров в AWS, включая Lightsail, требует ясного понимания управления ключами SSH и учетными записями пользователей. Когда создается снимок экземпляра, он фиксирует состояние системы на момент создания, включая файлы и конфигурацию, но ключи SSH и учетные данные, такие как пароль, не всегда сохраняются или могут быть заменены при определённых условиях.
Пример
В случае создания нового экземпляра из снимка, вы можете обнаружить, что предыдущие учетные данные не работают. Это может произойти по ряду причин, таких как проблема с конфигурацией сети, измененные пользовательские пароли или потеря файла с ключами SSH. В вашем случае, вероятно, потребуется предпринять шаги, чтобы заново настроить доступ к новому экземпляру.
Применение
Рассмотрим ответы на вопросы и возможные действия для вашей ситуации.
-
Правильность шагов для изменения пары ключей
Простое создание нового экземпляра из снимка и переброска статического IP-адреса не гарантирует восстановление доступа, если вы потеряли SSH-ключи. Пара SSH-ключей необходима для доступа к экземпляру, и если они потеряны, то их нужно восстанавливать через другие методы.
-
Эквивалентность экземпляра из снимка
Когда вы создаете экземпляр из снимка, он в большинстве случаев будет идентичен старому с точки зрения данных и настроек. Однако при использовании Images в AWS некоторых конфигураций безопасности, таких как SSH ключи, может не быть. Из-за этого желательно проверить конфигурацию после развёртывания нового экземпляра.
-
Восстановление имени пользователя и пароля
В случае Lightsail (WordPress на Bitnami) учетные данные можно восстановить через командную строку, если у вас есть доступ. Например, войдя в систему через консоль SSH, можно использовать команду
cat bitnami_application_password
для сброса пароля. Если у вас есть доступ к базе данных, используйте SQL-запросы для извлечения и сброса паролей. -
Присвоение новых учётных данных
Если восстановить старые учётные данные не удаётся, можно создавать новые. Например, через тот же SQL метода, используемого для сброса паролей WordPress, можно создать новый Admin-ID или обновить существующих пользователей. В случае более сложных конфигураций, возможно, стоит рассмотреть возможность использования методов кросс-платформенной замены ключей SSH.
Заключение
Нахождение затруднительной ситуации при восстановлении доступа к сервисам AWS может стать серьёзной проблемой, особенно если вы потеряли доступ к критическим данным. Применение описанных методик поможет достичь восстановления работоспособности сервисов и предоставят возможность управлять вашей инфраструктурой более уверенно. Использование импака сотрудников, таких как создание резервного экземпляра, также может оказаться полезным, особенно при сложных конфигурациях или интеграциях.
Независимо от метода восстановления, всегда рекомендовано поддерживать актуальные бэкапы данных и конфигураций для минимизации потенциальных проблем в будущем.