Kali Linux

#40 Kali Linux для начинающих. Взламываем SSH.

Надеюсь, Вам понравилось взламывать. Мы смогли получить рут-права на атакуемой машине, основываясь только на использование сканера nmap. В этом уроке мы будем разбирать информацию, которая была получена сканером Nessus, чтобы также получить рут-права. Рассмотрим самую первую уязвимость, которая была обнаружена сканером Nessus:

уязвимость, обнаруженная сканером nessus

Нас будет интересовать текущая уязвимость, которая называется: «Уязвимость генератора случайных чисел OpenSSH/OpenSSL». Также Nessus обозначает нам, какой протокол и порт подвержен данной уязвимости, а также ip-адрес, и дополнительную справочную информацию:

Уязвимость генератора случайных чисел OpenSSH/OpenSSL

Дополнительная информация представляет из себя набор ссылок. К примеру, CVE-2008-0166. Перейдя по ссылке, можно более подробным образом познакомиться с данной уязвимостью. В нашем случае нас будет интересовать уязвимость с цифровым обозначением 2008-0166, и если ввести обозначение в поиске, то мы получим подробную информацию о данной уязвимости.

Давайте погуглим информацию об этой уязвимости:

CVE-2008-0166

И первая ссылка в поиске ведет нас на ресурс GitHub:

GitHub

Как видим, существует несколько эксплойтов на разных языках программирования. Выберем эксплойт, который написан на Python, но можно выбрать любой из них. Я выбрал данный эксплойт, не потому что он написан на питоне, а потому, что автор добавил подробную инструкцию по его установке, что сильно упрощает работу:

www.exploit-db.com

Видим, что для запуска эксплойта нужны три шага. Сначала нужно скачать архив, с помощью команды «wget». Для этого нужно проскроллить страницу в самый верх и найти вкладку Download. Далее нажать правой кнопкой мыши и выбрать «Copy Link Location»:

copy link location

Переходим в терминал и вводим команду «wget адрес ссылки на эксплойт»:

wget адрес ссылки на эксплойт
wget download 5720

Загрузка прошла успешно. Далее нужно запустить наш скрипт:

запуск скрипта python 5720

Скрипт сработал корректно и отлично работает, и у нас в терминале появился вывод того, как нужно использовать данный эксплойт. Далее мне нужно скачать один из двух файлов, которые нас просит загрузить автор эксплойта:

скачивание одного из двух файлов

Выбираю второй файл. Перед тем, как скачивать что-либо, я хочу немного рассказать об этой уязвимости, и как она работает. Вы уже видели, как настроить ssh-сервер. Также мы знакомились с подменой дефолтных ключей шифрования на новые, чтобы Вы могли на нем авторизироваться.

Если не углубляться в шифрование, и особенности его работы, можно рассматривать этот ключ как пароль, который позволяет пройти авторизацию. Это не совсем так, но Вы можете рассматривать его именно в этом ключе для упрощения. В более старых версиях Debian был проблемы с генерированием подобных ключей. Помните, когда мы настраивали ssh, то устанавливали новые ключи. Дело в том, что при установке нового образа системы, у нас по-дефолту стоят стандартные ключи, которые легко подробрать. В данной версии Debian, при создании ключей есть баг, который ограничивает максимально возможное количество сгенерированных ключей, т.е. вместо огромного количества ключей этот баг ограничивал количество созданных ключей, а это значит, что кто-то мог написать скрипт и подобрать комбинацию Ваших ключей.

Сейчас мы используем именно этот эксплойт. Файл, который я собираюсь скачать, содержит диапазон всех возможных ключей, и один из них точно подойдет, и мы сможем пройти ssh авторизацию.

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

скачивание файла по ссылке

Переходим в терминал и также скачиваем файл с помощью команды «wget»:

скачивание файла с помощью wget

Обратите внимание, что это tar.bz2, который ранее мы уже рассматривали.

Представим ситуацию, что мы не знаем, что такое tar и bz2. Для начала выполним команду «file»:

commands file

Выводится сообщение, что это данные bz2. Теперь мы знаем, что файлы с расширением bz2 – это файлы bzip2. Прошу не запутаться в этих параметрах.

Далее можно просмотреть опции bzip2, с помощью команды «—help»:

bzip2 --help

Как видим опция –d распаковывает этот файл. Запишем команду: «bzip2 –d ebian_ssh_rsa_2048_x86.tar.bz2»:

bzip2 –d ebian_ssh_rsa_2048_x86.tar.bz2

Выводим содержимое директории Metasploitable2, и теперь у меня есть файл с расширением .tar:

файл с расширением .tar

Мы уже рассматривали то, как извлечь информацию из tar файла, но, допустим, мы не знаем, как это делать.

Мы можем указать команду «file» перед файлом:

команда file перед файлом

И мы видим, что это архив tar.

Далее нам нужно выполнить команду: «tar xvf debian_ssh_rsa_2048_x86.tar»:

tar xvf debian_ssh_rsa_2048_x86.tar

Все это возможные ключи, которые мы будем использовать на нашей цели, и один из них должен подойти.

У нас появилась новая директория «rsa/». Можно проверить ее содержимое:

новая директория rsa/

Нам нужно запустить наш эксплойт. Сначала нужно прописать исполнение самого эксплойта, затем путь до ключей, после этого указать ip-адрес нашей цели, и указать номер порта. Команда будет выглядеть как: «python 5720 rsa/2048 192.168.119.130 root 22 10»:

