๊ธฐ๋ณธ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡ ๋ฐฉ๋ฒ•๋ก 

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 ์ง€์›ํ•˜๊ธฐ

ELF ๊ธฐ๋ณธ ์ •๋ณด

๋ฌด์–ธ๊ฐ€๋ฅผ ์ต์Šคํ”Œ๋กœ์ž‡ํ•˜๊ธฐ ์ „์— ELF ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๊ตฌ์กฐ ์ผ๋ถ€๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค:

ELF Basic Information

์ต์Šคํ”Œ๋กœ์ž‡ ๋„๊ตฌ

Exploiting Tools

์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐฉ๋ฒ•๋ก 

๋งŽ์€ ๊ธฐ์ˆ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๊ธฐ์ˆ ์ด ์œ ์šฉํ•  ๋•Œ์˜ ์Šคํ‚ด์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ณดํ˜ธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ ๋ณดํ˜ธ ์„น์…˜์—์„œ ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•๋ก ์—์„œ๋Š” ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ๋ฆ„ ์ œ์–ด

ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ: ์Šคํƒ์—์„œ ๋ฐ˜ํ™˜ ํฌ์ธํ„ฐ ๋˜๋Š” EBP -> ESP -> EIP๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ.
  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์œ ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์•…์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜๋Š” ์ž„์˜ ์“ฐ๊ธฐ + ์‹คํ–‰์„ ์œ„ํ•œ ์“ฐ๊ธฐ ์œ„์น˜ ์ง€์ •์„ ํ†ตํ•ด.
  • ํฌ๋งท ๋ฌธ์ž์—ด: printf๋ฅผ ์•…์šฉํ•˜์—ฌ ์ž„์˜์˜ ๋‚ด์šฉ์„ ์ž„์˜์˜ ์ฃผ์†Œ์— ์“ฐ๊ธฐ.
  • ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ: ์ž˜๋ชป ์„ค๊ณ„๋œ ์ธ๋ฑ์‹ฑ์„ ์•…์šฉํ•˜์—ฌ ์ผ๋ถ€ ๋ฐฐ์—ด์„ ์ œ์–ดํ•˜๊ณ  ์ž„์˜์˜ ์“ฐ๊ธฐ๋ฅผ ์–ป๊ธฐ.
  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์œ ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์•…์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • bof to WWW via ROP: ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์•…์šฉํ•˜์—ฌ ROP๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  WWW๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์„ ์œ„ํ•œ ์“ฐ๊ธฐ ์œ„์น˜ ์ง€์ • ๊ธฐ์ˆ ์€ ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Write What Where 2 Exec

์˜์›ํ•œ ๋ฃจํ”„

๊ณ ๋ คํ•ด์•ผ ํ•  ์ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ทจ์•ฝ์ ์„ ํ•œ ๋ฒˆ ์ต์Šคํ”Œ๋กœ์ž‡ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ผ๋ถ€ ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ผ ์ทจ์•ฝ์ ์„ ๋™์ผํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹คํ–‰์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์ต์Šคํ”Œ๋กœ์ž‡ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค:

  • main ํ•จ์ˆ˜์˜ ์ฃผ์†Œ ๋˜๋Š” ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ROP ์ฒด์ธ์— ์ž‘์„ฑ.
  • ์ ์ ˆํ•œ ROP ์ฒด์ธ์„ ์ œ์–ดํ•˜๋ฉด ํ•ด๋‹น ์ฒด์ธ์—์„œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • exit GOT์˜ ์ฃผ์†Œ์— (์ข…๋ฃŒ ์ „์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ) ์ทจ์•ฝ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ๋ฅผ ์ž‘์„ฑ.
  • .fini_array, ์—ฌ๊ธฐ์—์„œ ์ทจ์•ฝ์ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•  ํ•จ์ˆ˜์™€ **__libc_csu_fini**๋ฅผ ํ˜ธ์ถœํ•  ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ต์Šคํ”Œ๋กœ์ž‡ ๋ชฉํ‘œ

๋ชฉํ‘œ: ๊ธฐ์กด ํ•จ์ˆ˜ ํ˜ธ์ถœ

  • ret2win: ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ์— ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜์ผ ์ˆ˜ ์žˆ์Œ).
  • PIE ์—†์ด ์ผ๋ฐ˜์ ์ธ bof์—์„œ๋Š” ์Šคํƒ์— ์ €์žฅ๋œ ๋ฐ˜ํ™˜ ์ฃผ์†Œ์— ์ฃผ์†Œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • PIE๊ฐ€ ์žˆ๋Š” bof์—์„œ๋Š” ์ด๋ฅผ ์šฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • canary๊ฐ€ ์žˆ๋Š” bof์—์„œ๋Š” ์ด๋ฅผ ์šฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ret2win ํ•จ์ˆ˜๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ:
  • ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๊ฐ€์ ฏ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ROP **์ฒด์ธ ์‚ฌ์šฉ.
  • SROP (์ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ) ๋งŽ์€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด.
  • ์—ฌ๋Ÿฌ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ret2csu ๋ฐ ret2vdso์—์„œ ๊ฐ€์ ฏ ์‚ฌ์šฉ.
  • Write What Where๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ทจ์•ฝ์ (๋น„ bof)์„ ์•…์šฉํ•˜์—ฌ win ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํฌ์ธํ„ฐ ๋ฆฌ๋””๋ ‰์…˜: ์Šคํƒ์— ํ˜ธ์ถœ๋  ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๋˜๋Š” ํฅ๋ฏธ๋กœ์šด ํ•จ์ˆ˜(system ๋˜๋Š” printf)์—์„œ ์‚ฌ์šฉ๋  ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ASLR ๋˜๋Š” PIE๊ฐ€ ์ฃผ์†Œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜: ๋‹น์‹ ์€ ๊ฒฐ์ฝ” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ชฉํ‘œ: RCE

