유형
RCE(remote code execution)
CWE-119
exploit-db
https://www.exploit-db.com/exploits/44294
분석
- ASM.JS & JIT SPRAY & ASLR and DEP 우회방식을 사용함.
- 환경 : Firefox 44.0.2 32bit Windows 10 1709
- exploit 성공 시 cale.exe 실행
/ * * 기본 개념 * * /
* ASM.JS : Javascript의 부분 집합
* JIT SPRAY : Just-In-Time 컴파일 동작을 악용해 ASLR과 DEP를 우회하는 exploit
* ASLR(Address Space Layout Randomization) : 주소 공간 배열 무작위화. 리눅스 자체에서 실행하는 메모리 보호 기법으로, 매번 실행할 때마다 주소를 무작위로 바꾸어 공격을 방해하는 방법. stack. heap, libc의 base address가 무작위로 변함.
1) BruteForcing : 고정된 주소값이 나올 때까지 대입하는 방법.
2) None ASLR Module : 한 프로그램 안에서 ASLR이 걸리지 않은 모듈을 공략.
3) Info Leak : 스택의 메모리를 읽는 버그를 사용해 무작위화된 메모리 주소를 읽어 사용하는 것.
* DEP(Data Execution Prevention) : 악의적인 코드가 실행되는 것을 방지하기 위해 메모리를 추가로 확인하는 기술. 즉, 실행코드가 시작되지 않은 위치에서 실행 코드가 시작되지 않도록 하는 방법.
- DEP를 우회하려면 RTL(Return To Library; 라이브러리로 돌아가게 하는 방법)로 우회할 수 있음.
- ASLR + DEP 우회 방식이라면 ROP(Return Oriented Programming)를 사용해 우회할 수 있음.
reference
https://rh0dev.github.io/blog/2018/more-on-asm-dot-js-payloads-and-exploitation/
https://roccoon98.tistory.com/5
https://dokhakdubini.tistory.com/298
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%8B%A4%ED%96%89_%EB%B0%A9%EC%A7%80
'보안 > 취약점 분석' 카테고리의 다른 글
CVE-2023–37734: Buffer-overflow in mp3_audio_converter (0) | 2023.08.11 |
---|---|
CVE-2017-17969: ZIP Shrink Heap Buffer Overflow (0) | 2023.08.11 |
CVE-2022-0453: A Remote Stack Overflow in The Linux Kernel (0) | 2023.08.08 |
CVE-2019-6498: GattLib 0.2 Stack Buffer Overflow (0) | 2023.08.08 |
CVE-2017-15048: Zoom Linux Client Stack-based Buffer Overflow (0) | 2023.08.08 |