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