pwnkidhn.github.io

고정 헤더 영역

글 제목

메뉴 레이어

pwnkidhn.github.io

메뉴 리스트

    • 분류 전체보기 (194)
      • memo (0)
      • Pwnable Exploitation (19)
        • 01.Shellcode (4)
        • 02.Return to Shellcode (1)
        • 03.RTL(Return to libc) (2)
        • 04.Frame faking(Fake ebp) (1)
        • 05.Frame Pointer Overwrite (2)
        • 06.ROP(Return Oriented Prog.. (3)
        • 07.SROP(Sigreturn-oriented .. (2)
        • 08.JOP(Jump-Oriented Progra.. (1)
        • 09.Return-to-csu(__libc_csu.. (0)
        • Malloc - glibc(ptmalloc2) (3)
      • Pwnable Write-Up (54)
        • 00.CTF (0)
        • 01.hackerschool F.T.Z (20)
        • 02.hackerschool L.O.B (21)
        • 03.dreamHack (13)
        • 04.HackCTF (0)
      • Reversing Write-Up (38)
        • 01.Abex's crackme (5)
        • 02.CodeEngn Basic (20)
        • 03.CodeEngn Advance (13)
      • Fuzzing (1)
        • Theory (1)
      • Programming (22)
        • Data Structure (0)
        • Windows System (22)
      • Computer Science (60)
        • Computer Architecture (18)
        • OS Concepts (29)
        • Linux System (5)
        • Reverse Core (8)

    검색 레이어

    pwnkidhn.github.io

    검색 영역

    컨텐츠 검색

    Computer Science/Linux System

    • Lazy binding (Feat. Now binding)

      2020.03.09 by RACC8N

    • 04. RELRO

      2020.03.09 by RACC8N

    • 03. Canaries

      2020.03.08 by RACC8N

    • 02. ASLR

      2020.03.08 by RACC8N

    • 01. NX Bit (MS : DEP)

      2020.03.08 by RACC8N

    Lazy binding (Feat. Now binding)

    Lazy binding Lazy Binding은 lazy linking 또는 on-demand symbol resolution이라고도 한다. Lazy Binding은 심볼이 실제로 사용될 때까지 심볼의 라이브러리 파일의 주소 값 확인이 수행되지 않는다. Lazy binding behavior flow 모든 동적라이브러리 함수는 PLT(Procedure Linkage Table) stub코드를 통해 호출된다. PLT의 stub 코드는 상대 주소를 이용하여, 사용할 GOT(Global Offset Table)의 주소 값을 검색한다. PLT는 GOT의 위치를 알고 있으며, 해당 GOT에 저장된 대상 함수의 주소를 읽고 이동한다. 이와 같은 동작이 실행되기 위해서 GOT에 적절한 주소가 채워 져야한다. Lazy..

    Computer Science/Linux System 2020. 3. 9. 09:51

    04. RELRO

    RELRO는 RELocation Read-Only의 줄임말이며, ELF 바이너리 / 프로세스의 데이터 섹션의 보안을 강화하는 일반적인 기술이다. RELRO에는 Partial RELRO와 Full RELRO 두 가지 모드가 있다. Partial RELRO Full RELRO 다음과 같이 RELRO 적용시 "Program Header"와 "Dynamic Section"의 변화를 확인할 수 있다. Partial RELRO를 적용하게되면 다음과 같은 변화가 발생한다. 'Program Header'에 'RELRO' 영역이 생성된다. 해당 영역의 권한은 Read only 이다. 해당 영역에 포함되는 Section은 다음과 같다. INIT_ARRAY, FINI_ARRAY 즉, GOT영역을 덮어쓸수 있다. Full R..

    Computer Science/Linux System 2020. 3. 9. 09:34

    03. Canaries

    Canaries Canaries 또는 Canary word는 버퍼 오버 플로우를 모니터하기 위해 버퍼와 제어 데이터 사이에 설정 된 값이다. 버퍼 오버플로가 발생하면 Canary 값이 손상되며, Canaries 데이터의 검증에 실패하여, 오버플로에 대한 경고가 출력되고, 손상된 데이터를 무효화 처리된다. Types of canaries Terminator canaries Terminator Canaries는 Canary의 값을 문자열의 끝을 나타내는 문자들을 이용해 생성한다. Terminator Canaries의 값은 NULL (0x00), CR (0x0d), LF (0x0a) 및 EOF (0xff)로 구성되어 있다. 공격자는 Canaries를 우회하기 위해 위해 Return address를 쓰기 전에 ..

    Computer Science/Linux System 2020. 3. 8. 17:50

    02. ASLR

    ASLR(Address Space Layout Randomization)이란? 메모리 손상 취약점 공격을 방지 하기 위한 기술이다. 스택, 힙, 라이브러리, 등의 주소를 랜덤한 영역에 배치하여, 공격에 필요한 Target address를 예측하기 어렵게 만든다. 프로그램이 실행 될 때 마다 각 주소들이 변경된다. 예를 들어 Return-to-libc 공격을 하기 위해서는 공유 라이브러리에서 사용하려는 함수의 주소를 알아야 한다. 이러한 주소 값들이 프로그램이 호출 될때 마다 고정적인 주소를 가진다면 매우 쉽게 활용할 수 있다. 하지만 ASLR의 적용으로 인해 프로그램이 호출 될때 마다 스택, 힙, 라이브러리 영역의 주소가 변경되면 공격에 어려워진다.(불가능하지는 않는다.) SET ASLR echo 0 >..

    Computer Science/Linux System 2020. 3. 8. 17:25

    01. NX Bit (MS : DEP)

    NX Bit(NX bit, Never eXecute bit, 실행 방지 비트)란? 프로세스 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술이다. NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세서 명령어가 그 곳에 상주하지 않음으로써 실행되지 않도록 만들어 준다. DEP(Data Execution Prevention)이란? 마이크로소프트 윈도우 운영 체제에 포함된 보안 기능이며, 악의적인 코드가 실행되는 것을 방지하기 위해 메모리를 추가로 확인하는 하드웨어 및 소프트웨어 기술이다. DEP는 두 가지 모드로 실행된다. 하드웨어 DEP: 메모리에 명시적으로 실행 코드가 포함되어 있는 경우를 제외하고 프로세스의 모든 메모리 위치에서 실행할 수 ..

    Computer Science/Linux System 2020. 3. 8. 17:05

    추가 정보

    페이징

    이전
    1
    다음
    TISTORY
    pwnkidhn.github.io © rvkhun
    페이스북 트위터 인스타그램 유투브 메일

    티스토리툴바