Об авторе
Автор этой статьи — пентестер из команды FBK CyberSecurity. Это часть крупнейшей российской аудиторско-консалтинговой группы ФБК (Финансовые и бухгалтерские консультанты). Компания специализируется на услугах в области практической информационной безопасности.
Автор задачки — whitecr0wz, а опубликована она была 7 июля 2020 года. Машина предназначена для начинающих, поэтому и прохождение будет недлинным. Зато по пути я постараюсь разъяснить все шаги и рассказать об используемых утилитах. Мы проэксплуатируем известную уязвимость, чтобы повысить привилегии и прочитать файл в каталоге root.
![Загруженная виртуальная машина](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13869/image1.jpg)
Не буду описывать подключение и запуск виртуальной машины, это уже делали мои коллеги в статье «Захват Ваканды. Ломаем виртуальную машину с VulnHub». Начнем с разведки, а точнее — с запуска утилиты netdiscover.
Netdiscover — простой инструмент обнаружения (ARP-сканер), который удобно использовать для поиска «живых» хостов в сети без конфигурации IP-адреса сетевого интерфейса.
![](/wp-content/themes/engine/img/info-icon.jpg)
INFO
ARP (Address Resolution Protocol — протокол определения адреса) предназначен для определения MAC-адреса устройства по его IP-адресу.
По умолчанию утилиту можно запустить без параметров и получить результат в виде списка устройств. Однако для более тонкой настройки рекомендую ознакомиться с разными опциями, которые можно указать при запуске.
Целевая машина decoy находится с нами в одной подсети, поэтому просто пишем netdiscover
.
![Обнаруженные сетевые адреса](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13870/image2.jpg)
Теперь мы знаем целевой IP-адрес — это 192.168.1.123. Следующим шагом сканируем хост и ищем открытые порты и запущенные сервисы. Просканируем порты популярной утилитой Nmap.
nmap -sV -sC -O -p - 192.168.1.123
Вот что значат наши ключи:
-sV
— вывести версии обнаруженных служб;-sC
— использовать базовый набор скриптов для получения расширенной информации;-O
— определить версию ОС;-p
— сканировать весь диапазон портов от 0 до 65 535.
![Результат сканирования всех портов утилитой Nmap](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13871/image3.jpg)
После полного сканирования хоста мы получим два открытых порта:
- 22 — OpenSSH Server 7.9p1;
- 80 — Apache httpd 2.4.38.
Начнем изучать целевую машину с веб-службы Apache. Индексная страница на 80-м порте выдает нам индекс каталога.
![Содержимое индексной страницы веб-сайта](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13872/image4.jpg)
Скачиваем единственный файл save.zip и пытаемся распаковать его. В результате узнаем, что он защищен паролем.
![Содержимое архива save.zip](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13873/image5.jpg)
Чтобы получить доступ к содержимому, нужно подобрать пароль. Для этого нам нужна хеш-сигнатура файла. На помощь приходит вспомогательная утилита zip2john из состава пакета John the Ripper.
![Выполнение утилиты zip2john](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13874/image6.jpg)
К сожалению, программа выдает хеш, совместимый только с «Джоном» (формат PKZIP), использовать его в моем любимом hashcat не удастся — он любит формат WinZIP.
![](/wp-content/themes/engine/img/info-icon.jpg)
INFO
- John the Ripper — легендарная свободная программа, предназначенная для восстановления паролей по их хешам.
- Hashcat — это, по словам создателей, самый быстрый в мире инструмент для восстановления паролей.
Кто-то предпочтет другие утилиты, но, по моему опыту, на реальных проектах с длинными паролями hashcat выручает чаще. В данном же случае взлом пароля не вызовет трудностей, поскольку он тривиален и с легкостью поддается перебору по универсальному словарю rockyou (он входит в любой современный наступательный дистрибутив Linux вроде Kali и Parrot).
![Успешный подбор пароля по словарю](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13875/image7.jpg)
Если же рассуждать о буднях пентестера в реальных условиях, то рекомендую обратить внимание на более увесистые словари. Например, в crackstation.txt.gz содержится 15 Гбайт реальных утечек, а в hashkiller-dict.7z еще 1,5 Гбайт.
Теперь можем распаковать архив и ознакомиться с его содержимым.
![Успешная распаковка архива при помощи пароля](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13876/image8.jpg)
Содержимое распакованной папки etc не представляет особого интереса, кроме файла shadow. В нем содержатся наименования учетных записей системы и хеши паролей. Попробуем подобрать пароль для какого-либо пользователя и подключиться к ранее обнаруженному порту 22 по SSH.
Выведем командой cat содержимое файла shadow и отфильтруем при помощи grep пользователей для перебора.
Если написать grep -v "*"
, то увидим все строки, в которых нет звездочек, то есть пользовательские, а не служебные учетные записи.
![Выводим хеши паролей пользователей](https://static.xakep.ru/images/a980f15d733b23e6e8e633e4a7b64d44/13877/image9.jpg)
Учетная запись systemd-coredump к делу тоже не относится, поэтому остаются только пользователи root и некто с длинным буквенно-цифровым логином.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»