wargame ๐Ÿดโ€โ˜ ๏ธ write-up 39

6. wolfman โ†’ darkelf

[wolfman@localhost wolfman]$ cat -n darkelf.c 1/* 2 The Lord of the BOF : The Fellowship of the BOF 3 - darkelf 4 - egghunter + buffer hunter + check length of argv[1] 5*/ 6 7#include 8#include 9 10extern char **environ; 11 12main(int argc, char *argv[]) 13{ 14char buffer[40]; 15int i; 16 17if(argc < 2){ 18printf("argv error\n"); 19exit(0); 20} 21 22// egghunter 23for(i=0; environ[i]; i++) 24mem..

5. orc โ†’ wolfman

์ผ๋‹จ ์–ด๋””์–ด๋””๊ฐ€ ๋‹ฌ๋ผ์กŒ์„์ง€ ์ฝ”๋“œ๋ฅผ ๋ณผ๊นŒ์š” [orc@localhost orc]$ cat -n wolfman.c 1/* 2 The Lord of the BOF : The Fellowship of the BOF 3 - wolfman 4 - egghunter + buffer hunter 5*/ 6 7#include 8#include 9 10extern char **environ; 11 12main(int argc, char *argv[]) 13{ 14char buffer[40]; 15int i; 16 17if(argc < 2){ 18printf("argv error\n"); 19exit(0); 20} 21 22// egghunter 23for(i=0; environ[i]; i++) 24memset(environ..

4. goblin โ†’ orc

์•ˆ๋…•ํ•˜์„ธ์š” ์–ด๋А๋ง 3๋ฒˆ๋ฌธ์ œ๊นŒ์ง€ ํด๋ฆฌ์–ดํ–ˆ๋„ค์š”ใ…Ž ์ €ํฌ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ bof๊ณต๊ฒฉ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์€ 'ret๋ฅผ ์–ด๋А ์ฃผ์†Œ๋กœ ๋ฎ๋А๋ƒ'์˜€๋Š”๋ฐ์š”, 1. buffer ๋ณ€์ˆ˜2. argv[1]3. ํ™˜๊ฒฝ๋ณ€์ˆ˜์˜€์ฃ  ์—ฌ๊ธฐ๊นŒ์ง€ ์ž˜ ํ‘ธ์…จ๋‹ค๋ฉด ์•„๋งˆ ret๋ฅผ ๋ฎ์„ ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ ์ฏค์€ ์‹์€์ฃฝ ๋จน๊ธฐ ์ผ ๊ฒ๋‹ˆ๋‹ค.(๊ทธ๋ž˜๋„ ๋‹ค์‹œ ์ •๋ฆฌ๋ฅผ ์œ„ํ•ดใ…Ž) ์ œ๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€์ธ๋ฐ์š”, ๋จผ์ € gdb๋ฅผ ํ†ตํ•ด ๋œฏ์–ด๋ณด๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.gdb๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ, ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋“ฑ์˜ ๊ฐœ๋…๋“ค์„ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ์— ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.๋˜ํ•œ, ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ํž˜์ด ๋˜์ฃผ์ฃ !! ๋‘๋ฒˆ์งธ๋Š” ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์งœ์„œ ํ•ด๋ณด๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.์ œ๊ฐ€ ์•ž์œผ๋กœ ๋ฌธ์ œํ’€์ด์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•  ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•˜๊ตฌ์š”ใ…Žgate๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ˆ์‹œ..

3. cobolt โ†’ goblin

id : coboltpw : hacking exposed ์ด๋ฒˆ ๋ฌธ์ œ๋Š” argv๋Œ€์‹  stdin์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. argv๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, 'ํ™˜๊ฒฝ๋ณ€์ˆ˜'๋ฅผ ์ด์šฉํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”. [cobolt@localhost cobolt]$ cat goblin.c /* The Lord of the BOF : The Fellowship of the BOF - goblin - small buffer + stdin */ int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); } ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ž€?ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” OS๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ์‹œ์ผœ ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ์˜์—ญ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ณ ์ •์ ์ด๋ผ, ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋†“๊ณ  ์ฃผ์†Œ๋ฅผ ์ฐพ์•„ re..

2. gremlin โ†’ cobolt

id : gremlinpw : hello bof world ๋จผ์ € ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.[gremlin@localhost gremlin]$ cat cobolt.c /* The Lord of the BOF : The Fellowship of the BOF - cobolt - small buffer */ int main(int argc, char *argv[]) { char buffer[16]; if(argc < 2){ printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } gate์™€ ๋‹ฌ๋ผ์ง„ ์ ์€ buffer์˜ ํฌ๊ธฐ๊ฐ€ 256์—์„œ 16์œผ๋กœ ์—„์ฒญ ์ž‘์•„์กŒ๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค. bufffer๋กœ ์ง์ ‘ ์ด๋™ํ•˜์—ฌ ์‹คํ–‰์‹œํ‚ค๊ธฐ๋Š” ํž˜๋“ค..

1. gate โ†’ gremlin

id : gate pw : gate ๋กœ๊ทธ์ธ ํ•ด์ค๋‹ˆ๋‹ค. gremlin.c ์†Œ์Šค์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.[gate@localhost gate]$ cat gremlin.c /* The Lord of the BOF : The Fellowship of the BOF - gremlin - simple BOF */ int main(int argc, char *argv[]) { char buffer[256]; if(argc < 2){ printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } buffer์˜ ํฌ๊ธฐ๊ฐ€ 256byte์ด๋‹ˆ, ์‰˜์ฝ”๋“œ๋ฅผ ๋„ฃ๊ธฐ์— ์ถฉ๋ถ„ํ• ๊ฒƒ ๊ฐ™๋„ค์š”..ใ…Ž ์‹คํ–‰๋ ๋•Œ ๋”๋ฏธ(dummy; ์“ฐ๋ ˆ๊ธฐ)๊ฐ’์ด ์ถ”๊ฐ€๋˜๋Š”์ง€ gdb๋ฅผ..

LoB ์›์ •๋Œ€ start

LoB๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ’€๊ธฐ์ „์— ๊ธฐ๋ณธ ์…‹ํŒ…๊ณผ ๋ช‡๊ฐ€์ง€ ์•Œ์•„๋‘๋ฉด ํŽธํ•œ ํŒ๋“ค์„ ์ •๋ฆฌํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. LoB๋ž€?LoB(Lord of BufferOverFlow)๋Š” ํ•ด์ปค์Šค์ฟจ์—์„œ ์ œ๊ณตํ•˜๋Š” wargame์ž…๋‹ˆ๋‹ค.์ด 20๊ฐœ์˜ level๋“ค์„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ BufferOverFlow ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜์—ฌ ํ‘ธ๋Š” ํ˜•์‹์ด์ฃ .my-pass๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ level์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์…‹ํŒ…์•„๋ž˜ ์ฃผ์†Œ์—์„œ LoB vmware์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์Šต๋‹ˆ๋‹ค.(vmware๋Š” ์žˆ์œผ์‹œ๊ฒ ์ฃ ..? download....)http://hackerschool.org/TheLordofBOF/TheLordOfTheBOF_redhat_bootable.zip ์••์ถ•์„ ํ’€๊ณ  ํด๋” ์†์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด, ์œ„์™€๊ฐ™์€ ํŒŒ์ผ์ด ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์‹คํ–‰์‹œํ‚ค๋ฉด LoB์— ์ ‘์†์ด ๋ฉ๋‹ˆ๋‹ค. ..