์ „์ฒด ๊ธ€

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

SigReturn-Oriented Programming

SigReturn-Oriented Programming ์ด๊ฑด.. gadget??์ด ์žˆ๊ณ  signal์˜ ํ™œ์šฉํ•œ sigreturn์ด ์กด์žฌํ•˜๋„ค์š” Partial RELRO๋กœ ROP ๋Š๋‚Œ ๋‚˜์ฃ  gadget(NX ์šฐํšŒ)ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ read๋Š” 1024byte๋งŒํผ ๋ฐ›๊ธฐ์— bof ์‹œ์Šค์ฝœ์„ ํ˜ธ์ถœ ๋ ˆ์ง€์Šคํ„ฐ ์กฐ์ž‘ ์…ธ ํš๋“์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ต์Šค ์„ค๊ณ„ sigreturn ํ˜ธ์ถœ SROP๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด sigreturn ์‹œ์Šค์ฝœ์„ ํ˜ธ์ถœํ•ด์•ผ์ฃ  ์˜ˆ์   ์ž„์˜ ์‹œ์Šค์ฝœ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก gadget ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜ ๋‚ด๋ถ€ ์ฝ”๋“œ ๊ฐ€์ ฏ ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๊ณ  ์‹œ์Šค์ฝœ ๋ฒˆํ˜ธ(sig_id?)์™€ syscall์„ ํ†ตํ•ด sigreturn์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. execve ํ˜ธ์ถœ sigreturn์€ ์Šคํƒ ์˜์—ญ์˜ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1024 ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

__environ

Exploit Tech: __environ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฆฌํ„ด ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด lib์™€ ์ธ์ž์—์„œ ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ! HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ํ”„๋กœ์„ธ์Šค๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—” lib ํ•จ์ˆ˜์—์„œ ์ฐธ์กฐํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํฌ์ธํ„ฐ์™€ ๊ด€๋ จ๋œ ๊ณต๊ฒฉ์„ ์‹ค์Šตํ•ฉ์‹œ๋‹ค. /etc/passwd ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ฝ๊ณ  ์Šคํƒ ๋ฒ„ํผ์— ์ €์žฅํ•˜๋Š”๊ตฐ์š” ๋ฉ”์ธ ํ•จ์ˆ˜์—์„œ๋Š” stdout ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๋ฐ˜๋ณตํ•ด ์ž„์˜ ์ฃผ์†Œ์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ชจ๋“  ๋ณดํ˜ธ๊ธฐ๋ฒ•์ด ์กด์žฌํ•˜๊ธฐ์— ๋ชจ๋“  OS๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜(environment ariable)๋Š” ๋งค๋ฒˆ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ ์ธ ๊ฐ’๋“ค์˜ ๋ชจ์ž„์œผ๋กœ, ์‹œ์Šคํ…œ์˜ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ถ”๊ฐ€..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Background: SigReturn-Oriented Programming

๋“ค์–ด๊ฐ€๋ฉฐ.. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋ฒ• ๊ฐœ๋… ์ž์ฒด๊ฐ€ ์—†์„ ๋•Œ์—๋Š” ์…ธ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœํ•ด ์ž„์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์„ ์ด์šฉํ•œ ์œ„ํ—™์ด ๊ณ„์†๋˜์ž ์…ธ์ฝ”๋“œ์˜ ์‹คํ–‰ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ NX ๋“ฑ์žฅ ๊ทธ๋Ÿฌ๋‚˜ ์–ผ๋งˆ๊ฐ€์ง€ ์•Š์•„ ์…ธ์ฝ”๋“ค๋ฅด ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  lib ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ๋ณดํ˜ธ๊ธฐ๋ฒ•์„ ์šฐํšŒํ•˜๋Š” RTL! ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ›๋ฅผ ์žฌํ™œ์šฉํ•ด ์ž„์˜ ํ•จ์ˆ˜๋ฅผ ์—ฐ์†ํ•ด ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ROP๋„ ๋“ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ทจ์•ฝ์ ์ด ์žˆ๋‹คํ•ด๋„ ๊ณต๊ฒฉ ๋Œ€์ƒ์˜ ๋ณดํ˜ธ ๊ธฐ๋ฒ• ๋˜๋Š” ์‹คํ–‰ ์ฝ”๋“œ์— ๋”ฐ๋ผ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๊ธฐ์— ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๊ณ„์† ๋ณดํ˜ธ๊ธฐ๋ฒ•์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค ์ด๋ฒˆ์—” 2014๋…„ ๋ฐœํ‘œํ•œ SROP๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์‹œ๊ทธ๋„(Signal)์„ ์•Œ์•„๋ด…์‹œ๋‹ค. Signal [๋ฆฌ๋ˆ…์Šค / ์œ ๋‹‰์Šค ] ์‹œ๊ทธ๋„์ด๋ž€? ์‹œ๊ทธ๋„(SIGNAL) ์ข…๋ฅ˜, ์ƒ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Master Canary