์‰˜์ฝ”๋“œ๋ฅผ ํ†ตํ•ด, nx๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋˜๋Š” ์‰˜์ฝ”๋“œ์™€ ROP ํ˜ผํ•ฉ:

  • (์Šคํƒ) ์‰˜์ฝ”๋“œ: ๋ฐ˜ํ™˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ ์ „ํ›„์— ์Šคํƒ์— ์‰˜์ฝ”๋“œ๋ฅผ ์ €์žฅํ•œ ๋‹ค์Œ ์ ํ”„ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:
  • ์–ด๋–ค ๊ฒฝ์šฐ๋“ , canary๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์ธ bof์—์„œ๋Š” ์ด๋ฅผ ์šฐํšŒ(์œ ์ถœ)ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ASLR ์—†์ด ๋ฐ nx ์—†์ด ์Šคํƒ์˜ ์ฃผ์†Œ๋กœ ์ ํ”„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์†Œ๋Š” ์ ˆ๋Œ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ASLR๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ret2esp/ret2reg์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ํ”„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • nx๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, **memprotect**๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ROP์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ํŽ˜์ด์ง€๋ฅผ rwx๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฑฐ๊ธฐ์— ์‰˜์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ (์˜ˆ: read ํ˜ธ์ถœ) ์ ํ”„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Š” ์‰˜์ฝ”๋“œ๋ฅผ ROP ์ฒด์ธ๊ณผ ํ˜ผํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด

  • Ret2syscall: ์ž„์˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด execve๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ ฏ์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ASLR ๋˜๋Š” PIE๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, ROP ๊ฐ€์ ฏ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ๋ฌด๋ ฅํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • SROP์€ ret2execve๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ret2csu ๋ฐ ret2vdso์—์„œ ๊ฐ€์ ฏ ์‚ฌ์šฉ.

libc๋ฅผ ํ†ตํ•ด

  • Ret2lib: **libc**์—์„œ **system**๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋ฉฐ, ์ผ๋ถ€ ์ค€๋น„๋œ ์ธ์ˆ˜(์˜ˆ: '/bin/sh')๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœํ•˜๋ ค๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ libc).
  • ์ •์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  PIE๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, system ๋ฐ /bin/sh์˜ ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ASLR ์—†์ด ๋ฐ ๋กœ๋“œ๋œ libc ๋ฒ„์ „์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, system ๋ฐ /bin/sh์˜ ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ASLR๊ฐ€ ์žˆ์ง€๋งŒ PIE๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, libc๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ system ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, **GOT์˜ system ์ฃผ์†Œ๋กœ ret**ํ•˜๊ณ  /bin/sh์˜ ์ฃผ์†Œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
  • ASLR๊ฐ€ ์žˆ์ง€๋งŒ PIE๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, libc๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ system์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:
  • ret2dlresolve๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ system์˜ ์ฃผ์†Œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ASLR๋ฅผ ์šฐํšŒํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์—์„œ system ๋ฐ '/bin/sh'์˜ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ASLR ๋ฐ PIE๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  libc๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ:
  • PIE๋ฅผ ์šฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ๋œ libc ๋ฒ„์ „์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ช‡ ๊ฐœ์˜ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ์œ ์ถœ).
  • ๊ณ„์†ํ•˜๊ธฐ ์œ„ํ•ด ASLR์ด ์žˆ๋Š” ์ด์ „ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

EBP/RBP๋ฅผ ํ†ตํ•ด

  • ์Šคํƒ ํ”ผ๋ฒ— / EBP2Ret / EBP ์ฒด์ด๋‹: ์Šคํƒ์— ์ €์žฅ๋œ EBP๋ฅผ ํ†ตํ•ด ESP๋ฅผ ์ œ์–ดํ•˜์—ฌ RET๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • ์˜คํ”„ ๋ฐ”์ด ์› ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • EIP๋ฅผ ์ œ์–ดํ•˜๋Š” ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœ ์œ ์šฉํ•˜๋ฉฐ, EIP๋ฅผ ์•…์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ตฌ์„ฑํ•œ ๋‹ค์Œ EBP๋ฅผ ํ†ตํ•ด ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€

  • ํฌ์ธํ„ฐ ๋ฆฌ๋””๋ ‰์…˜: ์Šคํƒ์— ํ˜ธ์ถœ๋  ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๋˜๋Š” ํฅ๋ฏธ๋กœ์šด ํ•จ์ˆ˜(system ๋˜๋Š” printf)์—์„œ ์‚ฌ์šฉ๋  ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ASLR ๋˜๋Š” PIE๊ฐ€ ์ฃผ์†Œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜: ๋‹น์‹ ์€ ๊ฒฐ์ฝ” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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 ์ง€์›ํ•˜๊ธฐ