셸코드 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;Shellcode,Shell Code | ;Shellcode,Shell Code | ||
9번째 줄: | 8번째 줄: | ||
셸코드는 대상에 따라 로컬(Local) 및 원격(Remote) Shell Code로 나눌 수 있으며, 그 자체가 Shell을 실행하지는 않지만 외부의 네트워크로부터 특정 파일을 다운로드하고 실행하는(Download & Execute) 하는 경우도 있다. | 셸코드는 대상에 따라 로컬(Local) 및 원격(Remote) Shell Code로 나눌 수 있으며, 그 자체가 Shell을 실행하지는 않지만 외부의 네트워크로부터 특정 파일을 다운로드하고 실행하는(Download & Execute) 하는 경우도 있다. | ||
===로컬 쉘코드=== | |||
공격자가 대상 시스템에 대한 제한적인(혹은 완전한) 접근 권한을 가지고 있는 경우, | ====로컬 쉘코드=== | ||
Local Shellcode는 공격자가 대상 시스템에 대한 제한적인(혹은 완전한) 접근 권한을 가지고 있는 경우, | |||
버퍼 오버플로(Buffer Overflow) 등의 취약점이 있는 높은 권한(대부분 root)을 가진 프로세스를 공격하여, | 버퍼 오버플로(Buffer Overflow) 등의 취약점이 있는 높은 권한(대부분 root)을 가진 프로세스를 공격하여, | ||
해당 프로세스와 같은 높은 권한을 획득하기 위해 사용된다. | 해당 프로세스와 같은 높은 권한을 획득하기 위해 사용된다. | ||
===원격 쉘코드=== | ===원격 쉘코드=== | ||
공격자가 네트워크상의 다른 대상 시스템에 한 취약점이 있는 프로세스를 공격하고자 하는 경우 사용한다. | 원격 Shellcode는 공격자가 네트워크상의 다른 대상 시스템에 한 취약점이 있는 프로세스를 공격하고자 하는 경우 사용한다. | ||
일반적으로 원격 쉘은 공격자가 대상 시스템의 Shell에 대한 접근을 허용하기 위해 표준 TCP/IP 소켓 연결을 사용하며, | 일반적으로 원격 쉘은 공격자가 대상 시스템의 Shell에 대한 접근을 허용하기 위해 표준 TCP/IP 소켓 연결을 사용하며, | ||
이 때 연결이 어떤 방식으로 이루어졌는가에 따라 다음과 같이 분류될 수 있다. | 이 때 연결이 어떤 방식으로 이루어졌는가에 따라 다음과 같이 분류될 수 있다. | ||
===리버스 쉘코드=== | ===리버스 쉘코드=== | ||
Reverse Shellcode는 목표 시스템으로부터 공격자에게 연결을 요청하도록 하기에 커넥백(Conntect-Back) 쉘코드라고 한다. | |||
===바인드 쉘코드=== | ===바인드 쉘코드=== | ||
Bind Shellcode는 쉘코드가 목표 시스템의 특정 포트를 바인드하여 공격자가 대상 시스템에 연결 할 수 있도록 한다. | |||
===다운로드 및 실행 쉘코드=== | ===다운로드 및 실행 쉘코드=== | ||
;Download & Execute Shellcode | ;Download & Execute Shellcode | ||
다운로드 및 실행 쉘코드는 쉘코드가 직접 쉘을 실행하지는 않지만, | 다운로드 및 실행 쉘코드는 쉘코드가 직접 쉘을 실행하지는 않지만, | ||
주로 외부의 네트워크로부터 Malware(악성코드)를 다운로드하고 실행할 때 주로 사용된다. | 주로 외부의 네트워크로부터 Malware(악성코드)를 다운로드하고 실행할 때 주로 사용된다. | ||
특히 요즘에는 대상 시스템이 악성 페이지에 방문하는 것만으로도, | 특히 요즘에는 대상 시스템이 악성 페이지에 방문하는 것만으로도, | ||
사용자 몰라 악성코드를 내려받아 실행하는 Drive By Download(드라이브 바이 다운로드) 공격에 널리 사용된다. | 사용자 몰라 악성코드를 내려받아 실행하는 Drive By Download(드라이브 바이 다운로드) 공격에 널리 사용된다. |