Universidad de Magallanes

Investigación


Dirección de Investigación


facebook twitter youtube
02 de agosto del 2019

쉘코드 예제

어셈블리 코드를 sys 호출 번호 59를 실행하는 예로 간주합니다. Sys 호출 번호 59ss_execve 호출 및 입력 파일 이름으로 걸립니다 (/bin/sh 아래 예제에서) 버퍼 오버플로 같은 것 들의 매우 기본적인 이해로 시작할 수 있습니다. 버퍼 오버플로는 프로그램 작성자가 버퍼 크기에 대한 경계 검사를 수행하는 것을 잊어버리고 공격자가 버퍼가 보유할 수 있는 데이터를 더 많이 넣을 수 있는 조건입니다. 그런 다음 이 데이터가 인접한 메모리 영역으로 유출됩니다. 마지막 블로그에서 설명한 것처럼 스택 레이아웃의 예로, 취약점이 있는 경우 버퍼를 오버플로하여 반환 주소를 보유한 메모리 위치에 쓸 수 있습니다. null 바이트를 포함하는 셸 코드에서 null 없는 셸 코드를 생성하려면 동일한 효과를 가지만 null이 없는 명령으로 영을 포함하는 컴퓨터 명령을 대체할 수 있습니다. 예를 들어 IA-32 아키텍처에서 이 명령을 대체할 수 있습니다. 예를 들어 인텔 아키텍처에는 50개 이상의 NOP 동등한 명령이 있습니다. 악의적인 프로그래머는 바이러스 나 웜이 전파 될 때마다 암호화되지 않은 암호 해독 엔진을 다시 작성하여이 전략으로부터 다형성 코드를 보호하려고 노력했습니다. 정교한 패턴 분석은 바이러스 백신 소프트웨어에 의해 사용되어 이러한 맬웨어를 안정적으로 탐지하기 위해 암호 해독 엔진의 다양한 돌연변이 내에서 기본 패턴을 찾습니다. 예를 들어, ADMutate (pdf) 프로그램은 Ktwo (https://www.ktwo.ca/security.html)에 의해 발표되었다.

버퍼 오버플로 악용의 모양을 변경하여 IDS 서명 검사를 무효화하도록 설계된 ADMutate입니다. 이 기술은 실제로 바이러스 작성자로부터 빌린 것입니다. 돌연변이 엔진에는 다음과 같은 구성 요소가 포함되어 있습니다 : 참고 : 나는 `네트워크 보안의 최근 동향`의 일환으로 내 대학에서 Shellcode 주입에 대한 이야기와 데모를했다. 슬라이드는 여기에서 찾을 수 있습니다. printf(“쉘코드 길이: %dn”, (int)strlen(코드)); 해킹에서 셸 코드는 소프트웨어 취약점을 악용할 때 페이로드로 사용되는 작은 코드입니다. 일반적으로 공격자가 손상된 컴퓨터를 제어할 수 있는 명령 셸을 시작하기 때문에 “셸코드”라고 하지만 유사한 작업을 수행하는 모든 코드는 shellcode라고 할 수 있습니다. 페이로드의 기능은 단순히 셸을 생성하는 것에국한되지 않기 때문에 셸 코드라는 이름이 충분하지 않다고 제안하는 사람들도 있습니다. [1] 그러나 용어를 대체하려는 시도는 널리 받아들여지지 않았다. 셸 코드는 일반적으로 컴퓨터 코드로 작성됩니다. 글쎄, 그것은 작동합니다. 이제 간단한 C 프로그램을 사용하여 다른 예제를 시도해 보겠습니다. 이 예제에서는 종료(0)에 대한 시스템 호출을 사용하고 있으며 오류 없이 종료되며 프로그램은 다음과 같습니다.

이 예제에서는 메시지 상자만 팝업한다는 점에서는 유용하지 않지만 Windows 셸코딩을 사용할 때 몇 가지 중요한 개념을 보여 줍니다. 위의 대부분의 예제에서 사용되는 정적 주소 지정은 몇 분 내에 작업 셸 코드를 채찍질하는 강력하고 쉬운 방법이 될 수 있습니다. 이 예제에서는 특정 DLL이 프로세스 공간에 로드되도록 하는 프로세스를 보여 주는 예제입니다. MessageBoxA 함수의 주소가 있으면 ExitProcess를 사용하여 프로그램이 충돌없이 종료되는지 확인합니다. 이진을 처리하는 스택 이나 메모리의 다른 부분에서 직접 원시 익스플로잇 코드를 실행하려면 대상 컴퓨터의 원시 컴퓨터 명령 집합을 나타내는 어셈블리 코드가 필요합니다. 셸 코드는 Unix/Linuxshell의 `/bin/sh`또는 DOS 및 MicrosoftWindows의 command.com 셸과 같은 셸을 실행하는 어셈블리 언어 프로그램입니다. learnshell.org 대화식으로 셸 명령을 사용해 보십시오.

inicio atrás arriba

DESTACADOS

  • LINKS


  • Dirección de Investigación

    Investigación • Avenida Bulnes 01890 • Punta Arenas • Chile
    Teléfono: +56 61 2 209 397 • Email: dir.investigacion@umag.cl