SH1R0_HACKER

1. gate -> gremlin 본문

System/The Lord of BOF

1. gate -> gremlin

SH1R0_HACKER 2020. 10. 18. 16:37

 

The Lord of BOF에 대한 자세한 정보는 아래에서 확인할 수 있습니다.

 

[BOF-BufferOverflow- 원정대란?]
비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지
수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다.

 

www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885

 

https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885

[BOF-BufferOverflow- 원정대란?] 비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지 수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다. [접속 방법] BOF 원정대는 도메

www.hackerschool.org

 

login : gate

password : gate


[ 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);
}

딱봐도 취약해 보이는 부분이 눈에 들어온다.

strcpy(buffer, argv[1])

사용자로부터 인자를 입력받은 후 문자열을 복사해서 버퍼에 저장하는 strcpy

 

stack5에서 실패한 쉘코드를 넣어서 풀어보자.


[ GDB 분석 ]

 

칼리 리눅스로 풀다가 putty로 접속하니 간지가 안난다.

%ebp-256 을 eax로 이동하는 main+62 지점에 브포를 걸어보자.

권한이 없다고한다.

gremlin 실행파일을 복사해서 다른이름으로 하나 더 만들어주자.

난 gremlin2로 만들어줬다.

실행이 아주 잘된다.

0xbffff9f8에 AAAA가 아주 잘 들어갔다.

 

buffer 주소 : 0xbffff9f8

 

이제 buffer와 ret의 거리를 구하자.

아래의 사이트를 이용하면 엄청 쉽게 구할 수 있다.

projects.jason-rush.com/tools/buffer-overflow-eip-offset-string-generator/

 

Buffer Overflow EIP Offset String Generator

This tool is used to find/calculate the offset in an exploit string where your address to overwrite EIP should be. This is the same as the Metasploit, pvefindaddr, and Mona scripts: pattern_create …

projects.jason-rush.com

ret에 브포걸고 길이 500정도로 해서 넣은 후 오프셋을 구했다.

buffer와 ret 거리 : 260byte

 

이제 쉘코드를 구해오자.

stack5를 풀 때 사용했던 25byte 쉘코드를 들고왔다.

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80

 

페이로드를 작성해서 공격하자.

'System > The Lord of BOF' 카테고리의 다른 글

6. wolfman -> darkelf  (0) 2020.10.24
5. orc -> wolfman  (0) 2020.10.22
4. goblin -> orc  (0) 2020.10.22
3. cobolt -> goblin  (0) 2020.10.21
2. gremlin -> cobolt  (0) 2020.10.19