Hack The Planet

๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค, cyalume์˜ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

reverse engineering/CodeEngn

[CodeEngn] Basic RCE L07 ๋ฌธ์ œํ’€์ด

cyalume 2020. 12. 7. 12:28

๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์••์ถ• ํ•ด์ œ ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” codeengn ์ž…๋‹ˆ๋‹ค.)

 

๋ชฉํ‘œ๊ฐ’ : C ๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์ด CodeEngn ์ผ ๊ฒฝ์šฐ ์‹œ๋ฆฌ์–ผ์ด ์ƒ์„ฑ๋  ๋•Œ  CodeEngn ์ด ๋ฐ”๋€ ์ด๋ฆ„

 

๋จผ์ € ์‹คํ–‰์„ ์‹œ์ผœ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์•„๋ฌด ๊ฐ’์„ ์ž…๋ ฅํ•œ ๋’ค ํ™•์ธ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

 

 

์ž…๋ ฅํ•œ ์‹œ๋ฆฌ์–ผ ๊ฐ’์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’๊ณผ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์‹œ๋ฆฌ์–ผ ๊ฐ’์„ ๋น„๊ตํ•ด ๋ถ„๊ธฐํ•˜๋Š” ์ต์ˆ™ํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋””๋ฒ„๊ฑฐ๋กœ ์—ด์–ด์ค๋‹ˆ๋‹ค.

 

 

 

 

์กฐ๊ธˆ ๋‚ด๋ ค ๋ณด๋ฉด GetVolumeInformation ํ•จ์ˆ˜์˜ VolumeNameBuffer ๋กœ C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์„ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์€ ๋ฉ”๋ชจ๋ฆฌ์˜ 0040225C ์ฃผ์†Œ์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ œ C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

 

 

00401099 ๋ถ€ํ„ฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ•˜๋‚˜์”ฉ ํ•ด์„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋”๋ณด๊ธฐ

 

00401099 | GetVolumeInformation ํ•จ์ˆ˜ ํ˜ธ์ถœ, 0040225C ์ฃผ์†Œ์˜ C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์„ ์ธ์ž๋กœ ๋ฐ›์Œ

0040109E | 4562-ABEX ๋ผ๋Š” ๋ฌธ์ž์—ด์„ lstrcatA ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ

004010A3 | C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์„ lstrcatA ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ

004010A8 | lstrcatA ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์— 4562-ABEX ๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ถ™์—ฌ ์ €์žฅ

004010AD | DL ์— 2๋ฅผ ๋„ฃ์Œ (๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด ์ •๋„๋กœ ์‚ฌ์šฉ)

004010AF | (C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„)4562-ABEX ์˜ ๋งจ ์•ž ๊ธ€์ž๋ฅผ 1 ์ฆ๊ฐ€

004010B6 | (C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„)4562-ABEX ์˜ ๋‘ ๋ฒˆ์งธ ๊ธ€์ž๋ฅผ 1 ์ฆ๊ฐ€

004010BD | (C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„)4562-ABEX ์˜ ์„ธ ๋ฒˆ์งธ ๊ธ€์ž๋ฅผ 1 ์ฆ๊ฐ€

004010C4 | (C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„)4562-ABEX ์˜ ๋„ค ๋ฒˆ์งธ ๊ธ€์ž๋ฅผ 1 ์ฆ๊ฐ€

004010CB | DL ์„ 1 ๊ฐ์†Œ

004010CD | DL ์ด 0์ด ์•„๋‹ˆ๋ผ๋ฉด 004010AF ์ฃผ์†Œ๋กœ ์ ํ”„

004010CF | L2C-5781์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ lstrcatA ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ

004010D4 | 00402000 ์ฃผ์†Œ์˜ ๋ฌธ์ž์—ด (์•„๋ฌด๊ฒƒ๋„ ์—†์Œ) ์„ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ

004010D9 | lstrcatA ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด 00402000 ์ฃผ์†Œ์˜ ๋ฌธ์ž์—ด์— L2C-5781 ์„ ๋ถ™์ž„

004010DE | 0040225C ์ฃผ์†Œ์„œ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜์ •๋œ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์„ ์ธ์ž๋กœ ์ „๋‹ฌ

004010E3 | 00402000 ์ฃผ์†Œ์— ์ €์žฅ๋œ L2C-5781 ์„ ์ธ์ž๋กœ ์ „๋‹ฌ

004010E8 | lstrcatA ๋กœ 00402000 ์ฃผ์†Œ์˜ ๋ฌธ์ž์—ด์— 0040225C ์ฃผ์†Œ์˜ ๋ฌธ์ž์—ด์„ ๋ถ™์ž„

004010ED | ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์‹œ๋ฆฌ์–ผ ๊ฐ’์„ ์ธ์ž๋กœ ์ „๋‹ฌ

004010F2 | 004010E8 ์ฃผ์†Œ์„œ ์ด์–ด๋ถ™์ธ ๋ฌธ์ž์—ด์„ ์ธ์ž๋กœ ์ „๋‹ฌ

004010F7 | lstrcmpiA ํ•จ์ˆ˜ ํ˜ธ์ถœ, ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๋‘ ๋ฌธ์ž์—ด ๋น„๊ต

004010FC | EAX ์™€ 0์„ ๋น„๊ต

004010FF | ์œ„ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋กœ ZF = 1์ด๋ผ๋ฉด (EAX = 0์ด๋ผ๋ฉด) ์„ฑ๊ณต ๋ฉ”์„ธ์ง€ ๋ฐ•์Šค ์œ„๋กœ ์ ํ”„

 

