최근 거의 한달 반 정도 동안 크롬을 보면서 겪은게 fetch chromium이 모종의 이유로 실패하는 것이었습니다. 같은 경우를 겪는 사람이 있을지도 모른다는 생각에 해결법을 올립니다.

 

fetch --nohooks chromium을 실행했을 때 bad_scm 뭐시기 폴더가 생기고 파이썬 오류로 "No file or directory" 와 비슷한 맥락의 오류가 뜰 때가 있습니다. 해당 오류는 git의 문제이므로 git config를 수정하면 됩니다.

 

git config --global https.postbuffer 4194304000

git config --global http.postbuffer 4194304000

 

이 두 문구를 실행하고나서 fetch --nohooks --no-history chromium을 실행합니다. 그러면 어느 정도 받아지다가 오류가 날 텐데, 그 상태에서 gclient sync를 실행하면 전부 받아지게 됩니다.

 

많은 사람들에게 도움이 됐으면 합니다.

'보안 > Bug Hunting' 카테고리의 다른 글

fetch --nohooks chromium 고치기  (1) 2021.06.19
My Fuzzers  (2) 2021.02.21
QEMU USB Analysis and Fuzzing  (0) 2021.01.19
CCID Protocol  (0) 2021.01.19
VirtualBox SVGA  (0) 2021.01.19
  1. l33d0hyun 2021.09.14 11:24 신고

    크롬까지... ㄷㄷ

Main reference : https://github.com/pr0cf5/kernel-exploit-practice

Contents

  1. Loadable Kernel Module (LKM)에 대한 간단한 설명
  2. 커널 문제를 위한 환경 세팅
  3. 커널 디버깅 방법

Loadable Kernel Module

소개

Loadable Kernel Module (LKM)은 주로 커널의 기능을 추가하는데 사용된다. 예를 들어, 장치 드라이버를 추가하거나, 새로운 파일 시스템을 추가하는 등의 기능을 수행할 수 있다. Loadable의 특성으로 쉽게 추가하거나 제거할 수 있게 디자인되어 있기에 백도어를 설치하는 등의 악의적인 목적으로 사용될 수도 있기에 다른 사람이나 기관이 배포한 LKM을 설치할 때에는 주의를 요한다. 경우에 따라서는 모듈이 설치되었음을 속이는 루트킷이 설치될 때도 있다.

명령어

LKM을 관리하는데 사용되는 리눅스 명령어들을 살펴보자.

https://itgameworld.tistory.com/59

insmod, rmmod : 커널 모듈 추가/삭제
lsmod : 추가된 커널 모듈 리스트 확인
depmod : 의존성을 고려하며 modules.dep 파일 갱신. modprobe 명령어를 사용하기 전에 사용된다.
modprobe : modules.dep를 참조하여 모듈들을 추가한다.

이 외에도 커널 익스플로잇을 할 때 유용한 명령어들이 있다.

cat /proc/modules, cat /sys/modules : lsmod와 거의 비슷하지만 kaslr이 없을 경우 모듈의 주소를 확인할 수 있다.

cat /proc/kallsyms | grep "<symbol>" : kaslr이 없을 경우 해당 심볼의 주소를 확인할 수 있다.

빌드 방법

buildroot 세팅

LKM을 빌드하는 데엔 여러 방법이 있다. 이 포스트에서는 buildroot를 사용하여 빌드하는 방법을 소개한다.

가상환경에서 빌드하지 않고 기존 OS에 포함되어 있는 커널 코드를 사용한다면 buildroot를 굳이 사용하지 않아도 된다. 하지만 busybox 세팅이나 root file system 등을 편하게 만들어 사용하려면 buildroot가 매우 유용하다.