Master Canary ๋งˆ์Šคํ„ฐ ์นด๋‚˜๋ฆฌ๋ฅผ ์Šคํƒ ๋ฒ„ํผ์™€ ํ™•์ธํ•˜๋Š” ๋ฒ•! HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ์œ„ ์ฝ”๋“œ๊ฐ€ ํ•ต์‹ฌ์ธ๋“ฏ ์‹ถ์œผ๋ฉฐ, ๋ณด์‹œ๋ฉด.. 1๋ฒˆ ์˜ต์…˜์œผ๋กœ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑ/2๋ฒˆ์€ size๋ฅผ ์ž…๋ ฅ ํ•ด๋‹น ์ž…๋ ฅ size๋งŒํผ ์ž…๋ ฅ์„ ๋ฐ›๋„ค์š” ์ฆ‰, bof๊ฐ€ ๋ฐœ์ƒ๋˜๊ฒ ์ฃ ? ๋งˆ์ง€๋ง‰์€ read ํ•จ์ˆ˜๋กœ 1024๋ฐ”์ดํŠธ๋งŒํผ ์ž…๋ ฅ ๋ฐ›๊ธฐ Master canary๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด๊ธฐ์—(Partial RELRO, Canary)๋ฅผ ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ„์— get_shell()์˜ ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ NX๋„ ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ์นด๋‚˜๋ฆฌ๋Š” ๋กœ๋”์—์„œ ํ• ๋‹นํ•œ TLS ์˜์—ญ์— ์กด์žฌํ•˜๊ณ , ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” RW-๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜์—ญ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ๋งํฌ์— ๋Œ€ํ•˜์—ฌ ์ž์„ธํžˆ ์•Œ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์ถฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ค๊ณ„ํ•˜์ž๋ฉด.. 1๋ฒˆ์œผ๋กœ ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Exploit Tech: Master Canary

Master Canary ๋งˆ์Šคํ„ฐ ์นด๋‚˜๋ฆฌ๋ฅผ ์Šคํƒ ๋ฒ„ํผ์™€ ํ™•์ธํ•˜๋Š” ๋ฒ•! HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ๋งˆ์Šคํ„ฐ ์นด๋‚˜๋ฆฌ๋Š” ๋กœ๋”์—์„œ ํ• ๋‹นํ•œ TLS ์˜์—ญ์— ์กด์žฌํ•˜๊ณ , ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” RW-๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜์—ญ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ๋งํฌ์— ๋Œ€ํ•˜์—ฌ ์ž์„ธํžˆ ์•Œ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Background: Master Canary Stack Smashing Protector(SSP)๋Š” BOF๋กœ๋ถ€ํ„ฐ ret ๋ณดํ˜ธ ๊ธฐ๋ฒ•์œผ๋กœ์จ, ์Šคํƒ ๋ฒ„ํผ๊ฐ€ ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ž„์˜๋กœ ์ƒ์„ฑ๋œ ๊ฐ’์„ ๋ฒ„ํผ ๋งˆ์ง€๋ง‰์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. SSP ๋ณดํ˜ธ ๊ธฐ๋ฒ•์„ ๋ฐฐ์šธ ๋•Œ ์Šคํƒ ์นด๋‚˜๋ฆฌ์˜ ๊ฐ’์ด ์œ„์น˜ํ•œ dystopia050119.tistory.com ๋งˆ์Šคํ„ฐ ์นด๋‚˜๋ฆฌ๋Š” main ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ์ „์— ๋žœ๋ค์˜ ์นด๋‚˜๋ฆฌ๋ฅผ ์“ฐ๋ ˆ๋“œ๋งˆ๋‹ค ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” TLS์— ์ €์žฅ ์ด๋Š”..

๐Ÿ˜˜โ”‚๐Ÿ˜’ Expansion_Society/๐Ÿ˜’โ”‚My_History

ํฌํ„ธ ๋‰ด์Šค์˜ ์ด๋ฉด

