일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- C언어
- 파이썬
- BOJ
- HTML
- Sookmyung Information Security Study
- CSS
- The Loard of BOF
- Javascript
- 생활코딩
- 숙명여자대학교 정보보안 동아리
- siss
- hackctf
- XSS Game
- 드림핵
- PHP 웹페이지 만들기
- SWEA
- Python
- BOJ Python
- 웹페이지 만들기
- 백준
- 자료구조 복습
- 기계학습
- 머신러닝
- 숙명여자대학교 정보보안동아리
- c++
- 풀이
- hackerrank
- WarGame
- lob
- c
- Today
- Total
목록분류 전체보기 (346)
혜랑's STORY
보호되어 있는 글입니다.
Hook Overwrite ; malloc과 free 함수를 후킹하여 각 함수가 호출될 때, 공격자가 작성한 악의적인 코드가 실행되게 하는 기법 ※ Hooking(후킹) : 운영체제가 어떤 코드를 실행하려 할 때, 이를 낚아채어 다른 코드가 실행되게 하는 것 메모리 함수 훅 malloc, free, realloc hook C언어에서 메모리의 동적 할당과 해제를 담당하는 함수로는 malloc, free, realloc이 대표적이다. 각 함수는 libc.so에 구현되어 있다. libc에는 이 함수들의 디버깅 편의를 위해 훅 변수가 정의되어 있다. 예를 들어 malloc 함수는 __malloc_hook 변수의 값이 NULL이 아닌지 검사하고 아니라면 malloc을 수행하기 전에 __malloc_hook이 가리..
서론 Background: Library 에서 ELF는 GOT를 활용하여 반복되는 라이브러리 함수의 호출 비용을 줄인다고 했다. 지난 코스에서는 함수가 처음 호출될 때 함수의 주소를 구하고, 이를 GOT에 적는 Lazy Binding을 배웠다. Lazy binding을 하는 바이너리는 실행 중에 GOT 테이블을 업데이트할 수 있어야 하므로 GOT에 쓰기 권한이 부여된다. 그런데 이는 앞서 배워온 공격 기법들에서 알 수 있듯, 바이너리를 취약하게 만드는 원인이 된다. 또한 ELF의 데이터 세그먼트에는 프로세스의 초기화 및 종료와 관련된 .init_array, .fini_array가 있다. 이 영역들은 프로세스의 시작과 종료에 실행할 함수들의 주소를 저장하고 있는데, 여기에 공격자가 임의로 값을 쓸 수 있다..
설치 필요한 파일 파일 올리기 ... 이렇게 done이라고 나옴 확인하기 잘 올라간듯 이제 서버로 해보자 잘됨~~
시작하며 ASLR이 적용되며 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등이 무작위 주소에 매핑되므로, 공격자가 이 영역들을 공격에 활용하기 어려워졌다. 그런데 코드 영역의 주소는 고정되어 있기 때문에 공격자는 고정된 주소의 코드 가젯을 활용하여 ROP를 수행할 수 있었다. 이번에 다룰 Position-Idependent Executable(PIE)은 ASLR이 코드 영역에도 적용되게 해주는 기술이다. 이 기술은 엄밀하게 말하자면 보호 기법은 아니지만 ASLR과 맞물려 공격을 더욱 어렵게 만들었기에 보호 기법이라 소개되기도 한다. Mitigation: NX & ASLR에서 사용한 예제 코드를 실행한 결과이다. PIC와 PIE - PIC 리눅스에서 ELF는 실행 파일(Executable)과 공유..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
시작하며 스택의 반환 주소를 덮는 공격은 스택 카나리, NX, ASLR이 도입되며 점점 어려워졌다. 그래서 Exploit Tech: Return to Library에서 살펴본 것과 같이 pop rdi; ret 같은 코드 가젯과 라이브러리의 system 함수를 사용하는 공격 기법이 새롭게등장하였다. 지난 예제에서는 편의를 위해 바이너리의 PLT에 system 함수를 포함시켰지만, 실제 바이너리에 system 함수가 PLT에 포함될 가능성은 거의 없다. 따라서 현실적으로 ASLR이 걸린 환경에서 system 함수를 사용하려면 프로세스에서 libc가 매핑된 주소를 찾고, 그 주소로부터 system 함수의 오프셋을 이용하여 함수의 주소를 계산해야 한다. Return Oriented Programming(ROP)..