buildroot를 받아서 압축을 풀고 적절히 설정한 뒤 빌드해주면 bzImage와 root file system이 생성된다. busybox 세팅을 바꾸어 루트권한을 획득할 수 있도록 바꾸고, 아키텍쳐 설정과 파일시스템 설정을 적절히 바꾸어주면 된다. 자세한 내용은 pr0cf5님 깃허브를 참고하면 된다. (https://github.com/pr0cf5/kernel-exploit-practice/tree/master/building-kernel-module)

빌드를 완료하게 되면 아래와 같이 output 폴더 안에 bzImagerootfs.cpio가 생성되게 된다. 해당 파일들은 다음 스테이지에서 사용된다.

가상환경 세팅

커널 모듈을 쉽게 올려보고 테스트해보기 위해서는 가상환경을 하나 준비해야 한다. QEMU를 통해 진행할 것인데, 필요한 준비물은 앞 단계에서 만든 kernel image와 (bzImage) 초기 파일시스템이다. (rootfs.cpio)

예시부터 보고 넘어가면 이해가 쉽기 때문에 예시부터 보자.

https://github.com/pr0cf5/kernel-exploit-practice/tree/master/building-kernel-module
qemu-system-x86_64 -initrd initramfs.cpio -kernel bzImage -append 'console=ttyS0 root=/dev/ram oops=panic panic=1' -monitor /dev/null -m 64M --nographic -smp cores=1,threads=1 -cpu kvm64,+smep

QEMU x86_64 softmmu 버전인 qemu-system-x86_64를 통해 부팅한다. 위 명령어를 보면 initrd 옵션에 initramfs.cpio*를 넣고 있고, *kernel 옵션에 bzImage를 넣고 있음을 확인할 수 있다. 이에 추가로 VM에서 사용할 CPU 코어수나 CPU 종류, kaslr과 smep와 같은 security mitigation 등을 설정할 수 있다.

파일시스템 세팅

'보안 > Pwn' 카테고리의 다른 글

Kernel 1 - 환경 세팅 (작성중)  (0) 2021.05.04
개인적으로 생각하는 시스템 보안 테크트리  (0) 2021.01.23
공부용 갓갓 레퍼런스들  (0) 2021.01.23

www.zerodayinitiative.com/advisories/ZDI-21-451/

 

Home | Zero Day Initiative

 

www.zerodayinitiative.com

This vulnerability allows local attackers to disclose sensitive information on affected installations of Oracle VirtualBox. An attacker must first obtain the ability to execute high-privileged code on the target guest system in order to exploit this vulnerability.

The specific flaw exists within the VMSVGA virtual device. The issue results from an integer truncation before reading from memory. An attacker can leverage this in conjunction with other vulnerabilities to escalate privileges and execute arbitrary code in the context of the hypervisor.

 

*No more details will be disclosed.

*This post is not a disclosure

 

전에 ZDI에 제보한 버그가 CVE를 받음과 동시에 이번 버전에서 패치되었다. (6.1.20) 본인이 제보한 것 중 최초로 돈을 받은 건이어서 인상이 깊다.

 

www.oracle.com/security-alerts/cpuapr2021.html

 

공개는 ZDI에서 해당 취약점을 공개한 뒤에 이루어질 예정이다. 부연 설명을 붙이는 방식으로 이루어질 것 같다.

 

The details of CVE-2021-2266 will be released after ZDI releases this bug.

'보안 > 일지' 카테고리의 다른 글

CVE-2021-2266 VirtualBox (ZDI-CAN-13464)  (2) 2021.04.22
추가 버그  (1) 2021.04.15
pwnable.xyz 올클  (1) 2021.02.21
커널 공부 근황 1  (0) 2021.02.18
CVE-2021-2127 VirtualBox  (1) 2021.01.20
  1. 카나리 2021.05.30 13:14

    Zdi에 제보하고 한 몇일정도 있다가 이메일이나? 다른 연락이 오셨나요?

    제보한 취약점들 들어가보면 2단계(?)까지는 뜨는데 시간이 좀오래걸리는것 같아서요..

    • candymate 2021.06.19 02:45 신고

      블로그를 잘 안 봐서 이제 봤네요. 저의 경우 빠른 경우는 일주일, 평균적인건 2주일 정도 걸려서 왔습니다. 봤던 것 중 오래 걸린 케이스는 한 달까지 걸린 것을 봤네요.

최근에 버그를 하나 더 찾아서 ZDI에 리포트한 결과, 억셉되어 돈을 받을 수 있었다. 자세한 내용이나 얼마나 받았는지 등은 공개하지 못하겠으나 이렇게 혼자서 삽질하다가 이렇게 돈이 되는 취약점을 찾은 것은 처음이기에 자랑을 목적으로 글을 쓴다.

CVSS 스코어는 6.0을 받았다. 그리 낮지도, 높지도 않은 준수한 점수인 것 같다. 

 

자세한 내용은 ZDI에서 해당 내용을 공개하거나 명시된 데드라인이 지나서 공개할 것 같다.

'보안 > 일지' 카테고리의 다른 글

CVE-2021-2266 VirtualBox (ZDI-CAN-13464)  (2) 2021.04.22
추가 버그  (1) 2021.04.15
pwnable.xyz 올클  (1) 2021.02.21
커널 공부 근황 1  (0) 2021.02.18
CVE-2021-2127 VirtualBox  (1) 2021.01.20
  1. l33d0hyun 2021.04.18 04:28 신고

    고수...

    [candymate fan club.]

계속해서 업데이트 됩니다.

 

1. andrea.corbellini.name/2015/05/23/elliptic-curve-cryptography-finite-fields-and-discrete-logarithms/

'보안 > Crypto' 카테고리의 다른 글

ECC Study Links  (0) 2021.03.24

Fuzzer list that I and my team VirtualBoBs wrote during BoB project.

The levels of these fuzzers are not that high, but I think it is worth opening them.

Haven't found any bugs from these, but it is worth trying to run them, hunting bugs.

 

1. Network Protocol Fuzzer working in VMs (possibly targeting SLiRP)

https://github.com/VirtualBoBs/QEMUSLNetFuzz

 

2. VirtualBox VMSVGA 3d Fuzzer (possibly for VMware as well)

https://github.com/VirtualBoBs/VBox-SVGA3D-fuzzing 

'보안 > Bug Hunting' 카테고리의 다른 글

fetch --nohooks chromium 고치기  (1) 2021.06.19
My Fuzzers  (2) 2021.02.21
QEMU USB Analysis and Fuzzing  (0) 2021.01.19
CCID Protocol  (0) 2021.01.19
VirtualBox SVGA  (0) 2021.01.19
  1. candymate 2021.03.04 15:25 신고

    Closed VMSVGA 3d fuzzer because of personal reasons.

  2. candymate 2021.04.24 18:00 신고

    VMSVGA Fuzzer now open to public (following by the disclosure of CVE-2021-2266)

https://pwnable.xyz 

 

pwnable.xyz

 

pwnable.xyz

게으름의 정점을 찍다가 이제야 다 풀었습니다. (이것도 1년전에 했어야 하지 않았을까...)

뒤쪽에 유니콘 문제들 생각보다 재밌네요.

이제 다시 커널 공부하러 갑니다.

'보안 > 일지' 카테고리의 다른 글

CVE-2021-2266 VirtualBox (ZDI-CAN-13464)  (2) 2021.04.22
추가 버그  (1) 2021.04.15
pwnable.xyz 올클  (1) 2021.02.21
커널 공부 근황 1  (0) 2021.02.18
CVE-2021-2127 VirtualBox  (1) 2021.01.20
  1. 이도현 2021.02.21 21:03

    슈퍼 해커... 고수...

+ Recent posts