๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”’์ •๋ณด๋ณด์•ˆ/์ทจ์•ฝ์  ๋ถ„์„

์ทจ์•ฝ์  ๋ถ„์„ - CVE-2014-6287, HFS(HTTP File Server) RCE ์ทจ์•ฝ์ 

by Janger 2024. 1. 25.
728x90
๋ฐ˜์‘ํ˜•

 

์ทจ์•ฝ์  ์„ค๋ช…

parserLib.pas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์— ๋‚ด์žฌ๋˜์–ด ์žˆ๋Š” findMacroMarker ํ•จ์ˆ˜๊ฐ€ %00(NULL) ๊ฐ’ ์ดํ›„์— ์˜ค๋Š” ๊ฐ’์„ ์ฝ์–ด๋‚ด์ง€ ๋ชปํ•˜์—ฌ ํŒŒ์ผ ์‹คํ–‰, ์ €์žฅ๊ณผ ๊ฐ™์€ ๋งคํฌ๋กœ ๋ช…๋ น์–ด๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด์ง€ ๋ชปํ•˜์—ฌ ๊ณต๊ฒฉ์ž๊ฐ€ ์›ํ•˜๋Š” ํ–‰์œ„๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. 

hfs2.3~hfs2.3c์— ํ•ด๋‹น CVE ์ทจ์•ฝ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

*HFS(HTTP File Server) : HTTP ๊ธฐ๋ฐ˜ ํŒŒ์ผ ๊ณต์œ  ์„œ๋ฒ„

*์Šคํฌ๋ฆฝํŒ…(๋งคํฌ๋กœ) ๋ช…๋ น์–ด ๋ชจ์Œ : https://www.rejetto.com/wiki/index.php/HFS:_scripting_commands

 

 

์ฝ”๋“œ ๋ถ„์„

 

// parserLib.pas
function findMacroMarker(s:string; ofs:integer=1):integer;
begin result:=reMatch(s, '\{[.:]|[.:]\}|\|', 'm!', ofs) end;

findMacroMarker ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๋‚ด์šฉ(URL)์— ๋งคํฌ๋กœ ๋ช…๋ น์–ด๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. 

 

์—ฌ๊ธฐ์„œ ๋งคํฌ๋กœ๋Š” ์ธ์ฝ”๋”ฉ&๋””์ฝ”๋”ฉ, ๋žœ๋ค ์„ ํƒ ์‹ฌ์ง€์–ด๋Š” ์‹œ์Šคํ…œ ๋ช…๋ น์–ด ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. 

https://www.rejetto.com/wiki/index.php/HFS:_scripting_commands

 

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ URL์„ ์ž…๋ ฅํ•˜์˜€๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. 

http://target-server.com/search?={.exec|notepad.}

 

 

๊ทธ๋Ÿผ ์ •๊ทœ ํ‘œํ˜„์‹์— ์˜ํ•ด์„œ ๋งคํฌ๋กœ ๋ช…๋ น์–ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ฐฉ์ง€๋ฅผ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ค‘๊ฐ„์— NULL ๊ฐ’(%00)์ด ์˜ค๊ฒŒ ๋˜๋ฉด NULL ๊ฐ’ ๋’ค์— ๊ฐ’๋“ค์„ ๋ฌด์‹œํ•ด ๋ฒ„๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

ex) http://target-server.com/search?=%00{.exec|notepad.}

 

๊ฒฐ๊ตญ ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด ๊ฐ’์€ false๊ฐ€ ๋‚˜์˜ค๊ณ  ๋งคํฌ๋กœ ๋ช…๋ น์–ด ๊ฐ์ง€์— ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

 

 

์ฝ”๋“œ ์ถœ์ฒ˜: 

https://github.com/rejetto/hfs2/blob/master/parserLib.pas#L244

 

 

 

์‹ค์Šต

 

[๊ณต๊ฒฉ ๋Œ€์ƒ ํ™˜๊ฒฝ]

OS : Microsoft Windows [Version 10.0.19045.3803]

IP Address : 192.168.56.102

hfs Version : 2.3

 

[๊ณต๊ฒฉ์ž ํ™˜๊ฒฝ]

OS : Linux kali 6.5.0-kali3-amd64

IP Address : 192.168.56.101

 

 

์šฐ์„  hfs ์„œ๋ฒ„๊ฐ€ ์—ด๋ฆฌ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ณต๊ฒฉ์ž์™€ ๊ณต๊ฒฉ ๋Œ€์ƒ์ด ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. 

 

 

 

๊ณต๊ฒฉ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ํ•ฉ๋‹ˆ๋‹ค. 

 

ํ”ผํ•ด์ž์˜ PC๋ฅผ ํ™•์ธํ•˜๋ฉด ๋กœ๊ทธ์—๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด ์—†๋Š” ์š”์ฒญ์ด ๋‚จ๊ฒจ์ ธ ์žˆ์œผ๋ฉฐ, ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„ํ•œ๋Œ€๋กœ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์‹คํ–‰ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

๊ณต๊ฒฉ ๋ฐฉ์ง€

๊ณต๊ฒฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ตœ์‹  ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ์ž…๋‹ˆ๋‹ค. 

ํ˜„์žฌ CVE-2014-6287 ์ทจ์•ฝ์ ์€ 2.3c ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ํŒจ์น˜๊ฐ€ ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ 2.3c ์ด์ƒ์˜ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. 

 

 

 

2.3c ๋ฒ„์ „์„ ์„ค์น˜ํ•œ ํ™˜๊ฒฝ์—๋Š” ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฒฉ์„ ํ•˜์˜€์Œ์—๋„ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

์ฐธ๊ณ 

 

https://wins21.co.kr/kor/promotion/information.html?bmain=view&language=KOR&uid=2361

 

WINS

์ธ๊ณต์ง€๋Šฅ ๋ณด์•ˆ๊ธฐ์—…, IPS, ๋””๋„์Šค, APT๋ฐฉ์–ด, ์ฐจ์„ธ๋Œ€๋ฐฉํ™”๋ฒฝ, AI๋ณด์•ˆ๊ด€์ œ, ํด๋ผ์šฐ๋“œ๋ณด์•ˆ, ๋ณด์•ˆSI, ๋ณด์•ˆ์ปจ์„คํŒ…

wins21.co.kr

 

https://nvd.nist.gov/vuln/detail/CVE-2014-6287

 

NVD - CVE-2014-6287

CVE-2014-6287 Detail Description The findMacroMarker function in parserLib.pas in Rejetto HTTP File Server (aks HFS or HttpFileServer) 2.3x before 2.3c allows remote attackers to execute arbitrary programs via a %00 sequence in a search action. References

nvd.nist.gov

 

https://subscription.packtpub.com/book/security/9781786463166/1/ch01lvl1sec20/vulnerability-analysis-of-hfs-2-3

 

Mastering Metasploit - Second Edition

Overview of this book Metasploit is a popular penetration testing framework that has one of the largest exploit databases around. This book will show you exactly how to prepare yourself against the attacks you will face every day by simulating real-world p

subscription.packtpub.com

 

https://github.com/rejetto/hfs2/blob/master/parserLib.pas

 

 

728x90
๋ฐ˜์‘ํ˜•