일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Return Oriented Programming
- LINARENA
- setuid
- RTL Chaining
- CVE-2019-5736
- ASCII-Armor
- Linux Buffer Overflow
- Stack BOF
- BOF
- Linux BOF
- Linux exploit
- RTL
- shellcode
- Buffer Overflow
- DEP
- ASLR
- Stack Exploit
- Linux Stack BOF
- Stack Buffer Overflow
- runC Container exploit
- runC exploit
- Docekr exploit
- Basic BOF
- LINARENA REDTEAM
- runC
- Return to Library
- CANARY
- NX bit
- Sulla
- 으잌ㅋ
- Today
- Total
목록보안 (7)
Sulla

이번 시간부터는 지난 포스팅에서 진행된 환경보다 비교적 최신의 환경에서 진행 해보겠습니다. 지금까지 알아본 Stack관련 내용은 모두 오늘 포스팅을 위해 알아본것입니다. 그럼 먼저 이번에는 RTL Chaining에 대해 알아 보겠습니다. RTL Chaining은 원하는 라이브러리 함수를 여러번 호출하는 기법입니다. 어떻게 여러번 호출 하느냐 전에 Gadget 이라는 개념을 알아야 합니다. Gadget 의 사전 의미는 "(작고 유용한) 도구" 의미입니다만, 우리가 다루는 bof에서의 Gadget은 RET로 끝나는 연속된 함수를 지칭 합니다. 대표적으로 POP POP RET(PPR)를 사용합니다. PPR의 용도는 "함수에 사용된 인자들을 정리하기 위해 사용되는 것" 으로 알아두시면 됩니다.(POP의 역할을 ..

안녕하세요. Sulla입니다! 이번에 알아볼 내용은 RTL(Return to Library)입니다. 먼저 RTL이 뭔지를 알아보도록 하겠습니다. RTL(Return to Library) 지난 포스팅에서 메모리 보호 기법에 대해 간단하게 봤습니다. 그 중 ASLR은 봤고 DEP/NX bit는 언급만 하고 넘어갔었죠. 메모리 내부에서 코드실행을 방지하기 위한 메모리 보호 기법 중 하나라고 알려 드렸습니다. 메모리에서의 코드 실행이 막혔기 때문에(Shellcode 실행 차단) 다른 방법을 찾아야 합니다. /bin/sh 를 직접 실행할 수 있다면 가능할 듯 합니다. 그럼 어떻게 해야할까요? 첫 포스팅에서 메모리 구조를 설명 드릴 때 위 그림을 보여 드렸었습니다.[스택 - 공유라이브러리 - **힙 - BSS/Da..
안녕하세요! Sulla임돠.... 이번에는 저번 시간에 이어서 Basic BOF 또는 Direct EIP overwrite 라고 불리는 기본적인 BOF와 메모리 보호 기법에 대해서 알아 보겠습니다. Basic BOF 준비 지난 시간에 RET구역 즉, EIP 값이 저장되는 구역에 "HACK " 저장됨을 확인했습니다. 이 말은 공격자가 RET 구역에 원래 있어야 할 값을 임의의 값으로 변경이 가능 하다는 말이죠. 초기에 레지스터의 역할을 간략히 설명 드릴때 EIP 레지스터의 역할은 "**다음 명령의 주소를 가리킨다"**라고 했었죠. 이것을 노려서 공격자는 EIP에 원하는 주소값을 저장해 공격을 이어갑니다. 명령어가 종료 된 후 EIP 주소를 참조해 공격자가 미리 지정한 주소로 이동하여 명령을 이어가죠. 이 ..
안녕하세요. Sulla임돠! 2월 11일 docker관련 런타임인 runC 관련 취약점 CVE-2019-5736 공개 되었습니다. 공개된지 1주일도 안지나 POC가 공개되고 있으며, 영향력도 큰 취약점으로 많은 주목을 받고있습니다. 그래서 이번 포스팅에서는 해당 취약점에 대하여 리뷰해 보겠습니다. [본 포스팅에서는 환경 구축/버전 등의 정보는 제외하겠습니다.] 먼저 docker가 뭔지...runC가 뭔지에 대해서 알아야겠죠??언제나 그렇듯 최대한 간단하고 필요한 내용만 쉽게 알아보겠습니다.(귀차니즘 아닙니다.....) 우선 docker란 Linux 기반의 container runtime 오픈소스 플랫폼 입니다. 쉽게 말해 Container 관리 플랫폼이며, VM(Virtual Machine)과 비슷한 역..
안녕하세요. Sulla임돠. 오늘은 저번 시간에 다룬 내용에 이어서 기본적인 BOF 와 추가적으로 알아야 할 내용을 다루도록 하겠습니다. 먼저 이번 시간부터는 직접 gdb를 이용해서 여기저기 들쑤실 계획인데 그럴려면 gdb 조작법을 먼저 알아야 겠죠. 마찬가지로 필요한 명령어들 먼저 알아 보도록 하겠습니다. (개취) gdb 그누 디버거 라는 이름으로 아주 옛부터 널리 쓰이던 디버거 입니다. 앞으로 진행될 내용에서는 이정도 명령어만 알아도 크게 무리 없이 기본적인 분석은 가능하다고 생각 됩니다. gdb는 다양한 명령어가 있으니 상황에 맞게, 취향에 맞게 추가적으로 더 찾아서 쓰시면 되겠습니다. 참고로 괄호안의 문자는 약어입니다. 그런데 막상 gdb로 이것저것 뒤져보면서 메모리의 주소값을 보다보면 이상하게 ..

안녕하세요. Sulla입니다. 오늘부터 본격적으로 BOF에 알아보도록 하겠습니다. BOF(Buffer Overflow)란 메모리의 동작 과정중의 오류로 인한 잘못된 동작을 유도하는 취약점입니다. 프로세스가 데이터를 버퍼에 저장 시 입력 값의 크기를 검증하지 않을 경우 주어진 버퍼를 넘어선 즉, 지정된 위치가 아닌 곳에 저장되며 인접한 메모리를 덮어 쓰게 됩니다. 인접 메모리에는 기존의 데이터가 저장되어 있으며 변수, 프로세스 흐름 제어 등의 데이터가 포함됩니다. 따라서 메모리 접근 오류로 인한 이상 동작을 하게되며 결과적으로 취약점으로 동작하게 되는것입니다. 앞으로 이 BOF에 대해서 천천히 알아보고자 합니다. 먼저 BOF를 알기 위해서는 메모리, 레지스터 등의 구조 및 개념과 앞으로 사용될 gdb의 사..
시작에 앞서 안녕하세요. Sulla입니다. 팀장님(Joel-Park)께서 Windows Exploit 주제로 연재를 시작하시면서 저는 Linux 파트를 맡게 되었습니다…… :( 뉘신지요...? 저는 LINARENA에서 활동 중인 김성회라고 합니다. 닉네임은 Sulla라는 닉을 사용하고있습니다. 게임 아이디입니다. 게임에서 Sulla 또는 술라Sulla 보시면 아는 척해주세요 :) 관심 분야는 웹 / 모바일 / 시스템 / IoT 보안에 관심을 갖고 활동 중입니다. 왜 하나요? 최근에 bof에 재미를 느끼기 시작했습니다. 그래서 linux bof 관련 공부 내용을 정리할 겸 저처럼 해당 내용을 공부하시는 분들에게 좋은 참고 내용이 되기 위해서 포스팅해볼까 생각이 들었습니다. 최대한 쉽게 하지만, 탄탄하게 정..