셸코드 2

[시스템 해킹] 셸코드(Shellcode) 3- execve 셸코드/ execve shellcode와 orw shellcode 차이점

execve 셸코드? 임의의 프로그램을 실행하는 셸코드이다.execve를 이용하면 서버의 셸을 획득할 수 있음.특징으론 execve 시스템 콜만으로 구성이 됨. syscall rax arg0 (rdi) arg1 (rsi) arg2 (rdx) execve0x3bconst char *filenameconst char *const *argvconst char *const *envp*argv: 실행파일에 넘겨줄 인자, envp: 환경변수우리는 sh만 실행하면 되기 때문에 execve("/bin/sh", null, null)을 실행하는 것을 목표로 셸코드를 작성해볼거임. # execve.c 파일 생성nano execve.c# execve.c 파일 컴파일gcc -o execve execve.c -masm=i..

[시스템 해킹] 셸코드(Shellcode) 1- orw 셸코드 작성 open & read & write

셸코드(Shellcode)?익스플로잇을 위해 제작된 어셈블리어로 작성된 작은 코드 조각임.주로 셸을 획득하기 위해 셸코드를 사용한다. *익스플로잇은 소프트웨어나 하드웨어의 취약점을 이용해 개발자가 의도하지 않은 동작을 유발하는 코드나 기법. orw셸코드파일을 열고(open), 읽은(read) 뒤 화면에 출력(write)해주는 셸코드이다. 구현하려는 셸코드의 동작을 C언어 형식의 의사코드로 표현하면 아래와 같다.char buf[0x30]; // 0x30(48) 바이트 크기의 버퍼 선언 (데이터를 저장할 메모리 공간)int fd = open("/tmp/flag", RD_ONLY, NULL); // "/tmp/flag" 파일을 읽기 전용(RD_ONLY)으로 열고 파일 디스크립터(fd) 반환 ..