- ํ˜„๋Œ€ ์–ธ๋ก ์— ์ œ๊ธฐ๋˜๋Š” ๋ฌธ์ œ์  ๊ณ ์ฐฐ - ๊ฐœ์š” 2022๋…„ MBC ์ „์šฉ๊ธฐ ํƒ‘์Šน ๋ถˆํ—ˆ์— ์‹œ์ž‘ ๊ฒฉ์ธ 20๋Œ€ ๋Œ€ํ†ต๋ น์˜ ๋ฏธ๊ตญ ์ˆœ๋ฐฉ ์ค‘ ๋ถ‰์–ด์ง„ ๋ฐœ์–ธ์˜ ์Ÿ์ ์ด์—ˆ๋˜ ์ •๋ถ€ ์ธก์˜ ์•…์˜์ ์œผ๋กœ ์ž๋ง‰์„ ๋‹ฌ์•„ ํ•œ๋ฏธ ๊ด€๊ณ„๋ฅผ ํ›ผ์†์‹œ์ผฐ๋‹ค๋Š” ์˜ํ˜น์ฒ˜๋Ÿผ ์ •๋ถ€ ์ธก์˜ ํŽธํŒŒ๋ณด๋„๋‚˜ ์˜ณ์€ ๋ฏธ๋””์–ด์˜ ๋Œ€ํ•œ ์Ÿ์ ์€ ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ๊พธ์ค€ํžˆ ๋…ผ์˜๋˜์–ด ์™”๋‹ค. ์ฆ‰ '์–ธ๋ก ์˜ ์ž์งˆ' ์ด ๋ฌด์—‡์ธ๊ฐ€? ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณธ๊ฒฉ์ ์ธ ๋…ผ์˜๊ฐ€ ํ™œ์„ฑํ™”๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์–ธ๋ก ์„ ๊ฒฝ๊ณ„ํ•˜๊ณ  ๋น„ํŒ์ ์œผ๋กœ ์ˆ˜์šฉํ•˜๋ผ๋Š” ์ง€์ ๋„ ๋งŽ๋‹ค. ๋””์ง€ํ„ธ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ์˜ ์ค‘์š”์„ฑ์ด ๋ฌด์—‡์ธ์ง€ ์ด ๊ธ€์„ ํ†ตํ•ด ์กฐ๊ธˆ ๋” ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ชฉ์ฐจ ์–ธ๋ก ์˜ ๊ธฐ๋Šฅ๊ณผ ๊ฐ€์น˜ ๊ฐ๊ด€์„ฑ ์ €ํ•˜ ์ง€๋ฐฐ์ ์ธ ์˜จ๋ผ์ธ ํ”Œ๋žซํผ ํ์‡„์  ์‚ฌ๊ณ  ํ™•์‚ฐ ์–ธ๋ก ์˜ ๊ธฐ๋Šฅ๊ณผ ๊ฐ€์น˜ ํฌํ“ฐ๋ฆฌ์ฆ˜ ๋…ผ์Ÿ ์–ธ๋ก ์€ ๊ณ ๋Œ€๋ถ€ํ„ฐ ์ด์–ด์ ธ ์˜จ ์ค‘์š”ํ•œ ์‚ฌํšŒ ๋‚ด ์ •๋ณด ๊ณต..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Background: Master Canary

Stack Smashing Protector(SSP)๋Š” BOF๋กœ๋ถ€ํ„ฐ ret ๋ณดํ˜ธ ๊ธฐ๋ฒ•์œผ๋กœ์จ, ์Šคํƒ ๋ฒ„ํผ๊ฐ€ ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ž„์˜๋กœ ์ƒ์„ฑ๋œ ๊ฐ’์„ ๋ฒ„ํผ ๋งˆ์ง€๋ง‰์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. SSP ๋ณดํ˜ธ ๊ธฐ๋ฒ•์„ ๋ฐฐ์šธ ๋•Œ ์Šคํƒ ์นด๋‚˜๋ฆฌ์˜ ๊ฐ’์ด ์œ„์น˜ํ•œ Thread Local Storage(TLS)์— ๋Œ€ํ•˜ ์ž์„ธํžˆ ๋ด…์‹œ๋‹ค. Thread Local Storage ์Šค๋ ˆ๋“œ์˜ ์ €์žฅ ๊ณต๊ฐ„ ELF ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ๊ฐ ๋ชฉ์ ์„ ๊ฐ€์ง„ ์„น์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰(.text), ์ดˆ๊ธฐํ™” X ์ „์—ญ ๋ณ€์ˆ˜(.data) ๋“ฑ์ด ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๋‹ฌ๋ฆฌ TLS ์˜์—ญ์€ ์Šค๋ ˆ๋“œ์˜ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์œผ๋กœ, ๋กœ๋”(Loader)์— ์˜ํ•ด ํ• ๋‹น๋จ ๋กœ๋”์—์„œ TLS ์—ฌ์—ญ์„ ํ• ๋‹นํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜์ธ init_tls ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด,..

Jastes
Jastes