리버싱,악성코드분석(10)
-
PE헤더 수정 실습1(.reloc 섹션 제)
pe view, hex editor 툴을 이용하여 pe 파일의 섹션을 조작해보는 실습을 진행. 파일 - reloc.exe pe헤더의 .reloc 섹션 헤더/섹션을 제거하고 IMAGE_FILE_HEADER - Number of Sections 항목 수정 IMAGE_OPTIONAL_HEADER - Size of Image 값 수정. 1. reloc.exe 파일을 peview로 열어서 확인 .reloc 섹션헤더는 270 ~ 294 이므로 hex 툴을 이용하여 0으로 덮어쓴다. 2. .reloc 섹션헤더의 pointer to raw data 를 보면 시작 OFFSET 값이 C000 이므로 파일 끝까지 삭제한다. 여기까지 진행하면 .reloc 섹션은 물리적으로 제거가 된 상태임. 이상태에서 reloc1.exe로 ..
2021.05.15 -
드롭퍼 형 악성코드 분석(리소스 유형)
드롭퍼 악성코드 분석예제 (main.exe) 분석 아래는 main.exe의 entrypoint 이다. ollydbg로 함수단위로 분석하겠음. 첫번째 함수는 GetTempPathA이다. 인자로 패스를 저장할 주소와 사이즈를 지정 실행 후 버퍼주소 0019FE48를 확인해보면 현재 PC의 임시디렉토리 주소가 저장된 것이 확인가능함. 다음 함수는 00401000인데 어떤함수인지 파악하기 힘들다. 인자값으로 아까구한 temp디렉토리경로, abc.exe라는 프로그램명이 넘어간다. 함수 00401000이 실행후 아까 구한 temp 경로 문자열에 adb.exe 가 추가됨. 문자열 을 붙여주는 strcat이란 함수였던것으로 유추가가능하고 이 악성코드는 temp/adb.exe에 저장되고 실행될 것으로 예상됨. 다음 실행..
2021.05.15 -
PE 헤더 IAT 이해
IAT? 프로그램이 어떤라이브러리에서 어떤 함수를 사용하고 있는지 기술한 테이블. PE 파일은 어떤라이브러리를 임포트하는지 IMPORT_DESCRIPTOR 구조체에 명시함. 중요멤버 OriginalFirstThunk - INT(import name table)의 주소(rva) Name - 라이브러리 이름 문자열의 주소(rva) FirstThunk - IAT의 주소(RVA) PE로더가 임포트 함수 주소를 IAT에 입력하는 순서 1. IID의 NAME멤버를 읽어 라이브러리 이름 문자열을 얻는다. 2. 해당 라이브러리를 로딩 3. IID의 OriginalFirstThunk멤버를 읽고 INT주소를 얻는다. 4. INT에서 배열의 값을 하나씩 읽고 HINT OR NAME값을 얻는다.(IAT테이블에 이 순서대로 저..
2021.05.07 -
은닉형 악성코드 이해(RAT)
원격에 존재하는 공격자에 서버에 접근하여 명령을 보내고 명령을 수행하면서 동작하면 RAT라고 볼수있다. (VNC, 팀뷰어 등) 은닉형 악성코드는 자신의 존재를 숨기기위해 높은권한을 획득하여 임시경로가아닌 주요경로파일에 악성코드를 생성하여 숨길수있고 윈도우 사용자 단위인 SESSION 0 시스템권한 으로 동작하게하여 악성코드가 사용자와 상호작용이 불가능하게 만들어 숨길 수 있음. SESSION 1+ (로컬,원격 데스크톱 사용자) process explorer 에서 확인가능.
2021.05.06 -
문서형 악성코드 이해
문서파일구조안에 들어있는 스크립트로인해 문서열람시 악성코드가 실행되어 감염되는 악성코드. SSVIEW툴을 활용하여 HWP 파일의 문서구조를 볼수있다. Bindata - 문서에서 사용하는 스트림 데이터 BodyText - 한글 본문 내용 한글이나 워드 문서등은 저장될때 압축되기때문에 데이터를 볼려면 따로 압축을 해제하여야 함. 한글파일은 zlib으로 압축되어있으므로 압축해제하면 다음과 같이 스크립트 코드를 볼수있다. 한글- postscript 워드 - vba script 등 스크립트 코드가 문서안에 포함되어 특정 악성행위를 수행하게 된다.
2021.05.06 -
UAC 우회기법
UAC우회는 MEDIUM 무결성레벨 -> HIGH 무결성 레벨의 권한을 획득하는 과정 사용자가 인지하지 못하게 UAC확인창 없이 HIGH 권한을 것는 것이 목표이다. 일반적으로 레지스트리값은 변조하여 우회하고 특정 윈도우 프로그램이 레지스트리 키값에 따라 동작하는 방식이 변경됨을 이용한다.
2021.05.06