Бэкдор pam_unix и прохождение Compromised

Бэкдор pam_unix и прохождение Compromised

Черный ход, секретный вход (от англ. Back door — буквально «черный ход») — это недоработка алгоритма, намеренно встроенная разработчиком и позволяющая неавторизованный доступ к данным или управлению на расстоянии операционной системой и компьютером в целом.
Основная цель бэкдора — тайный и быстрый доступ к данным, в большинстве случаев — зашифрованным и защищенным данным. Например, бэкдор может быть интегрирован в алгоритм шифрования для последующего прослушивания защищенного канала злоумышленником.

Recon

Данная машина имеет IP адрес 10.10.10.204, который я добавляю в /etc/hosts.

10.10.10.207				compromised.htb

Первым делом сканируем открытые порты. Я это делаю с помощью следующего скрипта, принимающего один аргумент — адрес сканируемого хоста:

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Бэкдор pam_unix и прохождение Compromised

Давайте посмотрим сайт.

Бэкдор pam_unix и прохождение Compromised

Находим только CMS — LiteCart. Давайте просканируем директории, и я делаю это с помощью gobuster.

gobuster dir -t 128 -u http://compromised.htb/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x html,php
Бэкдор pam_unix и прохождение Compromised

И находим интересную директорию backup, а в ней архив.

Бэкдор pam_unix и прохождение Compromised

Данный архив содержит исходные коды сайта.

Бэкдор pam_unix и прохождение Compromised

Среди данных файлов мы и находим упоминание скрытого на сервере файла.

Бэкдор pam_unix и прохождение Compromised

 Файл содержит учетные данные админа.

Бэкдор pam_unix и прохождение Compromised

 Авторизуемся.

Бэкдор pam_unix и прохождение Compromised

 Entry Point

После изучения данной CMS, находим RCE эксплоит.

Бэкдор pam_unix и прохождение Compromised

 Но вот только он не отрабатывает как нужно.

Бэкдор pam_unix и прохождение Compromised

Посмотрим код эксплоита. Используется функция system, которая, возможно, блокируется.

Бэкдор pam_unix и прохождение Compromised

Давайте изменим нагрузку и вызовем phpinfo, чтобы посмотреть заблокированные функции.

Бэкдор pam_unix и прохождение Compromised
Бэкдор pam_unix и прохождение Compromised

И видим большой список таких функций. Для обхода данных блокировок можем использовать этот код. Данный PHP код мы чуть изменим, чтобы сразу выполнять запрошенные команды.

Entry Point

И изменим код эксплоита так, чтобы считать и отправить новый PHP код.

Entry Point

И данный код работает.

Entry Point

Глянем на пользователей и заметим, что у mysql есть bash.

Entry Point

Давайте удобный шелл, для этого используем webwrap.

Entry Point

USER1

Поскольку MySQL имеет командную оболочку, мы можем использовать службу как обычный пользователь, выполняя команды из MySQL. Учетные данные для подключения к базе данных должны быть в конфигурациях.

USER1
USER1

Теперь, когда мы получили учетные данные, давайте проверим функции mysql.

USER1

И давайте сгенерируем SSH ключи и запишем публичный в домашнюю директорию службы с помощью execcmd.

mysql -u root --password=changethis -e "select execcmd('echo ssh-rsa AAAAB3NzaC1yc2EAAAADA/ ... 6GuPNZGryVNovs= ralf@ralf-PC > ~/.ssh/authorizedkeys');"

И заходим по SSH.

USER1

USER2

И мы можем прочитать логи, где можно поискать пароли.

USER2

 

Попробуем сменить пользователя с найденным паролем.

USER2

ROOT

После долгого изучения машины была дана подсказка о названии машины и использовании бэкдоров. Давайте-ка найдем последние измененные файлы.

find . -mtime -100 2>/dev/null
ROOT

И находим скрытую библиотеку pamunix.so, причем есть такая же, видимо легитимная. Скачиваем этот файл.

scp sysadmin@compromised.htb:/lib/x8664-linux-gnu/security/.pamunix.so ~/tmp/

И закидываем в дизасемблер (я использовал Cutter). Среди строк находим password.

ROOT

Посмотрим, где эта строка используется.

ROOT
ROOT

И видим сравнение пароля с шестнадцатеричными значениями, которые являются половинами строки.

ROOT

Пробуем данную строку как пароль рута, и удачно авторизуемся.

ROOT

 

Сегодняшняя статья состоит в основном из одного кода.Но так как я сам не особо любителб теории то сегодняшняя лабораторная мне по вкусу так же надеюсь и вам.Я думаю что сегодняшняя статья принесет вам немало пользы в укреплении инфобезопасности.Всем удачи)

Вся информация представлена ​​только в образовательных целях. Автор этого документа не несет ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения этого документа.

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.