분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzaNFo%2Fbtsp9Ybou7I%2FghrVgsBvoIjggKfNO3PZIK%2Fimg.png)
Kernel exploit - 커널이란
그래서 kernel이 뭔데? 요약하자면, 운영체제의 핵심이 되는 소프트웨어이다. 우리가 실행하는 프로그램들은 CPU, memory, device 들과 상호작용을 직접적으로 하는 것 같아 보이지만, 실제로는 kernel을 통해 모두 이루어진다. 즉, 각 자원들을 관리하는 것이 kernel이다. 어디에 있는가? 일반적인 binary exploit 시에 많이 보던 메모리 구조는 아래와 같다. [ Legend: Code | Heap | Stack ] Start End Offset Perm Path 0x00555555554000 0x00555555558000 0x00000000000000 r-- /usr/bin/dash 0x00555555558000 0x0055555556c000 0x00000000004000 r..
Kernel exploit - 들어가며.
kernel exploit은 계속 공부 해야지 해야지 하고 있었지만 미뤄뒀던 분야이다. 잠시 공부해볼까 했지만, 글로 이해하기는 어려운 부분이 다소 있어서 더더욱 그랬다. 최근 영상을 통해 공부를 할 수 있는 기회가 생겨 이를 최대한 남겨두려한다. 지금까지 그랬듯, 이번에도 누가 봐도 이해할 수 있도록 자료를 남기는 것이 목표이다. 또한 지금까지 그랬듯, 누군가 보게된다면 조금이나마 도움이 되었으면 좋겠다.
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwBeP5%2Fbtsp3mkuWj1%2Fm8P5F6Ql6DBzkYCDI2YwF0%2Fimg.png)
file struct exploits - level 16~19
1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 new_note, write_note, open_file 등과 같은 명령어를 사용할 수 있고, 파일을 열고, 노트를 작성하는 기능을 가지고 있다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 use after free, FSOP 3.2. 공격 준비 level 16~17 신박한 문제였다. open_file 및 new_note 모두 heap에 작성되며, 결국은 fwrite(note,0,470,fp) 와 같은 방식으로 작동하는데, file open 및 close 이후에 fp 변수 초기화를 하지 않기에 fp를 수정하여 내가 원하는 동작을 할 수 있게 된다. 이를 이용하면 aaw, aar이 모두 가능해지기 때문에 flag를 읽을 수 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnXjna%2FbtsplPN6bTU%2FYkSnQsKtnpqOEdu69LKvDk%2Fimg.png)
file struct exploits - level 7
1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 파일 구조체 변조가 가능하며, 마지막에 fwrite로 종료된다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 FSOP 3.2. 공격 준비 강의에 너무 잘 나와있어서 그냥 보고 베낀 수준이다. pwn.college pwn.college Apply various FILE struct exploits to obtain a leak, then hijack hijack control flow. Start Practice pwn.college 일단, libc version이 다소 높기에 vtable 주소를 직접적으로 수정하는 것은 불가하고, file structure 구조체 내의 주소로만 vtable 주소를 사용할 수 있다. 지금까지 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcjlba8%2Fbtspomp9Ul2%2FB7L0ihJczwMT2QLkklHKBk%2Fimg.png)
Shellcode - level 14
1. intro 2. code 및 분석 2.1. code 생략 2.2. 분석 6 bytes 입력 만으로 flag를 획득해야 한다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 double stage shellcode 3.2. 공격 준비 일단 shellcode 관련 문제를 풀면서 가장 크게 배운 점은 pwntools의 shellcraft 사용법, assembler code의 재 발견, 굳이 shell을 따지 않더라도 flag는 읽을 수 있다 (물론 read write는 당연하고,) 는 것이다. 다시 문제로 돌아가서, 6 bytes 만으로 flag를 획득한다는게 사실 말도 안되는 것 같아 보이지만, shellcode 실행 직전의 각 register와 stack의 값을 잘 활용하면 안되는게 없다는걸 새삼 ..