์ œ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•ด๋ด…์‹œ๋‹ค.

lstrcatA ํ•จ์ˆ˜๋Š” ๋‘ ๋ฌธ์ž์—ด์„ ์ธ์ž๋กœ ๋ฐ›์•„ ๋ถ™์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‘ ์ธ์ž๋Š” C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„๊ณผ 4562-ABEX ๊ฐ€ ๋˜๊ฒ ๋„ค์š”.

์ œ ๊ฒฝ์šฐ์—” C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์ด ์—†์œผ๋‹ˆ 4562-ABEX ๋ผ๋Š” ๋ฌธ์ž์—ด๋งŒ์ด 0040225C ์ฃผ์†Œ์— ์ €์žฅ์ด ๋˜์–ด ์ฆ๊ฐ€ ์—ฐ์‚ฐ์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

์•ž ๋„ค ๊ธ€์ž, 4562์— ๊ฐ๊ฐ 2์”ฉ์„ ๋”ํ•ด์ฃผ๋ฉด ๋ฐ˜๋ณต ๊ตฌ๊ฐ„์ด ๋๋‚  ๋•Œ 6784-ABEX ๋ผ๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

์ด๋ฅผ ๋‹ค์‹œ lstrcatA ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•ด L2C-5781 ์ด๋ผ๋Š” ๋ฌธ์ž์—ด ๋’ค์— ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค.

๊ทธ ํ›„์— ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’๊ณผ ์œ„์—์„œ ๊ฐ€๊ณต๋œ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€๊ณต๋œ ๋ฌธ์ž์—ด์ด L2C-57816784-ABEX ๊ฐ€ ๋˜๊ฒ ์ฃ ?

์ด๊ฒƒ์ด ์ œ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์— ๋งž๊ฒŒ ์ƒ์„ฑ๋œ ์‹œ๋ฆฌ์–ผ์ผ ๊ฒ๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด ์ด ๊ฐ’์„ ๋„ฃ์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•œ ๋’ค Check ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

 

 

์ด๋ ‡๊ฒŒ ์„ฑ๊ณตํ–ˆ๋‹ค๊ณ  ๋œจ๋„ค์š”.

์•ž์„œ ์ œ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์— ๋งž๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ๋ฆฌ์–ผ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ ๊ตฌํ•ด์•ผ ํ•  ๊ฐ’์€ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์ด CodeEngn ์ผ ๋•Œ, ์‹œ๋ฆฌ์–ผ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฑฐ์ณ ๋ณ€ํ™”ํ•œ C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์•„๊นŒ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹œ๋ฆฌ์–ผ ๊ฐ’์„ ๊ตฌํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

 

 

 

 

์ด๋ ‡๊ฒŒ ๋จผ์ € C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์„ CodeEngn ์œผ๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ด์šฉํ•ด ์‹œ๋ฆฌ์–ผ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

 

lstrcatA๋กœ ํ˜„์žฌ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„ (CodeEngn) ์— 4562-ABEX ๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๋ถ™์–ด CodeEngn4562-ABEX ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์•„์ง๊นŒ์ง€ C๋“œ๋ผ์ด๋ธŒ ์ด๋ฆ„์€ ๋ณ€ํ˜•๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 

๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด CodeEngn4562-ABEX ๋ฌธ์ž์—ด์˜ ์•ž ๋„ค ๊ธ€์ž์— 1์”ฉ ๋‘ ๋ฒˆ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

(C+2)(o+2)(d+2)(e+2)Engn4562-ABEX = EqfgEngn4562-ABEX

C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์ธ CodeEngn ์ด ์‹œ๋ฆฌ์–ผ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฑฐ์น˜๋ฉฐ EqfgEngn ์ด๋ผ๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

 

lstrcatA ํ•จ์ˆ˜๋กœ ๋‹ค์‹œ ํ•œ ๋ฒˆ L2C-5781 ์ด๋ผ๋Š” ๋ฌธ์ž์—ด๊ณผ ์•ž์„œ ๊ฐ€๊ณต๋œ ๋ฌธ์ž์—ด์„ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค.

L2C-5781 + EqfgEngn4562-ABEX = L2C-5781EqfgEngn-ABEX

 

๋”ฐ๋ผ์„œ C๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์ด  CodeEngn ์ผ ๋•Œ, ์ตœ์ข…์ ์œผ๋กœ ์ƒ์„ฑ๋œ ์‹œ๋ฆฌ์–ผ์€ L2C-5781EqfgEngn-ABEX ์ž…๋‹ˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹œ์ž‘ํ•ด์„œ ์ด๋ฅผ ์ธ์ฆํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

 

 

 

 

Check ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋œน๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ตฌํ•ด์•ผ ํ•  ๊ฐ’์€ ์‹œ๋ฆฌ์–ผ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฑฐ์ณ CodeEngn ์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๋ณ€ํ˜•๋œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ์˜ ๋‹ต์€ EqfgEngn ์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

C ๋“œ๋ผ์ด๋ธŒ์˜ ์ด๋ฆ„์ด CodeEngn ์ผ ๊ฒฝ์šฐ ์‹œ๋ฆฌ์–ผ์ด ์ƒ์„ฑ๋  ๋•Œ  CodeEngn ์ด ๋ฐ”๋€ ์ด๋ฆ„ : EqfgEngn