В этой статье пойдет речь о том, как получить доступ к уязвимой машине под названием HA: Forensics. Это тип атаки, который называется «Захват флага». Будут получены 4 флага, которые доступны по мере решения лабораторных задач на основе подсказок.
Скачать лабораторию можно, перейдя по ссылке.
Сканирование сети
Чтобы атаковать любую машину, нужно определить ее IP-адрес. Это можно сделать с помощью команды «net discover». Чтобы найти IP-адрес, необходимо будет связаться с MAC-адресом, который можно получить из параметра конфигурации виртуальной машины. IP-адрес машины был определен успешно. Это 192.168.0.174.
netdiscover
После сканирования с помощью команды «net discover» следует использовать сканирование Nmap, чтобы получить информацию о службах, запущенных на виртуальной машине. Агрессивное сканирование Nmap показало, что запущены 2 службы: SSH (22) и HTTP (80).
nmap -A 192.168.0.174
Перечисление
Поскольку есть служба HTTP, работающая на виртуальной машине, стоит взглянуть на размещенную там веб-страницу:
http://192.168.0.174
На веб-странице есть кнопка с надписью: «Нажмите здесь, чтобы получить флаг!». Пользователь нажимает на эту кнопку.
Флаг 1
Пользователь понимает, что веб-страница – это простая страница с некоторыми изображениями Forensics. Ничего особенного. Следующей среди задач по перечислению была «Directory Bruteforce». Человек использовал надежный инструмент dirb для проведения этой атаки.
dirb http://192.168.0.174/
Это дало ему возможность получить доступ к каталогу изображений. Он заглянул в него через веб-браузер и нашел там два изображения под названием «DNA» и «fingerprint». Человек проверил «DNA»: это оказалась «кроличья нора». Тогда он решил скачать файл fingerprint.jpg для дальнейшего анализа.
Эта машина основана на Forensics. У пользователя теперь есть нужное изображение на компьютере. Здесь подойдет инструмент Exiftool для использования. При простом взгляде на метаданные изображения с помощью Exiftool человек понимает, что у него теперь есть первый флаг.
exiftool fingerprint.jpg
Флаг 2
Теперь перечисление не всегда заканчивается лишь одной версией «Directory Bruteforce». Если человек сомневается в результате, он всегда использует фильтр «Extension» в dirb. Следует обратить свое внимание на фильтр для файлов формата txt. Есть какой-то файл «tips.txt».
dirb http://192.168.0.174 -X .txt
Рассматривая файл «tips.txt», пользователь понимает, что это своего рода robots.txt файл (только он назван «tips»). Поскольку идет охота на флаги, человек ориентируется на файл «flag.zip».
У пользователя получилось сохранить файл. Ура!
Теперь, когда у него есть этот zip-файл в локальной системе, пришло время извлечь его содержимое. Пользователь будет использовать команду «unzip», чтобы извлечь файлы. Однако для этого требуется пароль.
Пользователь открывает веб-браузер и файл «tips». Здесь есть папка с названием «igolder». Оно напоминает название веб-сайта, который шифрует и расшифровывает сообщения с открытыми и приватными ключами. При просмотре папки можно увидеть, что есть еще один текстовый файл под названием «clue.txt». При чтении файла пользователь понимает, что это комбинация приватного ключа и сообщения.
http://192.168.0.174/igolder/clue.txt
Чтобы расшифровать сообщение, пользователь перешел на сайт «igolder» и вставил приватный ключ PGP и зашифрованное сообщение из файла «clue.txt». После нажатия кнопки «Расшифровать сообщение» он смог прочесть секретное сообщение. Там говорится, что пароль состоит из 6 символов, причем первые 3 являются буквами «for», а последние 3 – цифрами.
Всякий раз, когда человек оказывается в ситуации, когда у него есть какой-то частичный намек на пароль, он использует с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
Пора открыть этот файл в формате PDF и посмотреть на второй флаг.
Флаг 3
Теперь у пользователя уже есть 2 флага, еще 2 нужно найти. Был найден файл DMP. В Forensics файл дампа можно проверить с помощью pypykatz. Итак, пользователь будет использовать эту программу, чтобы найти некоторые подсказки.
pypykatz -lsa -k /root/Downloads minidump lsass.DMP
Изучив тщательно файл DMP, пользователь находит хэш-файл NT для пользователя по имени Jasoos. На хинди это означает «детектив». Это может быть ключом к разгадке.
Пользователь копирует и вставляет это в файл с именем «hash». Теперь у него есть хэш-файл. Чтобы взломать его, нужен «John the Ripper». Был получен пароль. Это «Password@1». Не очень безопасно, конечно.
john --format=NT hash
Теперь пользователь может напрямую подключиться через 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
Используя команду «ifconfig», пользователь понимает, что в приложении работает интерфейс docker с IP-адресом 172.17.0.1.
Это внутренний IP-адрес, что означает, что пользователь не может получить к нему доступ извне обычным способом.
sessions 2
ifconfig
Не надо паниковать. Здесь пригодится 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
Сканирование выявило, что 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
Теперь с помощью сервиса Python One liner HTTP пользователь отправляет файл с целевой машины на его локальную.
exit
ls
python -m SimpleHTTPServer
Поскольку Python One liner работает стабильно на порту 8000, пользователь просматривает этот порт и получает файл «saboot».
http://192.168.0.174:8000
Он решает использовать инструмент «Autopsy Forensic Investigation», чтобы изучить полученное изображение. Его можно запустить с помощью следующей команды. Autopsy доступен на локальном хосте (порт 9999). Нужно открыть его.
Здесь есть веб-интерфейс для Autopsy. Пользователь нажимает на кнопку «New Case».
Пользователь дает название делу, пишет его описание и вводит имя следователя. И снова нажимает на кнопку «New Case».
Теперь будет создано дело. После создания дела ему требуется хост для этого конкретного обращения. Оно запрашивает имя хоста. После ввода имени хоста пользователь нажимает на кнопку «Add Host», чтобы продолжить.
После создания хоста пользователя просят добавить файл с изображением. Это шаг, на котором пользователь добавляет файл изображения, полученный с целевой машины.
Будет запрошено местоположение файла. Поскольку пользователь загрузил его из своего веб-браузера, он должен быть в папке «Загрузки». Пользователь предоставляет путь к файлу, как показано на рисунке ниже. Кроме того, он выбирает «Partition» в параметре «Type». После завершения пользователь нажмет на кнопку «Next», чтобы продолжить.
Пользователь оставит все по умолчанию и нажмет на кнопку «Add».
Файл был загружен. Пришло время для его анализа. Как выполнить анализ показано на рисунке ниже.
Пользователь видит, что у него есть куча файлов. Среди этих файлов есть 2 текстовых. Файл-флага и файл «creds». Настала пора просмотреть третий флаг.
Флаг 4
Теперь у пользователя есть файл creds.txt. Пользователь просмотрит его и обнаружит, что внутри есть какой-то зашифрованный текст.
Похоже, что это кодировка Base64. Пользователь использует команду «echo» с декодером base 64, как показано на рисунке ниже. Это может быть пароль для другого пользователя.
Пользователь перечислил домашний каталог и обнаружил, что есть еще один пользователь по имени Forensics. Пароль должен подходить для этого пользователя. Человек использует команду «su» для входа в систему в качестве Forensics и пароль, который был найден. Теперь человек использует команду «sudo-l», чтобы понять, какие двоичные файлы он может использовать для повышения привилегий. Все нужное найдено. Итак, теперь пользователь использует команду «sudo bash» и получает Root. Затем он найдет последний флаг в каталоге Root. Четвертый флаг обнаружен. Это успех!
cd /home
ls
su forensics
jeenaliisagoodgirl
sudo -l
sudo bash
cd /root
cat root.txt
Автор переведенной статьи: Pavandeep Singh.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