이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A9 - Shellshock Vulnerability (CGI)
Shellshock(셸 쇼크)는 광범위하게 사용되는 유닉스 Bash에서 발생하는 보안 버그입니다.
Shell(셸)은 운영체제상에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램입니다. 즉 다시 말해서, 운영체제의 커널과 사용자 사이를 이어주는 역할을 하며 사용자의 명령어를 해석하고 운영체제가 알아들을 수 있도록 도와주는 명령어 해석기입니다. Linux에서 사용하는 Shell의 종류로는 다음과 같은 것들이 있습니다.
bash : Bourne-Again Shell(프롬프트 : #, 경로 : /bin/bash). 가장 대표적으로 사용.
sh : Bourne Shell(프롬프트 : $, 경로 : /bin/sh)
csh : C Shell(프롬프트 : %, 경로 : /bin/csh)
ksh : Kron Shell(프롬프트 : $, 경로 : /bin/ksh)
tcsh : TENEX C Shell(프롬프트 : >, 경로 : /bin/tcsh)
pwn은 pwnable 약자로 시스템 해킹을 뜻 합니다. pwnable 명칭의 유래는 한 유저가 게임에서 승리했는데, 이때 own!이라고 입력할 것을 pwn!라고 입력했고 이 말이 유행을 타서 굳어졌다는 말이 있습니다.
shellshock.php 페이지의 화면입니다. 현재 저는 윈도우 환경으로 요청 URL을 찾을 수 없다고 나오는 것입니다. 추후 유닉스 환경에서 비박스 환경 구축부터 알아보고, 여기서는 해당 취약점이 어떻게 발생하는지 알아보도록 하겠습니다.
CVE 사이트를 확인해 보면 ShellShock 취약점은 CVE-2014-6271로 명명되어 있으며 CVE 점수는 10점 만점인 것을 알 수 있습니다. 내용을 살펴보면 4.3을 통한 GNU Bash는 OpenSSH sshd의 ForceCommand 기능, Apache의 mod_cgi 및 mod_cgid 모듈과 관련된 벡터에 의해 입증된 바와 같이 환경 변수 값에서 함수 정의 후 후행 문자열을 처리하여 원격 공격자가 제작된 환경을 통해 임의의 코드를 실행할 수 있도록 합니다.라고 확인할 수 있습니다.
해당 취약점은 Bash 셸 환경 변수 등록 시 함수 형태로 등록이 가능하여 취약 버전 셸에서 환경 변수 등록 시 함수 선언 끝에 조작된 값을 이어서 삽입하면 원하는 명령을 수행할 수 있는 취약점입니다.
Bash 환경 변수 선언
export shelltest='ShellshockTEST'
환경 변수로 선언된 shelltest에 대하여 값 확인
printenv shelltest
Bash의 함수 선언 및 함수 등록
shelltest() { echo ShellshockTest; }
export shelltest
환경변수의 값을 함수와 비슷한 형태로 재정의
export shelltest=' () { echo ShellshockTest; } '
공격 구문
export shelltest=' () { echo ShellshockTest; };id;uname; '
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
참고
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A9 phpMyAdmin BBCode Tag XSS (0) | 2022.11.11 |
---|---|
비박스(bWAPP) A9 PHP CGI Remote Code Execution (0) | 2022.10.31 |
비박스(bWAPP) A9 Heartbleed Vulnerability (0) | 2022.10.24 |
비박스(bWAPP) A9 Drupal SQL Injection (Drupageddon) (0) | 2022.10.24 |
비박스(bWAPP) A9 Buffer Overflow (Local) (0) | 2022.10.21 |