⊙ 문제의 소스를 보자) |
대략적인 구성은 LEVEL2와 같으므로 바로 본론으로 들어갑니다.
1) 셸코드를 환경변수로.... | |
① 그럼 일단 올려보고 확인해 봅시다.
+ env 명령으로 해당 환경변수를 확인할수 있습니다. |
2) 환경변수 주소를 알아보자! [Level2 참조] |
[gremlin@localhost gremlin]$ ./getenv SHCODE 0xbfffff06 |
3) 공격문 작성 | |||||||||
완료!! |
[여기서 잠깐] 왜! tee를 사용하는가. |
① # tee | sh 실행으로 간단한 테스트를 해보자
+ 이와 같이 tee와 파이프가"|" 동등한 자식프로세스로 연결되면서 tee의 입력 받은 라인이 파이프를 통해 쉘(Shell)로 전달 된다. ② Level3의 공격문의 이해
+ 즉 위의 그림과 같이 (python 인터프리터 공격문 ; tee) | ./goblin 을 실행하면 소괄호"()" 로 그룹화 하여 하나의 명령문으로 서브쉘 에서 실행한다. + ①번과 같이 tee와 파이프가 연결되어 있으므로 셸코드를 실행시키자 마자 죽지 않고 + 입력 받은 라인은 다시 표준 출력 함으로써 명령문(my-pass)을 실행시킬 수 있다.
*표준입력으로부터 읽어서 표준출력은 할수 있는 명령어면 다 가능하다 (예: cat) |
cobolt : "hacking exposed"
'워게임(WarGame) > BOF원정대(LOF)' 카테고리의 다른 글
[LEVEL5] orc -> wolfman (egghunter + bufferhunter) (0) | 2011.06.02 |
---|---|
[LEVEL4] goblin -> orc (egghunter) (1) | 2011.06.02 |
[LEVEL2] gremlin -> cobolt (small buffer) (0) | 2011.06.02 |
[LEVEL1] gate -> gremlin (simple bof) (1) | 2011.06.02 |
BOF 원정대 출항 준비 : 네트워크 설정 (0) | 2011.05.29 |