python 5720 rsa/2048 192.168.119.130 root 22 10

Обратите внимание на номер порта, который я указал, а именно 22. Имейте ввиду, что разные сервера ftp могут быть запущены на разных портах. В большинстве случаев это будет именно так, и если, на атакуемой машине есть другой ssh-сервер, который использует другой порт, то нужно указывать его.

Итак, подбор ключей завершился успешно, и автор эксплойта добавил фичу в свой скрипт, а именно, можно выполнять готовую команду для взлома сервера по ssh:

успешное завершение подбора ключей

Нужно скопировать команду: «ssh -lroot -p22 -i rsa/2048/57c3115d77c56390332dc5c49978627a-5429 192.168.119.130», и вставить ее в терминале:

ssh -lroot -p22 -i rsa/2048/57c3115d77c56390332dc5c49978627a-5429 192.168.119.130

Отлично, я авторизирован как рут-пользователь. Мы нашли еще один способ, как попасть в систему. Для того, чтобы завершить соединение, нужно просто выполнить команду «exit»:

завершение соединения

Я хочу скопировать эти ключи, и сохранить в отдельную директорию, потому что помимо подходящих ключей, есть тысячи других, которые мне не нужны. Как мне найти ключи среди тысячи остальных? Все просто, нам нужно воспользоваться техниками, которые мы уже изучили. Нужно скопировать первые несколько символов ключа «57c3115», и создать директорию «keys», в которой и будут располагаться данные ключи:

mkdir keys/

Для поиска нужных ключей в исходном файле нужно выполнить команду: «ls rsa/2048/ | grep 57c3115»:

ls rsa/2048/ | grep 57c3115

Вывод ключей прошел успешно, и мы получили то, что хотели. Теперь мне нужно скопировать выведенные ключи в директорию «keys». Команда будет выглядеть как: «cp rsa/2048/ 57c3115d77c56390332dc5c49978627a-5429* keys/»:

cp rsa/2048/ 57c3115d77c56390332dc5c49978627a-5429* keys/

Проверим вывод ключей, с помощью команды: «ls keys/»:

ls keys/

Вывод прошел успешно, и у нас теперь есть актуальные ключи, которыми мы сможем воспользоваться.

#1 Kali Linux для начинающих. Урок 1 — Основы сетей.

#2 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 1

#3 Kali Linux для начинающих. Урок 2 — Горячие клавиши. Часть 2

#4 Kali Linux для начинающих. Терминал Kali Linux. Часть 1

#5 Kali Linux для начинающих. Терминал Kali Linux. Часть 2

#6 Kali Linux для начинающих. Урок 4 — Root Kali Linux. Часть 1

#7 Kali Linux для начинающих. Root Kali Linux — Часть 2

#8 Kali Linux для начинающих. Основные команды. Часть 1.

#9 Kali Linux для начинающих. Основные команды. Перемещение по директориям. Часть 2.

#10 Kali Linux для начинающих. Основные команды. Создание директорий. Часть 3

#11 Kali Linux для начинающих. Основные команды. Часть 4 — Просмотр содержимого директорий.

#12 Kali Linux для начинающих. Основные команды. Часть 5 — Просмотр содержимого файлов.

#13 Kali Linux для начинающих. Основные команды. Часть 6 — Копируем файлы и директории.

#14 Kali Linux для начинающих. Основные команды. Часть 7 — Перемещаем файлы и директории.

#15 Kali Linux для начинающих. Основные команды. Часть 8 — Удаляем файлы и директории.

#16 Kali Linux для начинающих. Управление пакетами.

#17 Kali Linux для начинающих. Откуда Kali скачивает софт.

#18 Kali Linux для начинающих. Изменения в Kali 2019 относительно APT.

#19 Kali Linux для начинающих. Архивация и сжатие. Часть 1.

#20 Kali Linux для начинающих. Архивация и сжатие. Часть 2.

#21 Kali Linux для начинающих. Архивация и сжатие. Часть 3.

#22 Kali Linux для начинающих. Специальные символы. Часть 1.

#23 Kali Linux для начинающих. Специальные символы. Часть 2

#24 Kali Linux для начинающих. Основы сетей.

#25 Kali Linux для начинающих. Администрирование. Редактирование файлов с помощью Nano.

#26 Kali Linux для начинающих. Превращаем Kali Linux в веб-сервер.

#27 Kali Linux для начинающих. Изменения в файлах конфигурации Kali Linux.

#28 Kali Linux для начинающих. Превращаем Kali Linux в SSH-сервер.

#29 Kali Linux для начинающих. Управление пользователями и группами.

#30 Kali Linux для начинающих. Работаем с правами пользователей.

#31 Kali Linux для начинающих. Разбираемся с процессами.

#32 Kali Linux для начинающих. Управляем процессами.

#33 Kali Linux для начинающих. Перенаправление и контроль вывода.

#34 Kali Linux для начинающих. Объединяем несколько команд в цепочку.

#35 Kali Linux для начинающих. Настраиваем цель.

#36 Kali Linux для начинающих. Сканируем порты с помощью Kali Linux.

#37 Kali Linux для начинающих. Сканируем порты с помощью графического интерфейса.

#38 Kali Linux для начинающих. Взламываем FTP.

#39 Kali Linux для начинающих. Сканируем уязвимости.