Splunk Attacks

  • Splunk web server runs by default on port 8000

    • works on https

  • On older versions of Splunk, the default credentials are admin:changeme

    • If the default credentials do not work, it is worth checking for common weak passwords such as admin, Welcome, Welcome1, Password123, etc.

Enumeration

  • The Splunk Enterprise trial converts to a free version after 60 days, which doesn’t require authentication - It is not uncommon for system administrators to install a trial of Splunk to test it out, which is subsequently forgotten about. - This will automatically convert to the free version that does not have any form of authentication, introducing a security hole in the environment - Some organizations may opt for the free version due to budget constraints, not fully understanding the implications of having no user/role management.

  • Splunk has multiple ways of running code, such as

    • server-side Django applications

    • REST endpoints

    • scripted inputs

    • alerting scripts

  • A common method of gaining remote code execution on a Splunk server is through the use of a scripted input

Attacking Splunk

  • We can use this Splunk package to assist us.

  • The bin directory will contain any scripts that we intend to run (in this case, a PowerShell reverse shell), and the default directory will have our inputs.conf file

  • Our reverse shell will be a PowerShell one-liner.

  • The inputs.conf file tells Splunk which script to run and any other conditions.

    • Here we set the app as enabled and tell Splunk to run the script every 10 seconds.

    • The interval is always in seconds, and the input (script) will only run if this setting is present.

  • We need the .bat file, which will run when the application is deployed and execute the PowerShell one-liner.

  • Once the files are created, we can create a tarball or .spl file.

  • The next step is to choose Install app from file and upload the application.

  • Before uploading the malicious custom app, let's start a listener using Netcat or socat.

  • On the Upload app page, click on browse, choose the tarball we created earlier and click Upload.

  • As soon as we upload the application, a reverse shell is received as the status of the application will automatically be switched to Enabled.

  • If we were dealing with a Linux host, we would need to edit the rev.py Python script before creating the tarball and uploading the custom malicious app

Last updated