티스토리 뷰
쉘 쇼크 취약점에 대해 공부를 해 본 내용을 정리 해 보고자 한다.
글 쓰다가 중간에 거의 다 쓴 글이 날아가서 매우 화가 나는데 정신 차리고 다시 정리 해 보겠다.
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
위 글에서 얘기 했듯이 리눅스에서는 윈도우 처럼 환경변수 설정이 가능하다.
이 때 함수도 환경변수 설정이 가능하다.
환경변수에서 함수 설정은 위와 같이 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
- reversing.kr
- 뷰모델
- AndroidX
- 리버싱기초
- 리버싱.kr
- 웹 MVC
- 스프링부트
- 동적분석
- CTF
- 코드로 배우는 스프링 부트
- Java
- 포너블.kr
- writeup
- androidstudio
- 모바일리버싱
- exception
- pwnable.kr
- 앱분석
- reversing.kr풀이
- 안드로이드
- MVVM
- 칼리리눅스
- 정보보안
- Spring
- 에러
- DataBinding
- 자바
- NumberFormatException
- 펌웨어 분석
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |