Windows Stack Buffer Overflow 1 - 취약점 확인
취약한 프로그램을 이용하여 Windows Userland에서의 Stack Buffer Overflow Exploit을 실습해보자. 취약 프로그램은 여기서 다운로드받을 수 있다. 취약 파일 생성 코드 import os if os.path.exists("exploit.m3u"): os.remove("exploit.m3u") with open("ex...
취약한 프로그램을 이용하여 Windows Userland에서의 Stack Buffer Overflow Exploit을 실습해보자. 취약 프로그램은 여기서 다운로드받을 수 있다. 취약 파일 생성 코드 import os if os.path.exists("exploit.m3u"): os.remove("exploit.m3u") with open("ex...
문제 링크 https://dreamhack.io/wargame/challenges/513 문제 설명 드림핵 회원 수가 22,222명을 달성했어요!! 드림이는 기념으로 2의 상징을 공부해보기로 했어요. 그게 바로 벙커링이래요!! 아 그게 아니라 버퍼링… 이라구요? Arch: amd64-64-little RELRO: Full RELRO St...
문제 링크 https://dreamhack.io/wargame/challenges/198 문제 설명 이제 막 자료구조를 배운 드림이는 단일 linked list로 사람의 개인정보를 저장하는 프로그램을 만들었어요. 그리고 자랑을 하고싶어서 자신이 만든 프로그램을 서버에서 돌려서 누구나 사용해볼 수 있도록 했습니다. 그런데 코드에 오타가 있네요…? 드림...
문제 링크 https://dreamhack.io/wargame/challenges/216 문제 설명 루트 권한으로 실행되는 서비스를 찾았습니다. 그러나, 큐브안에 갇혀서 빠져나올 수가 없습니다. 큐브를 탈출하고 플래그를 획득하세요! 문제 분석 함수 초기에 chroot("/home/cube/cube_box")가 호출되어 루트 디렉터리가 “/ho...
문제 링크 https://dreamhack.io/wargame/challenges/456 문제 설명 I know there’s been some trust issues on “baby” CTF chals, but this really is a NullNull(colloquially “spacious”, “easy” in KR) pwnable chal...
문제 링크 https://dreamhack.io/wargame/challenges/404 문제 설명 크리스마스 기념 드림산타가 선물을 준비했어요!! 취약점, 플래그, 쉘도 맘대로 준다던데..? 문제 분석 1번 메뉴를 이용하면 gets 함수를 이용하여 입력할 수 있어 스택 버퍼 오버플로우가 발생한다. 하지만 canary, l...
윈도우는 디바이스 가드와 자격증명 가드 같은 새로운 가상화 기반의 보안 기능을 가진다. 이들은 하이퍼바이저를 이용해 운영체제와 유저 데이터의 안전성을 향상시킨다. 이러한 환경은 여전히 비특권 상태(Ring 3)이지만 가상 신뢰 레벨 1(VTL 1)을 가지며, NT 커널(Ring 0)과 애플리케이션(Ring 3) 둘 다가 살아가는 일반적인 VTL 0...
윈도우 보안 모델에서 디버그 특권(관리자 계정 등)을 가진 토큰으로 실행하는 프로세스는 해당 머신에서 실행 중인 다른 프로세스에게 자신이 원하는 어떤 접근 권한이든 요청할 수 있다. 다른 프로세스의 메모리에 접근해 읽기/쓰기 코드 인젝션 스레드 일시 중지/재실행 프로세스 정보 얻기 ...
최소 프로세스 NtCreateProcessEx 함수에 특별한 플래그가 지정되어 있고, 호출자가 커널 모드에 있으면 이 함수는 조금 다르게 동작해 PsCreateMinimalProcess API의 실행을 유발한다. PsCreateMinimalProcess는 다음과 같은 부분 없이 프로세스를 생성한다. 유저 모드 주소 공간이 ...
_IO_FILE 구조체 _IO_FILE 구조체는 리눅스 표준 라이브러리에서 파일 스트림을 나타내기 위한 구조체이며, 파일을 열기 위한 fopen 함수를 호출했을 때 힙 영역에 할당된다. struct _IO_FILE_plus { FILE file; const struct _IO_jump_t *vtable; }; struct _IO...