Hacking/FC3(Fedora core)

    LOB 페도라 FC3 evil_wizard -> dark_stone

    ※ 저번 문제와 달라지점은 로컬환경에서 리모트 환경으로 바뀐것과 입력함수가 바꼇다는 점이다. 저번문제와 똑같이 Got Overwirte 로 풀어보겠다. ※ 구해야할 것 strcpy@plt printf@got printf@plt /bin/sh bss ppr system ----------------------------------------------------------------------- 순서대로 strcpy@plt, printf@plt, printf@got 이다. 비밀번호는 let there be light 이다.

    LOB 페도라 FC3 hell_fire -> evil_wizard

    주석에 Got Overwriting 가 명시되어있으므로 Got Overwriting 로 풀어보겠다.strcpy@plt 를 이용하여 printf@got 를 system 함수의 주소로 한 바이트씩 덮는다.그리고 printf@plt 를 호출하여 systm 함수를 실행시킬수있다.그러므로 우리가 구해야할주소는 strcpy@plt, ppr, system@plt, bss영역주소, /bin/sh 주소를 구해야한다. strcpy@plt의 주소는 0x0804894이다. ppr의 주소는 0x0804854f printf@plt : 0x08048424printf@got: 0x08049884 System: 0x7507c0 c0: 0x8048188 07: 0x08048148 75: 0x8048504 00: 0x08048128 bi..

    LOB 페도라 FC3 dark_eyes -> hell_fire

    ※ 소스를 보면 fgets로 temp에 입력받은후 sfp를 세이브하고 temp에 입력받은값을 버퍼에 복사한다음에 세이브해놨던 sfp를 복구시킨다. 푸는 방법은 system 함수내에 do_system 함수가 있고 그안에 execve 로 쉘을 실행시키는 부분을 이용해서 풀수있다, system 함수안을 보면 do_system 함수가 있고 do_system 함수 안을 보면 execve 함수가 있다. RET을 execve 함수의 인자를 받기 시작하는 do_system+1124로 돌리면된다. 페이로드: 버퍼268+ret(do_system+1124) 비밀번호는 sign me up 이다.

    LOB 페도라 FC3 iron_golem -> dark_eyes

    소스를 보면 sfp를 세이브했다가 버퍼를 복사후 다시 복구시킨다. sfp를 복구시키기 때문에 fake ebp같은 ebp조작은 불가능하다. execve 함수를 이용해서 Ret sleding 기법으로 풀어보겠다. Ret 주소는 0x080484b9 이다. execve 함수의 주소는 0x7a5490 이다. 0x80484b9 를 자세히 보면 ASLR이 적용되어 있기 때문에 랜덤하게 바뀌는 스택이 있다. 안변하는 스택중에 0x0070eab6을 자세히 보겠다. 값이 별로다.다음에 있는 0x0083eff4를 보면 그 다음이 NULL이어서 적당해보인다. (NULL로 함수 인자구분) 쉘을 띄우는 파일을 작성해주고 심볼링링크를 \x3c\ed\83 으로 걸어준다. 페이로드: 버퍼[280] + ret*3 + &execve 비밀..

    LOB 페도라 FC3 gate -> iron_golem

    FC3는 Redhat 9.0과 다르게 여러가지 보호기법들이 추가되었다.1. Exec-Shieled : 스택에 있는 코드 실행 불가2. ASLR : 랜덤 스택3. Ascill Armor : 연속적인 함수 호출 불가 4. Stack Dummy : 스택 사이에 더미를 넣음 RTL 과 fake ebp를 이용해서 풀수있다.RTL을 이용해 execl 함수로 쉘을 띄워보겠다. execl (실행할 파일 , 인자1, 인자2, ..., NULL);execl은 마지막 인자가 NULL이 와야한다. 이부분은 got를 이용할것이다.objdump에 -h 옵션을 줘서 확인하도록 하겠다. got의 주소는 0x8049618이다gdb로 더 자세히 확인해보겠다. 첫번째 인자가 0x8049618이라 할때 첫번째인자가 0x804954c가되고 ..