본문 바로가기

shellcode 만들기2

shellcode 만들기 2부 1부에 이어서 간단하게 만들어보겠습니다. #include int main() { execve("/bin/sh", NULL, NULL); } gcc -o shell shell.c -static 옵션을 주어서 컴파일 합시다. 쉘 코드를 만들 것이니, 프롤로그 에필로그를 제외하고 execve함수에 관한 자료들만 모으겠습니다. 어셈블리 파일명은 vi shellasm.s 로 하였습니다. 아래 처럼 입력하여 주세요. .section .data name: .string "" .section .text .global _start _start: 왜 순서가 번대로냐 하실텐데, 인자에 관해서 공부좀 하시면 아실거예요. execve를 부르는 시스템 호출 59부터 차례대로 입력해줍니다. 그 다음 입력해줄 명령은 as -o sh.. 2017. 9. 16.
shellcode 만들기 1부 - Higher Language Version - #include int main( execve("/bin/sh", NULL, NULL) ) 쉘 코드를 만들기전에 우리가 원하는 쉘코드를 생각해볼 필요가 있습니다. C언어를 배우신 분이라면 위 코드는 익숙하실 겁니다. 위 코드를 실행하게되면 /bin/sh 프로그램 흐름으로 바뀌게 될 것입니다. 하나의 악마의 목적이라고 할 수 있죠(해킹에 있어서). execve는 완벽하다고도 합니다. 왜냐하면 누군가가 성공적으로 exploit을 성공하면 root privileges(루트 권한) 을 던져주기 때문입니다. execve는 null terminated pointers to string literals로서 3개의 인자를 가집니다. 그러나 위 코드에서 보듯이 문자열 리.. 2017. 9. 16.