Security/지옥방 스터디
DreamHack Wargame [basic_exploitation_001, 002]
DreamHack Wargame [basic_exploitation_001, 002]
2020.06.09이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
지옥방 5주차 과제.......모 eum
지옥방 5주차 과제.......모 eum
2020.05.27LOB 마지막 문제는 진짜 후,,,,,나머지는 이해라도 갔는데씨ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 라젠카 RTL(x86), Frame Faking, ROP(x86) 공부 http://caputdraconis.tistory.com/35 지옥방 5주차 과제 [라젠카 RTL(x86), Frame Faking, ROP(x86) 공부하기] http://lazenca.net/ TechNote - TechNote - Lazenca.0x0 배너의 맨 끝으로 배너의 맨 처음으로 TechNote 메타 데이터의 끝으로 건너뛰기 Lazenca.0x0님이 작성, 10월 31, 2019에 최종 변경 메타 데이터의 시작으.. caputdraconis.tistory.com LOB 올클리어(마지막 문제 해결이 안됐음,,) http://caputd..
지옥방 5주차 과je LOB !(All clear)
지옥방 5주차 과je LOB !(All clear)
2020.05.25*극소수의 문제(아마도 1~2문제..)를 제외한 나머지 문제들은 부족한 저의 실력 탓에 풀이를 보지 않고 풀 수 없었음을 이해 부탁드려요오..... 흠 이번 친구는 darkknight다. sfp???? 광신호라,, LOB에서 이제 광신호까지 다루나 일단 C 파일을 살펴보도록 하자! 이번 문제에서는 신기하게 함수를 호출한다. 첫번째 인자로 주어진 문자열이 다시 인자로 들어가는 함수 problem_child()는 40바이트의 buffer를 선언하고, 인자로 전달받은 src를 복사해 buffer에 41바이트만큼 복사(strncpy)를 진행한다. 그리고 buffer를 출력한다. 그냥 이렇게 보기에는 큰 취약점이 보이지 않는다. 40바이트 크기에 41바이트만큼 복사한다고 큰 취약점으로는 느껴지지 않는데,,흠 C ..
지옥방 4주차 포너블 과제 모음집!!뚜둥..
지옥방 4주차 포너블 과제 모음집!!뚜둥..
2020.05.17LOB goblin~darkelf까지! https://caputdraconis.tistory.com/27 지옥방 4주차 과제[goblin-darkelf 다 뿌시기] 후 시작해보자! goblin -> orc : egghunter 지난번 3번에서 알아낸 비밀번호인 hackers proof로 로그인한당 후 orc.c를 보자 이번에는 조금 길다..for 반복문의 첫 등장 memset 함수는 어떤 메모리의 시작점부.. caputdraconis.tistory.com LOB orge- skeleton까지! https://caputdraconis.tistory.com/28 지옥방 4주차 과제[orge-skeleton 다 뿌시기] 후반전 시작했다 후,,, orge -> troll : check argc here is c..
<2/2> 지옥방 4주차 과제[orge-skeleton 다 뿌시기]
<2/2> 지옥방 4주차 과제[orge-skeleton 다 뿌시기]
2020.05.11후반전 시작했다 후,,, orge -> troll : check argc here is changed! 를 살펴보면 argc, 즉 주어진 인자의 개수가 2개가 아니라면 프로그램이 종료된다. 그렇기에 2개의 인자가 주어져야한다. 이는 argv[0], argv[1]만 이용해야 한다는 것을 의미하므로 앞에서 사용해왔던 argv[2]는 사용하지 못한다. 그리고 argv[1]도 초기화된다. 뭐야 그럼 어떡하라고씨 환경변수 막혔고,, argv[2] 막혔고,, argv[1]도 막혔다고 보이고,,흐음 일단 막혔으니 노래를 듣고 오자 미뤌 미뤌 온 더 월~ 돈ㅌ 세이ㅌ 커즈 아 노 암 큐트! 루이 다운 투 마 드뤄워스 엘뷔 오ㄹ 온 마 슈즈 후,, 노래도 다 듣고 다시 코드를 봤지만 심각,, 그때 허쉬초콜릿 드링크(16..
<1/2> 지옥방 4주차 과제[goblin-darkelf 다 뿌시기]
<1/2> 지옥방 4주차 과제[goblin-darkelf 다 뿌시기]
2020.04.30후 시작해보자! goblin -> orc : egghunter 지난번 3번에서 알아낸 비밀번호인 hackers proof로 로그인한당 후 orc.c를 보자 이번에는 조금 길다..for 반복문의 첫 등장 memset 함수는 어떤 메모리의 시작점부터 연속된 범위를 어떤 값으로(바이트 단위) 모두 지정하고 싶을 때 사용하는 함수. void *memset(void *ptr, int value, size_t num); 총 3개의 인자가 들어간다. 처음부터 채우고자 하는 메모리의 시작 주소, 채우고자 하는 값, 채우고자 하는 바이트의 수(메모리의 크기)다. environ[i]에 그 크기만큼 0으로 채운다 environ은 환경변수라고 한다. 전 단계(cobolt -> goblin)에서 작은 버퍼의 크기 탓에 환경변수..
지옥방 3주차 과제 LOB 2,3번 뿌시기
지옥방 3주차 과제 LOB 2,3번 뿌시기
2020.04.28LOB https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 [BOF-BufferOverflow- 원정대란?] 비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지 수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다. [접속 방법] BOF 원정대는 도메인이나 IP가 아닌, vmware 이미지 형태로 제공합니다. 따라서 각자의 PC에 워게임 서버를 가동하신 후 접속해 풀어나가는 방식입니다. [다운로드] 1. 다음 Vmware 이..
지옥방 포너블 3주차 과제 모음!
지옥방 포너블 3주차 과제 모음!
2020.04.24드림핵 뿌시기 http://caputdraconis.tistory.com/21 지옥방 3주차 과제 DreamHack-System Exploitation Fundamental 이 친구와 이번주 과제를 시작해보자! 원래 공부 잘하는 사람은 OT나 수업설명 같은거(다른 사람들은 보통 안듣는 시간)를 잘 보고 듣는다고 하길래 따라해봤다. 취약점의 발생 원인을 이해하고, 공격 기술과 보.. caputdraconis.tistory.com 달고나 문서 뿌시기 http://caputdraconis.tistory.com/22 지옥방 3주차 과제 달고나 문서 뿌시기! 커널(Kernel) 시스템이 운영에 필요한 기본적인 명령어 집합을 찾는 곳. 기본적으로 커널은 64KByte 영역에 자리잡지만 오늘날에는 더 큰 영역을 사용..
지옥방 3주차 과제 라젠카 뿌시기(NX Bit)
지옥방 3주차 과제 라젠카 뿌시기(NX Bit)
2020.04.24NX BIt(Nx bit, Never eXecute bit, 실행 방지 비트) 란? 프로세스 명령어나 코드 또는 데이터 저장을 위해 메모리 영역을 따로 분리하는 CPU 기술 NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용 => 명령어가 들어갈 수 없다 => 악성코드가 실행되지 않도록 해준다. DEP(Data Execution Prevention) 윈도우 운영체제에 포함된 보안 기능, 악의적인 코드가 실행되는 것을 막기 위해 메모리를 추가로 확인하는 기술 DEP는 두가지 모드로 실행된다. 하드웨어 DEP 메모리에 명시적으로 실행 코드가 포함되어 있는 경우를 제외하고 모든 메모리 위치에서 실행 코드 실행 X 대부분의 최신 프로세서 지원 소프트웨어 DEP CPU가 하드웨어 DEP를 지원하..
지옥방 3주차 과제 라젠카 뿌시기(Return to Shellcode)
지옥방 3주차 과제 라젠카 뿌시기(Return to Shellcode)
2020.04.24Return to Shellcode Return address 영역에 Shellcode가 저장된 주소로 변경해, Shellcode를 호출하는 방식(달고나 문서에서 봤던 방법!!) call 명령어 call 명령어 다음 명령어의 주소 값(return address)을 stack에 push하고, 피연산자로 주어진 주소로 이동한다. ret 명령어 ESP(RSP)가 가리키고 있는 주소에 있는 값, 즉 call이 push 해놓았던 return address를 EIP(RIP)에 저장한 후, 그 주소로 이동 이 두 명령어가 실행될 때, 생성되고 사용되는 return address 값을 공격자가 바꿀 수 있다면, 프로그램의 흐름을 변경할 수 있다!!!개멋있다. line 4에 있는 명령어 call의 주소 값인 0x4004..
지옥방 3주차 과제 달고나 문서 뿌시기!
지옥방 3주차 과제 달고나 문서 뿌시기!
2020.04.23커널(Kernel) 시스템이 운영에 필요한 기본적인 명령어 집합을 찾는 곳. 기본적으로 커널은 64KByte 영역에 자리잡지만 오늘날에는 더 큰 영역을 사용. 하나의 프로세스(프로그램)을 실행시키면 이 프로세스를 segment라는 단위로 묶어서 가용 메모리 영역에 저장시킨다.(실행 시점에 실제 메모리의 어느 위치에 저장될 지가 결정된다 => 그래서 시작 위치로부터의 위치인 logical address를 사용한당) 오늘날의 시스템은 멀티 테스킹이 가능해서 메모리에 여러 개의 프로세스가 저장되어 병렬적으로 작업 수행. segment code segment, data segment, stack segment로 이루어져있다. code segment 시스템이 알아 들을 수 있는 명령어(instruction)들이 ..
지옥방 3주차 과제 DreamHack-System Exploitation Fundamental
지옥방 3주차 과제 DreamHack-System Exploitation Fundamental
2020.04.21이 친구와 이번주 과제를 시작해보자! 원래 공부 잘하는 사람은 OT나 수업설명 같은거(다른 사람들은 보통 안듣는 시간)를 잘 보고 듣는다고 하길래 따라해봤다. 취약점의 발생 원인을 이해하고, 공격 기술과 보호 기법의 진화 흐름을 알게 되는 것이 바로 이 강의가 추구하는 방향! 그 방향으로 알맞게 갔으면 좋겠다,, 해킹 특정 문제를 풀거나 비효율적인 시스템을 개선하는 해결책이라는 의미를 담은 단어 핵(hack)에서 유래. 컴퓨터의 하드웨어나 소프트웨어, 네트워크, 웹사이트 등 각종 정보 체계에서 주어진 권한 이상을 얻거나 의도하지 않은 동작을 일으키는 행위이다! 웹 사이트를 공격하는 웹해킹, 컴퓨터와 컴퓨터가 연결되는 네트워크를 공격하는 네트워크 해킹, 그리고 이 강의에서 자세하게 다루게 될!! 프로그램의..