Code::Security/비박스(BWAPP)

비박스(bWAPP) A9 Shellshock Vulnerability (CGI)

태군 코드 2022. 11. 11. 13:57
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

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

shellshock.php 페이지의 화면입니다. 현재 저는 윈도우 환경으로 요청 URL을 찾을 수 없다고 나오는 것입니다. 추후 유닉스 환경에서 비박스 환경 구축부터 알아보고, 여기서는 해당 취약점이 어떻게 발생하는지 알아보도록 하겠습니다.

 

https://www.cvedetails.com/cve/CVE-2014-6271/?q=CVE-2014-6271

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

 

참고

KISA GNU Bash 원격코드실행 취약점 이슈 분석 및 대응방안

https://www.exploit-db.com/exploits/34765

반응형