Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#40 Kali Linux для начинающих. Взламываем SSH.
Надеюсь, Вам понравилось взламывать. Мы смогли получить рут-права на атакуемой машине, основываясь только на использование сканера nmap. В этом уроке мы будем разбирать информацию, которая была получена сканером Nessus, чтобы также получить рут-права. Рассмотрим самую первую уязвимость, которая была обнаружена сканером Nessus:
Нас будет интересовать текущая уязвимость, которая называется: «Уязвимость генератора случайных чисел OpenSSH/OpenSSL». Также Nessus обозначает нам, какой протокол и порт подвержен данной уязвимости, а также ip-адрес, и дополнительную справочную информацию:
Дополнительная информация представляет из себя набор ссылок. К примеру, CVE-2008-0166. Перейдя по ссылке, можно более подробным образом познакомиться с данной уязвимостью. В нашем случае нас будет интересовать уязвимость с цифровым обозначением 2008-0166, и если ввести обозначение в поиске, то мы получим подробную информацию о данной уязвимости.
Давайте погуглим информацию об этой уязвимости:
И первая ссылка в поиске ведет нас на ресурс GitHub:
Как видим, существует несколько эксплойтов на разных языках программирования. Выберем эксплойт, который написан на Python, но можно выбрать любой из них. Я выбрал данный эксплойт, не потому что он написан на питоне, а потому, что автор добавил подробную инструкцию по его установке, что сильно упрощает работу:
Видим, что для запуска эксплойта нужны три шага. Сначала нужно скачать архив, с помощью команды «wget». Для этого нужно проскроллить страницу в самый верх и найти вкладку Download. Далее нажать правой кнопкой мыши и выбрать «Copy Link Location»:
Переходим в терминал и вводим команду «wget адрес ссылки на эксплойт»:
Загрузка прошла успешно. Далее нужно запустить наш скрипт:
Скрипт сработал корректно и отлично работает, и у нас в терминале появился вывод того, как нужно использовать данный эксплойт. Далее мне нужно скачать один из двух файлов, которые нас просит загрузить автор эксплойта:
Выбираю второй файл. Перед тем, как скачивать что-либо, я хочу немного рассказать об этой уязвимости, и как она работает. Вы уже видели, как настроить ssh-сервер. Также мы знакомились с подменой дефолтных ключей шифрования на новые, чтобы Вы могли на нем авторизироваться.
Если не углубляться в шифрование, и особенности его работы, можно рассматривать этот ключ как пароль, который позволяет пройти авторизацию. Это не совсем так, но Вы можете рассматривать его именно в этом ключе для упрощения. В более старых версиях Debian был проблемы с генерированием подобных ключей. Помните, когда мы настраивали ssh, то устанавливали новые ключи. Дело в том, что при установке нового образа системы, у нас по-дефолту стоят стандартные ключи, которые легко подробрать. В данной версии Debian, при создании ключей есть баг, который ограничивает максимально возможное количество сгенерированных ключей, т.е. вместо огромного количества ключей этот баг ограничивал количество созданных ключей, а это значит, что кто-то мог написать скрипт и подобрать комбинацию Ваших ключей.
Сейчас мы используем именно этот эксплойт. Файл, который я собираюсь скачать, содержит диапазон всех возможных ключей, и один из них точно подойдет, и мы сможем пройти ssh авторизацию.
Чтобы скачать этот файл, достаточно перейти по ссылке на второй файл, и затем перейти на кнопку Download, правой кнопкой мыши скопировав адрес ссылки:
Переходим в терминал и также скачиваем файл с помощью команды «wget»:
Обратите внимание, что это tar.bz2, который ранее мы уже рассматривали.
Представим ситуацию, что мы не знаем, что такое tar и bz2. Для начала выполним команду «file»:
Выводится сообщение, что это данные bz2. Теперь мы знаем, что файлы с расширением bz2 – это файлы bzip2. Прошу не запутаться в этих параметрах.
Далее можно просмотреть опции bzip2, с помощью команды «—help»:
Как видим опция –d распаковывает этот файл. Запишем команду: «bzip2 –d ebian_ssh_rsa_2048_x86.tar.bz2»:
Выводим содержимое директории Metasploitable2, и теперь у меня есть файл с расширением .tar:
Мы уже рассматривали то, как извлечь информацию из tar файла, но, допустим, мы не знаем, как это делать.
Мы можем указать команду «file» перед файлом:
И мы видим, что это архив tar.
Далее нам нужно выполнить команду: «tar xvf debian_ssh_rsa_2048_x86.tar»:
Все это возможные ключи, которые мы будем использовать на нашей цели, и один из них должен подойти.
У нас появилась новая директория «rsa/». Можно проверить ее содержимое:
Нам нужно запустить наш эксплойт. Сначала нужно прописать исполнение самого эксплойта, затем путь до ключей, после этого указать ip-адрес нашей цели, и указать номер порта. Команда будет выглядеть как: «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», и вставить ее в терминале:
Отлично, я авторизирован как рут-пользователь. Мы нашли еще один способ, как попасть в систему. Для того, чтобы завершить соединение, нужно просто выполнить команду «exit»:
Я хочу скопировать эти ключи, и сохранить в отдельную директорию, потому что помимо подходящих ключей, есть тысячи других, которые мне не нужны. Как мне найти ключи среди тысячи остальных? Все просто, нам нужно воспользоваться техниками, которые мы уже изучили. Нужно скопировать первые несколько символов ключа «57c3115», и создать директорию «keys», в которой и будут располагаться данные ключи:
Для поиска нужных ключей в исходном файле нужно выполнить команду: «ls rsa/2048/ | grep 57c3115»:
Вывод ключей прошел успешно, и мы получили то, что хотели. Теперь мне нужно скопировать выведенные ключи в директорию «keys». Команда будет выглядеть как: «cp rsa/2048/ 57c3115d77c56390332dc5c49978627a-5429* keys/»:
Проверим вывод ключей, с помощью команды: «ls keys/»:
Вывод прошел успешно, и у нас теперь есть актуальные ключи, которыми мы сможем воспользоваться.
Источник
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#38 Kali Linux для начинающих. Взламываем FTP.
Продолжаем рассматривать тематику взлома, и в данном уроке мы попытаемся взломать FTP. Давайте воспользуемся первой уязвимостью, и взломаем нашу первую цель.
Начнем с первого открытого порта, и это 21 порт. Порт tcp, и его использует ftp-сервер, а именно vsFTPd:
Будучи пентестером, Вам необходимо исследовать все открытые порты и сервисы для успешного взлома.
Для начала нам необходимо подключиться к этому порту, и посмотреть, какую информацию я хочу получить.
Перейдем в инструмент Metasploit, и, дополнительно открою еще одну вкладку терминала. Так как это ftp — сервис, то я попробую подключиться к нему с помощью ftp-клиента.
Для этого в терминале я указываю «ftp »:
» srcset=»https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9.png 804w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9-300×238.png 300w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9-768×609.png 768w» sizes=»(max-width: 804px) 100vw, 804px»/>
У меня уже предустановлен ftp-сервис, но у Вас его может и не быть, если это более ранняя версия Kali Linux. Но все решается в одну команду. В терминале нужно набрать «apt-get install ftp».
У меня название и версия ftp – это «vsFTPd 2.3.4». После установки и ввода команды нам нужно авторизироваться, указав имя пользователя, и в некоторых случаях ftp-сервис принимает имя пользователя «anonymous», т.е ftp настроен таким образом, чтобы принимать имя пользователя «anonymous» с любым паролем. Давайте проверим, сработает ли такой вариант:
Отлично. Все сработало корректно, и теперь я авторизирован.
Теперь моя задача состоит в том, чтобы найти какую-либо полезную информацию, файлы или директории на этом ftp-сервере, которые я смогу использовать для получения преимущества
Если ранее Вы не использовали ftp, и какие команды можно использовать, то введите знак вопроса «?», чтобы просмотреть доступные команды:
Обратите внимание, что мы уже видели некоторые из этих команд. К примеру команда «ls» отображает содержимое директорий:
Похоже, что здесь ничего нет. Мне немного не повезло, и я ничего полезного для себя не нашел. Чтобы завершить соединение с ftp-сервером нужно выполнить команду «bye» или «exit»:
Теперь перейдем в Zenmap. Я получил большое количество информации относительно ftp-сервера, то я могу выявить его недостатки. Нам нужно скопировать версию сервиса, для того, чтобы узнать его уязвимости:
Переходим в браузер и пытаемся найти эксплойт для взлома ftp-сервера:
Похоже нам повезло, и мы сможем найти эксплойт для проникновения в систему. Более актуальная информация по текущему эксплойту будет находиться на официальном сайте разработчиков Metasploit. Это сайт Rapid7:
Нам очень повезло, и мы нашли уязвимость, которая позволяет попасть в систему, после исследования самого первого сервиса. Проскроллив страницу вниз, мы находим пример с данным эксплойтом:
Переходим в metasploit и ищем наш эксплойт:
Обратите внимание, что команда «info» отображает больше информации о модуле:
С помощью команды «info», мы точно определяем, нужный ли данный модуль мне или нет. После сверки информации, я вижу корректное отображение параметров.
Далее нужно ввести команду «show options», чтобы откорректировать параметры для запуска эксплойта:
Теперь мне нужно указать ip-адрес нашей цели. У меня это – «192.168.119.130». Команда будет выглядеть как «set rhosts 192.168.119.130»:
Также в metasploit можно проверить вероятность работы некоторых эксплойтов с помощью команды «check», и нам не обязательно запускать эксплойт, рискуя сломать сервис или рискуя тем, что эксплойт не сработает.
Давайте проверим, есть ли она здесь:
Видим, что данный модуль не поддерживается. Мне ничего не остается, кроме того, что запустить эксплойт. Запустить его можно двумя способами: либо написать «run», или «exploit»:
Эксплойт успешно работает, и мы установили одну сессию с машины жертвы. У нас есть сейчас шелл жертвы. Выполним команду «id», и мы авторизованы как рут-пользователь:
Можно еще раз проверить наши права, с помощью команды «whoami»:
Мы, опять же, находимся под рут-пользователем.
Можно также проверить, в какой директории мы находимся, с помощью команды «pwd»:
Для того, чтобы завершить работу, нужно выполнить команду «exit»:
Нам повезло, и мы взломали самый первый сервис.
Давайте рассмотрим ситуацию, приближенную к реальности, и у нас нет рут-прав. Крайне редко мы можем получить рут-права при первой же атаке на ip-адрес. Это реалии, и это практически невозможно. Чтобы добавить реализма, давайте представим, что у данного сервиса нет уязвимостей. Нам нужно исследовать другие сервисы, и постараться их взломать.
Источник