shellcode 3

[Dreamhack] basic_exploitation_000

Description이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_000)의 바이너리와 소스 코드가 주어집니다.프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요."flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.플래그의 형식은 DH{...} 입니다.소스코드 분석 먼저 main()함수를 살펴보면buf 크기는 0x80(128바이트)이지만 scanf("%141s", buf)를 사용해 최대 141바이트를 입력받을 수 있다.buf의 크기보다 더 많은 데이터를 입력받을 수 있어서 오버 플로우 발생이 가능하다. initialize()함수를 보면alarm(30);을 호출해서 30초 후에 SIGALRM 시그널이 발생하도록 설정돼있..

[Dreamhack] shell_basic

Description입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다.main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다.flag 파일의 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다.감 잡기 어려우신 분들은 아래 코드를 가지고 먼저 연습해보세요!플래그 형식은 DH{...} 입니다. DH{와 }도 모두 포함하여 인증해야 합니다.  어셈블리어로 먼저 shellcode 파일을 생성해줌.nano write.asm //write.asm 파일 생성  먼저 문제를 보면 flag위치는 '/home/shell_basic/flag_name_is_loooooong'라고 함...

[시스템 해킹] 셸코드(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..