목록전체 글 (361)
윈도우 API - 대부분의 악성코드는 윈도우 플랫폼에서 동작 - 운영체제와 밀접하게 상호작용 - 최신정보 확인 http://soen.kr 핸들 - 윈도우, 프로세스, 모듈, 메뉴, 파일 등과 같이 운영체제에서 오픈되거나 생성 - 객체나 메모리 위치를 참조한다는 점에서 포인터와 같음 파일 시스템 함수 - 악성코드가 시스템과 상호작용하는 가장 일반적인 방식은 파일을 생성하거나 수정해 파일명을 구별하거나 기존 파일명을 변경 - 식별자로 사용 가능 - 파일을 생성해 그 파일에 웹 브라우징 내용을 저장한다면 해당 스파이웨어 형태일 가능성이 높음 - 함수 - CreateFile : 파일을 생성하고 열 때 사용 - ReadFile, WriteFile : 파일을 읽고 쓰는 데 사용 - CreateFileMapping,..
10. 0x1000ff58에서 서브루틴으로 수백 라인은 문자열을 비교하기 위한 일련의 memcmp비교다. robotwork와 문자열 비교가 성공적으로 이뤄지면 무슨 일이 일어날까 세 개의 레지스터 값을 사용하는 모습이다. 11 PLIST 익스포트는 무슨 역할을 하는가 플랫폼 id와 버전을 확인한다. 12 그래프 모드를 이용해 sub_10004E79 상호 참조 그래프를 그려보자. 이 함수에 진입하기 위해 호출하는 API 함수는 무엇인가? 해당 API 함수에만 기반을 두고 이 함수를 어떤 이름으로 변경하겠는가?. 사용자 언어 정보를 공격자에게 전송한다고 추측할수있다. 그 기능에 맞게 함수 이름도 변경해주었다. 13 DllMain 이 직접 호출하는 윈도우 API 함수는 몇 개인가? 두 번째 깊이(depth o..
실습 예제 1. DLL entrypoint 주소 2. Imports 윈도우를 이용해 gethostbyname을 탐색 3. gethostbyname을 호출하는 명령어는 개수 4. 0x10001757에 위치한 gethostbyname호출을 통해 어떤 dns 요청이 이루어지는지 확인 5. 0x10001656에 있는 서브루틴에서 지역 변수 개수 6. 0x10001656에 있는 서브루틴에서 파라미터 개수 7. 디스어셈블리 내의 문자열 \cmd.exe /c찾기 8. \cmd.exe /c를 참조하는 코드 영역에서 무슨 일이 발생하는지 확인 9. 악성코드는 어떻게 dword_1008e5c4를 설정하는지 확인 1번은 간단하게 functions window에서 dll을 검색해서 ep를 찾는다. 0x1001516D가 ent..
기초 동적 분석 개요 - 기초 동적 분석이란 - 프로그램을 직접 실행하며 분석 - 악성코드 분석에서 가장 프로그램의 영향을 쉽게 파악 - 프로그램의 기능을 파악하기 위해 악성코드 실행 전후 상태를 조사 및 분석 - 분석 방법 - 악성코드 실습 시 발생하는 호스트/네트워크 환경 구성 - 파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인 - 실행 시 발생하는 네트워크 트래픽 분석 기초 동적 분석 도구 - 프로세스 모니터(procmon.exe) - 특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위를 모니터링하는 고급 도구 - ProcMon의 한계 - 특정 GUI와 장치 I/O 제어를 통한 루트킷 탐지 불가 - 네트워크 행위에 대해 일관성 있는 탐지 불가 - 프로세스 익스..
예제 악성코드 샘플을 통해 실습을 진행했다. 파일을 실행하지 않고 정적으로 분석을 진행한다. 먼저 악성코드의 이름과 같은 해시값을 추출해준다. 해시값을 바이러스 토탈에 검색하면 score는 51/71이다. 예제 샘플이라고 나온다. 바이러스 토탈에서는 더욱 자세한 해시값들과 패커까지 알려준다. 컴파일된 날짜를 확인한다. PEVIEW를 통해 확인할 수 있다. exe파일과 dll파일이 거의 동일한 시간대에 컴파일된 것을 확인할 수 있다. 패킹이 되어있는지 확인하기 위해 offset들을 확인해주었다. peid로도 확인해본 결과 패킹은 되어있지 않았다. dll의 IAT를 확인해주었다. Sleep을 통해 예약 스케줄링이 있다는 것을 예측할 수 있다. Mutex기능으로 중복 실행을 방지한다. 그리고 KERNEL32...
악성코드 분석 방법 순서 기초 정적 분석 - 비실행 기초 동적 분석 - 실행 고급 정적 분석 - 비실행 고급 동적 분석 - 실행 악성코드 분석의 네 가지 접근 방법 완전 자동화 분석 - 정적 분석 및 동적 분석을 통해 악의적인 행위를 판단 - 자동 분석 수행 - 전문가에 의해 분석되는 만큼 상세하거나 정확하지 않을 수 있음 - 악성코드 분석 제공 서비스 정적 속성 분석 - 악성코드의 추가 분석을 위해 필요한 단계 - 문자열 헤더 정보, 해시 값, 리소스 정보, 패킹 여부 등 신속하게 정보 획득 - 정보들을 활용해 실행 파일 간의 비교 데이터베이스를 구성 - 바이러스 토탈 서비스 대화형 동적 분석 - 레지스트리, 파일시스템, 프로세스, 네트워크 활동을 위해 분리된 가상 머신 환경에서 실행하며 분석 - 메모..
정적 분석에 쓰이는 프로그램 PESTUDIO이다. 첫 시작할때 나오는 화면이다. 파일 고유의 해시값, 파일 크기, 파일 종류 등을 확인할 수 있다. indicators 항목을 클릭하게 되면, 해당 파일의 중요한 정보들을 위험도 순으로 정렬되어 표시된다. VirusTotal 항목은 백신사의 탐지율을 나타내며 탐지명을 알려준다. fuctions항목과 libraries를 통해 dll 파일 및 함수 이름들을 확인할 수 있다. 직접 검색하여 무슨 기능을 하는지 파악을 해야 한다. pro 버전에서는 링크로 바로 연결하여 확인할 수 있다. tls-callback 및 resource 는 예제가 없어 스샷이 없다. tls는 진입점 이전에 실행되는 코드이다. 일반적으로 애플리케이션이 실행할 환경을 설정하는 데 사용할 수 ..
PE파일 개요 -Portable Executeable File Format 파일(File)이 +이식 가능한 다른 곳에 옮겨져도(Portable) +실행 가능하도록(Executable) +만든 포맷(Format) 윈도우에서 사용하는 실행 파일, DLL 파일 등을 위한 파일 형식 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캘슐화한 데이터 구조체 링킹을 위한 동적 라이브러리 참조, API 익스포트와 임포트 테이블, 자원 관리 데이터 그리고 TLS 데이터를 포함 - 실행 파일 컴파일 과정 Source.h(c언어) -> (compile) -> Source.obj 모든 헤더파일과 소스파일을 합쳐 하나의 기계어 코드 생성 Source.obj -> Link(Static Link Library, Impo..