В этой статье я расскажу, как решать CTF-задачку Sunset: decoy, которую ты можешь скачать с VulnHub. Повторив прохождение этой виртуалки вместе со мной, ты потренируешься подбирать пароли по хешам, мониторить процессы Linux без прав root, эксплуатировать уязвимости и передавать файлы через бэк-шелл.
Автор этой статьи - пентестер из команды FBK CyberSecurity. Это часть крупнейшей российской аудиторско-консалтинговой группы ФБК (Финансовые и бухгалтерские консультанты). Компания специализируется на услугах в области практической информационной безопасности.
Автор задачки — whitecr0wz, а опубликована она была 7 июля 2020 года. Машина предназначена для начинающих, поэтому и прохождение будет недлинным. Зато по пути я постараюсь разъяснить все шаги и рассказать об используемых утилитах. Мы проэксплуатируем известную уязвимость, чтобы повысить привилегии и прочитать файл в каталоге root.
Не буду описывать подключение и запуск виртуальной машины, это уже делали мои коллеги в статье «Захват Ваканды. Ломаем виртуальную машину с VulnHub». Начнем с разведки, а точнее — с запуска утилиты netdiscover.
Netdiscover — простой инструмент обнаружения (ARP-сканер), который удобно использовать для поиска «живых» хостов в сети без конфигурации IP-адреса сетевого интерфейса.
ARP (Address Resolution Protocol — протокол определения адреса) предназначен для определения MAC-адреса устройства по его IP-адресу.
По умолчанию утилиту можно запустить без параметров и получить результат в виде списка устройств. Однако для более тонкой настройки рекомендую ознакомиться с разными опциями, которые можно указать при запуске.
Целевая машина decoy находится с нами в одной подсети, поэтому просто пишем netdiscover
.
Теперь мы знаем целевой IP-адрес — это 192.168.1.123. Следующим шагом сканируем хост и ищем открытые порты и запущенные сервисы. Просканируем порты популярной утилитой Nmap.
nmap -sV -sC -O -p - 192.168.1.123
Вот что значат наши ключи:
-sV
— вывести версии обнаруженных служб;-sC
— использовать базовый набор скриптов для получения расширенной информации;-O
— определить версию ОС;-p
— сканировать весь диапазон портов от 0 до 65 535.После полного сканирования хоста мы получим два открытых порта:
Начнем изучать целевую машину с веб-службы Apache. Заглавная страница на 80-м порте выдает нам индекс каталога.
Скачиваем единственный файл save.zip и пытаемся распаковать его. В результате узнаем, что он защищен паролем.
Чтобы получить доступ к содержимому, нужно подобрать пароль. Для этого нам нужна хеш-сигнатура файла. На помощь приходит вспомогательная утилита zip2john из состава пакета John the Ripper.
К сожалению, программа выдает хеш, совместимый только с «Джоном» (формат PKZIP), использовать его в моем любимом hashcat не удастся — он любит формат WinZIP.
Кто-то предпочтет другие утилиты, но, по моему опыту, на реальных проектах с длинными паролями hashcat выручает чаще. В данном же случае взлом пароля не вызовет трудностей, поскольку он тривиален и с легкостью поддается перебору по универсальному словарю rockyou (он входит в любой современный наступательный дистрибутив Linux вроде Kali и Parrot).
Если же рассуждать о буднях пентестера в реальных условиях, то рекомендую обратить внимание на более увесистые словари. Например, в crackstation.txt.gz содержится 15 Гбайт реальных утечек, а в hashkiller-dict.7z еще 1,5 Гбайт.
Теперь можем распаковать архив и ознакомиться с его содержимым.
Содержимое распакованной папки etc не представляет особого интереса, кроме файла shadow. В нем содержится наименование учетных записей системы и хеши паролей. Попробуем подобрать пароль для какого-либо пользователя и подключиться к ранее обнаруженному порту 22 по SSH.
Выведем командой cat содержимое файла shadow и отфильтруем при помощи grep пользователей для перебора.
Если написать grep -v "*"
, то увидим все строки, в которых нет звездочек, то есть пользовательские, а не служебные учетные записи.
Учетная запись systemd-coredump к делу тоже не относится, поэтому остаются только пользователи root и некто с длинным буквенно-цифровым логином.
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
1 год7690 р. |
1 месяц720 р. |
Я уже участник «Xakep.ru»
Читайте также
Последние новости