티스토리 뷰

쉘 쇼크 취약점에 대해 공부를 해 본 내용을 정리 해 보고자 한다.

글 쓰다가 중간에 거의 다 쓴 글이 날아가서 매우 화가 나는데 정신 차리고 다시 정리 해 보겠다.

ShellShock(CVE-2014-6271) 는 2014년에 발견된 bash 취약점 이다.

bash 취약점이기 때문에 bash 를 기반으로 한 OS나 서버에서 굉장히 위험하게 작용 하는 취약점이다.

 

 

 

-ShellShock(CVE-2014-6271)

함수 정의 뒤에 문자열을 후행 처리하는 GNU Bash는 환경 변수를 통해 원격 공격자가 임의의 코드를 실행할 수 있게 함.

HTTP 서버, 지정되지 않은 DHCP 클라이언트가 실행하는 스크립트 및 환경 설정이 Bash 실행 ( "ShellShock")의 권한 경계에서 발생함.

 

-PoC(Proof of Concept)

env X='() { :; }; echo "CVE-2014-6271 vulnerable"' bash -c id

PoC는 개념 증명이라고 하며 취약점이 발생 하면 그 취약점의 동작원리를 알 수 있도록 하는 개념 증명 코드이다.

 

-환경 변수 함수 선언

전에 pwnable.kr cmd1 문제를 풀이 하면서 환경변수에 대해서 이야기 했었다.

https://pororiri.tistory.com/21

 

pwnable.kr)cmd1_리눅스 환경변수_strstr()

이번학기 목표를 pwnable.kr 를 hacker's secret 빼고 다 풀어 보는 것으로 잡았다. 그래서 오늘도 포너블문제 두개를 풀었는데 그것을 한번 풀이 해 보도록 하겠다. 이 문제에서 알아야 할 개념은 리눅스의 환경..

pororiri.tistory.com

위 글에서 얘기 했듯이 리눅스에서는 윈도우 처럼 환경변수 설정이 가능하다.

이 때 함수도 환경변수 설정이 가능하다.

 

 

환경변수에서 함수 설정은 위와 같이 env(or export) 함수 이름='(){실행할 내용;}' 으로 설정 할 수 있다.

여기서 쉘쇼크를 일으키려면 함수를 선언한 뒤에 원하는 동작명령을 입력하고 bash를 실행하면 함수 선언을 하고 선언문 뒤에 있는 명령이 실행되게 된다.

 

-이유?

bash를 실행하면 환경변수 값을 세팅하고 환경변수에 저장 되어 있는 함수를 선언한다.

이때 함수 선언문 뒤에 있는 명령도 bash가 읽게 되고 해당 명령을 실행하여 shellshock 취약점이 발생하게 된다.

 

 

 

 

 

Reference

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271

 

 

'Security > System' 카테고리의 다른 글

objdump 명령어 옵션 정리  (1) 2019.03.29
리눅스 쉘 명령어 모음  (0) 2019.03.22
gdb & objdump 사용법 정리  (0) 2019.03.15
펌웨어분석) 펌웨어 분석 툴 binwalk 사용법  (0) 2019.01.31
펌웨어(firmware)  (0) 2019.01.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함