CTF Cap на HTB: Експлуатація IDOR і ескалація привілеїв за допомогою можливостей Python

Цей блог описує мій досвід вирішення машини "Cap" на Hack The Box. Вона категоризована як перша машина в треку Intro to Red Team. Виклик полягає в експлуатації вразливості IDOR та використанні можливостей Python для ескалації привілеїв. Нижче я крок за кроком розповім про те, як я отримав root доступ до цієї машини.

Крок 1: Початкове сканування та збір інформації

Я почав з виконання сканування за допомогою nmap, щоб визначити відкриті порти та сервіси на цільовій машині. Ось команду, яку я використав:

export IP=10.10.10.245  
sudo nmap -sC -sV -oN initial-scan $IP

Сканування показало наступні відкриті порти:

  • 21/TCP (FTP), що працює на vsftpd 3.0.3
  • 22/TCP (SSH), що працює на OpenSSH 8.2p1 на Ubuntu
  • 80/TCP (HTTP), який обслуговує веб-додаток, що працює на Gunicorn

Ось скріншот результатів сканування nmap для довідки:

pic

Початкове сканування з відкритими портами

Крок 2: Аналіз веб-додатку

Далі я перейшов до веб-додатку, що працює на порту 80. Під час дослідження я помітив, що я взаємодію як користувач "Nathan". Переглядаючи сторінки, я знайшов параметр у URI (data). Експериментуючи з його значенням, я виявив, що зменшення значення цього параметра дає доступ до додаткових даних. Наприклад, встановивши його на 0, я зміг завантажити файл .pcap.

Ось скріншот маніпуляції з параметром в дії:

pic

Експлуатація вразливості IDOR шляхом зміни параметра URI

Крок 3: Аналіз файлу PCAP

Завантажений файл PCAP містив мережеві журнали трафіку. Використовуючи Wireshark, я проаналізував файл і визначив кілька використовуваних протоколів, зокрема FTP. Оскільки FTP передає дані у відкритому вигляді, я зміг отримати облікові дані Nathan (USER: nathan і PASS: Buck3tH4TF0RM3!), відслідковуючи TCP потік.

Ось скріншот аналізу Wireshark з витягнутими обліковими даними:

pic

pic

Облікові дані FTP, знайдені при аналізі файлу PCAP

З цими обліковими даними я успішно увійшов до машини через SSH.

Крок 4: Успішний вхід через SSH

Використовуючи облікові дані, витягнуті з файлу PCAP, я успішно увійшов до машини через SSH. Після входу я перерахував вміст домашнього каталогу Nathan, щоб зібрати більше інформації та визначити потенційно цікаві файли.

Ось скріншот успішного входу та перерахунку каталогу:

pic

Увійшов до сервера, використовуючи витягнуті облікові дані

Крок 5: Ескалація привілеїв та фінальний флаг

Після отримання доступу до SSH як Nathan, я перевірив можливості користувача для визначення шляхів ескалації привілеїв. Використовуючи наступну команду:

getcap -r / 2>/dev/null

Я виявив, що Python 3.8 має підвищені можливості (cap_setuid і cap_net_bind_service). Це дозволило мені запустити Python з правами root.

Ось скріншот перевірки можливостей:

pic

Перевірка підвищених можливостей Python за допомогою getcap

Перевіряючи домашній каталог Nathan, я знайшов кілька Python скриптів, які здавалися корисними, серед них getfiles.py та getrootfiles.py. Ось скріншот перерахунку каталогу:

pic

Знайшов Python скрипти в домашньому каталозі Nathan

Скрипт getfiles.py дозволив мені переключитися на користувача root і перерахувати файли в каталозі /root.
Нижче наведено вміст скрипту та його виконання:

pic

Огляд вмісту скрипту getfiles.py

pic

Ескалація привілеїв за допомогою getfiles.py

Щоб отримати фінальний флаг, я використав скрипт getrootfiles.py, який був розроблений для читання конкретних файлів як користувач root. Нижче наведено вміст скрипту та процес виконання:

pic

Огляд вмісту скрипту getrootfiles.py

Зрештою, я отримав флаг root.txt:

1de477fe588163f708e3eacf4edd932d

Нижче наведено скріншот отримання фінального флагу:

pic

Отримання флагу за допомогою getrootfiles.py

Висновок

Машина "Cap" надала чудову можливість попрактикуватися в експлуатації вразливості IDOR та ескалації привілеїв за допомогою можливостей Linux. Від початкової енумерації до використання Python скриптів для доступу root, цей виклик продемонстрував важливість систематичного аналізу та експлуатації вразливостей.

Перекладено з: HTB Cap CTF: IDOR Exploitation and Privilege Escalation with Python Capabilities

Leave a Reply

Your email address will not be published. Required fields are marked *