kernel security -level 10~12

2023. 9. 28. 19:58·Wargame/pwn.college
728x90
반응형

1. intro

 

2. code 및 분석

2.1.  code

생략

2.2. 분석

level 10 : level9 + ASLR이다.

level 11,12 : 유저 영역에 플래그를 읽어들인 뒤 플래그 파일을 삭제하고, 커널 영역에서 쉘코드를 실행한다.

 

3. 취약점 확인 및 공격 준비

3.1. 취약점

생략

3.2. 공격 준비

level 9와 10의 페이로드가 동일하다.

다만, 주소를 어떻게 설정하느냐인데, 가상 머신을 실행할 때 커널 함수 base address가 매번 변경되지만, 처음 설정된 주소 그대로 유지되기 때문에 dmesg를 통해 적절히 레지스터에서 주소를 가져와 오프셋을 계산하면 된다.

물론 일반적인 상황은 아니지만...

 

level 11과 12의 페이로드가 동일하다.

둘 다 플래그를 삭제해버리지만, 유저 영역의 메모리에 있던 플래그 값이 결국은 커널 영역에서 접근 가능한 위치에 지워지지 않고 존재하기에 루프를 돌며 해당 값을 찾으면 된다.

처음에는 바이너리에서 커널영역으로 이동 후 다시 바이너리로 와서 flag 위치의 값을 출력해보기도 하고,

커널영역에서 다시 한번 바이너리의 flag 위치의 값을 커널 영역으로 복사하여 출력해보기도 하고,

이런저런걸 다 해봤는데 결론은 flag 위치를 null로 초기화되버려 아무것도 출력되지 않는 것을 볼 수 있다.

분명 바이너리에서 커널 영역으로 이동 후 copy from user함수를 통해 바이너리의 쉘코드를 가져가긴 하는데,

플래그 영역만 딱 초기화되버린다.

왜인지 모르겠음...

특이사항으로는 level 11에서는 python으로 shellcode를 바이너리에 전달해도 flag가 잘 출력되지만,

level 12에서는 flag가 잘려서 출력되는 문제가 있었다.

그래서 shellcode만 뽑아서 바이너리에 직접 넣어줬더니 모두 출력해줬다.

왜 이런지는 모르겠음;;;

 

아래 영상을 참고하였기에 직접 푼걸로 보기에는...

(29) CSE 466: Computer Systems Security - Extended Q&A - 12/07/2021 - YouTube

(29) Kernel Security - Robert - Live Session - 2022.11.09 - YouTube

 

4. exploit

생략

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Wargame > pwn.college' 카테고리의 다른 글

Talking web - payload  (0) 2023.10.17
Program interaction - 1~142  (0) 2023.10.16
kernel security level9  (0) 2023.09.25
pwn.college - kernel security payload  (0) 2023.09.25
kernel security level8  (0) 2023.09.24
'Wargame/pwn.college' 카테고리의 다른 글
  • Talking web - payload
  • Program interaction - 1~142
  • kernel security level9
  • pwn.college - kernel security payload
wyv3rn
wyv3rn
아저씨의 흔한 취미. wyv3rn#1249
  • wyv3rn
    think storage
    wyv3rn
  • 전체
    오늘
    어제
    • 분류 전체보기 (502) N
      • To do list (7)
        • Doing (1)
        • Complete (6)
      • Diary (35)
      • Tips & theory (79) N
      • Kernel Exploit (27)
        • Theory (15)
        • Exercise (5)
      • Wargame (313)
        • pwn.college (34)
        • Dreamhack (148)
        • pwnable.kr (15)
        • Lord of Sqlinjection (3)
        • Cryptohack (20)
        • Root me (27)
        • CodeEngn (4)
        • Exploit Education (22)
        • ROP Emporium (8)
        • H4C (10)
        • Hackerchool (22)
      • CTF (41)
        • Solved (39)
        • Unsolved (2)
      • Script (0)
      • RubiyaLap (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

    • PWN wargame 모음 (및 느낀점)
    • 비공개 글들에 대해.
    • 뭐라도 하나 얻어가시길...
  • 인기 글

  • 태그

    root
    vtable
    pwnable.kr
    libc
    Format String Bug
    la ctf
    Me
    FSB
    exploit education
    x64
    tcache
    CANARY
    RTL
    pwntools
    hackerschool
    cryptohack
    ROOT ME
    docker
    _IO_FILE
    root-me
    Buffer Overflow
    32bit
    heap
    BOF
    lob
    64bit
    phoenix
    dreamhack
    x86
    rop
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
wyv3rn
kernel security -level 10~12
상단으로

티스토리툴바