8.5 KiB
Jira & Confluence
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support 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.
Se você está interessado em carreira de hacking e hackear o inhackeável - estamos contratando! (fluência em polonês escrita e falada é necessária).
{% embed url="https://www.stmcyber.com/careers" %}
Verificar Privilégios
No Jira, 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 pode ser elegível para um bounty. Da mesma forma, privilégios inesperados para usuários autenticados também destacam uma vulnerabilidade.
Uma atualização importante foi feita em 1º de fevereiro de 2019, exigindo que o endpoint 'mypermissions' incluísse um 'parâmetro de permissão'. Este requisito visa aumentar a segurança especificando os privilégios que estão sendo consultados: verifique aqui
- ADD_COMMENTS
- ADMINISTRAR
- ADMINISTRAR_PROJETOS
- USUÁRIO_ATRIBUÍVEL
- ATRIBUIR_TAREFAS
- NAVEGAR_PROJETOS
- ALTERAÇÃO_EM_BULK
- FECHAR_TAREFAS
- CRIAR_ANEXOS
- CRIAR_TAREFAS
- CRIAR_PROJETO
- CRIAR_OBJETOS_COMPARTILHADOS
- DELETAR_TODOS_ANEXOS
- DELETAR_TODOS_COMENTÁRIOS
- DELETAR_TODOS_REGISTROS_DE_TRABALHO
- DELETAR_TAREFAS
- DELETAR_SEUS_ANEXOS
- DELETAR_SEUS_COMENTÁRIOS
- DELETAR_SEUS_REGISTROS_DE_TRABALHO
- EDITAR_TODOS_COMENTÁRIOS
- EDITAR_TODOS_REGISTROS_DE_TRABALHO
- EDITAR_TAREFAS
- EDITAR_SEUS_COMENTÁRIOS
- EDITAR_SEUS_REGISTROS_DE_TRABALHO
- VINCULAR_TAREFAS
- GERENCIAR_ASSINATURAS_DE_FILTRO_DE_GRUPO
- GERENCIAR_PERMISSÃO_DE_SPRINTS
- GERENCIAR_OBSERVADORES
- MODIFICAR_REPORTER
- MOVER_TAREFAS
- RESOLVER_TAREFAS
- AGENDAR_TAREFAS
- DEFINIR_SEGURANÇA_DA_TAREFA
- ADMIN_DO_SISTEMA
- TRANSICIONAR_TAREFAS
- SELECIONADOR_DE_USUÁRIOS
- VER_DADOS_AGREGADOS
- VER_FERRAMENTAS_DE_DEV
- VER_FLUXO_DE_TRABALHO_SOMENTE_LEITURA
- VER_VOTANTES_E_OBSERVADORES
- TRABALHAR_EM_TAREFAS
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
Plugins Atlassian
Conforme indicado neste blog, na documentação sobre Módulos de Plugin ↗ é possível verificar os diferentes tipos de plugins, como:
- Módulo de Plugin REST ↗: Expõe endpoints de API RESTful
- Módulo de Plugin Servlet ↗: Implanta servlets Java como parte de um plugin
- Módulo de Plugin Macro ↗: Implementa Macros do Confluence, ou seja, templates HTML parametrizados
Este é um exemplo do tipo de plugin macro:
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 ("<h1>Hello " + map.get("Name") + "!</h1>");
} else {
return "<h1>Hello World!<h1>";
}
}
public BodyType getBodyType() { return BodyType.NONE; }
public OutputType getOutputType() { return OutputType.BLOCK; }
}
É 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.
Uma vez que um XSS é encontrado, no este repositório do github você pode encontrar alguns payloads para aumentar o impacto do XSS.
Plugin de Backdoor
Este post descreve diferentes ações (maliciosas) que um plugin malicioso do Jira poderia realizar. Você pode encontrar exemplo de código neste repositório.
Estas são algumas das ações que um plugin malicioso poderia realizar:
- Ocultar Plugins de Administradores: É possível ocultar o plugin malicioso injetando algum javascript de front-end.
- Exfiltrar Anexos e Páginas: Permitir acessar e exfiltrar todos os dados.
- Roubar Tokens de Sessão: Adicionar um endpoint que irá ecoar os cabeçalhos na resposta (com o cookie) e algum javascript que irá contatá-lo e vazar os cookies.
- Execução de Comandos: Claro que é possível criar um plugin que irá executar código.
- Shell Reversa: Ou obter um shell reverso.
- Proxy DOM: Se o confluence estiver dentro de uma rede privada, seria possível estabelecer uma conexão através do navegador de algum usuário com acesso a ele e, por exemplo, contatar o servidor executando comandos através dele.
Se você está interessado em carreira em hacking e hackear o inhackeável - estamos contratando! (fluência em polonês escrita e falada é necessária).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support 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 os repositórios do HackTricks e HackTricks Cloud.