본문 바로가기

반응형

System/Windows

(12)
Windows 7 Pro 32bit/Analysis/메모리 보호기법 해제 분석과 테스트를 위해서 불필요한 보호기법을 해제할 필요성이 있습니다. 보호기법이 적용되어 있다면, 테스트를 위해 보호기법을 우회해야하고 시간 제약적인면에서 손해가 큽니다. 고로 .. 저는 보통 보호기법을 해제시키고 테스트를 합니다. windows 7에서는 ASLR, DEP, SEHOP만 해제하면 되므로 테스트하기 아주 편합니다. # Windows 7 Pro 32bit 테스팅 환경- Enhanced Mitigation Experience Toolkit (EMET) 사용다운로드 : https://www.microsoft.com/en-us/download/details.aspx?id=54264 - ASLR 해제[이전 버전 IDE 설정] Visual Stduio 2012: Configuration Propert..
System/Hacking/고급 리버싱 기술 리버싱- 고급 디버깅 기술조건 브레이크 포인트레지스터가 특정값일때 브레이크 포인트를 거는 것.WinDEGbp 0x41424344 "j @eax=0x1234568 \;g\"Immunity Debugger & OllDebuggerShift + F2BreakPoint -> ConditionalCtrl+T 에서 Condition is TRUE 하드웨어 브레이크 포인트특정 메모리 값을 읽거나 쓸 때 브레이크 포인트를 설정메모리값 자체에 설정하는 기능오른쪽 클릭 breakpoint > Hardware, on access > DwordIDA분석 결과 디버거에서 불러오기API 호출에 비해 코드내 어셈블리어로 구해 넣는 컴파일러의 최적화 기능의 경우 분석이 더 어렵다. 이에 ㅇIDA는 패턴분석을 통해 자동으로 Micro..
System/Hacking/Fuzzing OWASP 퍼징 ref > https://www.owasp.org/index.php/Fuzzing 퍼징- 수많은 입력 값을 무작위로 대입하여 자동으로 취약점을 찾아내는 방법Dumb 퍼징 파일 포맷을 분석하지 않은 상태에서 무작위로 값을 변형하는 방식Smart 퍼징 파일 포맷을 분석한 뒤에 포맷에 맞추어 변형하는 방식환경변수 퍼징커맨드라인 퍼징레지스트리 퍼징드라이버 퍼징네트워크 퍼징등퍼징의 작동 원리- 입력값 생성 > 실행 및 감시 > 크래시 분류 Dumb 퍼징- 가장 기본적인 퍼징 형태- 샘플 파일의 일부를 변형하여 파일을 실행.MiniFuzz- 프로그램을 전혀 이해하지 못한 상태로 진행되므로 코드 커버리지 측면에서 취약 Smart 퍼징- 파일포맷을 완전히 이해한 상태에서 수행하는 퍼징- 파일의 포맷을 ..
System/DllInject/레퍼런스 및 오류 # 과정 1 : http://cinema4dr12.tistory.com/891 > DLL 생성- 오류 1 : 기존 프로젝트 생성 x > https://docs.microsoft.com/ko-kr/sql/ssms/solution/add-an-existing-project-to-a-solution 해결 # 과정 2 : dllinject 코드 작성http://keybreak.tistory.com/116http://reversecore.com/40https://m.blog.naver.com/PostView.nhn?blogId=siren258&logNo=141636528&proxyReferer=https:%2F%2Fwww.google.co.kr%2F - 오류 2 : dll 빌드 프로젝트를 만들시 주의해야하는데, ..
System/Hacking/버그헌팅/기본 방법론 PoC(Proof of Concept)- 발견한 취약점을 증명Exploit 코드를 작성 # 블랙박스와 화이트박스- 블랙박스 테스트소스코드 없이 점검하는 것점검방법리버싱퍼징장점빠른 점검 가능쉬운 점검 환경 구성예상하지 못한 취약점 발견단점커버리지 문제 발생원인 분석 시간 증가점검 난이도 증가- 화이트박스 테스트프로그램의 소스코드를 리뷰할 수 있는 상황에서 점검점검방법소스코드 리뷰소스코드 자동 점검툴장점거의 완전한 커버리지 가능빠른 원인 분석 가능단점개발 환경 구성 필요점검 복잡도 증가소스코드 확보 어려움 > 퍼징- 자동화가 가능하여 선호하는 편이지만 발견하지 못하는 유형의 취약점도 존재 # 버그 식별 및 평가- 버그이 오탐 여부와 공격 가능성 판단.- 자동 점검툴소스코드 리뷰 직접 찾음 > 해당 취약점으로..
System/Hacking/ASLR/ASLR 우회 ASLR(Address Space Layout Randomization) 기법 - 방어기법대부분의 공격은 특정 주소값이 필요하기 때문에 고정적인 주소를 사용하는 공격을 방어 할 수 있다. 하지만 모든 공격을 막을 수는 없다. # ASLR 적용법- 컴파일러 옵션에 의해서 적용 여부가 결정임의 기준 주소 (DYNAMICBASE)옵션 활성화 > 예프로그램 실행 시 마다 코드 주소 및 스택 주소 등이 모두 변경가젯들의 주소가 매번 변경되기 때문에 DEP 우회를 위한 ROP 체인을 구성 할 수 없다. # ASLR 우회 - Bruteforce 공격- 고정 주소값이 나올 때 까지 동일한 주소 혹은 다양한 주소로 무작위 대입을 시도하는 것.성공률이 낮다.한두번의 공격으로 성공해야하는 파일 포맷 기반의 Client 공격..
System/Hacking/DEP와 DEP 우회 DEP 기법DEP(Data Execution Prevention)란, 실행 권한이 없는 메모리 영역의 코드가 실행되지 못하도록 방지하는 기법스택 영역, 힙 영역의 실행 코드 방지 DEP의 우회- 초기 기법 : RTL 기법- 현재 기법 : ROP 기법RTL Chaining 기법-> DEP와 ASLR은 Exploit 방지의 핵심 DEP 종류- H/W 기반, S/W 기반최근 CPU에서는 대부분 H/W기반 지원옵션에 따라 여러 가지 방식으로 동작 DEP 옵션 옵션설명Optin지정된 바이너리만 보호OptOut지정된 바이너리를 제외하고 모두 보호AlwaysOn모든 프로세스를 항상 보호AlwaysOff모든 프로세스를 보호하지 않음 기본 동작 방식 windows 7 : OptIn 추가적으로 Permanent DEP 옵..
System/Hacking/SEH overwrite Exploit SEH overwrite Exploit- SEH Handler를 덮어씌워서 공격하는 방법 SafeSEH 검증 과정Handler의 주소값 검증등록된 핸들러인지 확인실행 여부 결정 SafeSEH 검증 과정 (세부)Handler의 주소가 스택인지 확인주소가 스택의 범위에 포함되어 있다면 호출 SafeSEH 검증 과정 (세부2)가리키는 주소가 현재 로드된 모듈의 주소그 모듈이 SafeSEH로 컴파일된 모듈이면 적절한 절차로 등록됬는지 검증 * 이때 PE헤더의 Load Configuration Directiory가 이용 SafeSEH 특징SEH는 옵션을 주었을 때만 동작특정조건에 맞는지만 검증 SafeSEH 우회SafeSEH 활성화는 컴파일러에 /SAFESEH옵션을 준 뒤 컴파일-> 단 하나의 모듈이라도 컴파일 ..

반응형