애드웨어 동적 분석
- process explorer
현재 동작 중인 모든 프로세스를 실시간으로 보여주고, 새로 실행되거나 종료되는 프로세스도 보여준다.
시스템에서 File의 변화(추가, 삭제)를 실시간으로 모니터링하는 도구이다. Registry의 변화 역시 실시간으로 모니터해주며, 시간별로 로그가 계속해서 기록된다.
LOCKBIT 2.0 동적 분석
처음 실행시킨 LockBitRansomware.exe 파일의 프로세스를 확인할 수 있고, 실행 후에 금방 종료됩니다.
이후 DLLHost 파일로 LockBitRansomware.exe 파일을 다시 실행시킵니다. DLLHost.exe 파일은 Microsoft Windows 운영 체제에서 COM 객체의 호스트 프로세스로 사용되는 파일입니다. Dllhost.exe는 COM 객체를 호스팅하는 프로세스로, 해당 COM 객체가 DLL 형태로 제공될 때 InprocServer32 레지스트리 항목에 지정된 DLL 파일을 로드하여 실행합니다. ⇒ COM Hijacking으로 추측하였습니다.
위 CLSID 중 COM Hijacking에 사용되는 CLSID 값이 있습니다.
이외에도 두번째 실행되는 LockBitRansomware.exe 에서 랜섬웨어 암호화 및 랜섬노트를 드랍합니다.
Run 레지스트리 키를 설정하는 것을 확인할 수 있었습니다.
실제 감염 화면과 랜섬노트
CONTI 정적 분석
처음 접속 화면
시작 지점
DOS Stub code
This is program cannot be run in DOS mode → 윈도우에서 실행되는 파일(윈도우에서 실행되는 것을 알 수 있음)
NT_Header
file_header
014c: intel CPU
Number of Sections: 섹션의 개수
Time Date Stamp: 5F92A8DE를 10진수로 계산하고 초를 기준으로 저장하기에 pc의 기준이 되는 날인 1970년 1월 1일 0시에 더해주면 지금의 타임 데이터가 나옴
Characteristics: 파일 형식 정보, OR연산을 이용해서 각 필드의 정보를 보고 어떤 속성인지 알 수 있음. 여기선 executable형식과 32bit임을 알 수 있음.
OPTIONAL_HEADER
magic, address of entry point, sub system을 주의깊게 관찰
Magic
010B는 32bit에 해당하는 값이므로 32구조체임을 알 수 있다
Size of Code
코드영역 크기, 0004E200이 내 코드영역의 크기
★Address of Entry Point
프로그램의 실제 시작주소로 악성코드에서 악용가능. 악성코드를 특정 번지에 심어놓고 그곳을 실행주소로 지정→악성코드 시작 지점으로 지정 가능
00018F55이므로 파일 실행시 Image Base(400000)+01F855부터 시작한다
Best of code
코드영역이 시작되는 상대주소로 00001000. 코드영역이 Image Base(400000)+0100부터 시작한다.
Image Base
PE파일이 메모리에 로드되는 시작주소. 보통 exe, DDL번지로 설정한다.
Section Alignment
메모리에서 섹션의 최소 단위로 시작주소는 이 값의 배수
1000이므로 섹션의 크기는 1000의 배수가 되고 빈공간은 0으로 채우게 된다
File Alignment
파일에서 섹션의 최소 단위, 시작주소는 이 값의 배수로 0200이다
Size of Image
PE파일이 메모리에 로딩될 때 전체 크기. 0007D000, 파일이 로딩 시 전체크기 0x7D000, file alignment의 배수
Size of header
모든 헤더의 크기. 0400
Sub System
1은 system driver, 2는 GUI, 3은 CUI인데 2니까 GUI
Number of RvaAndSizes[visual studio에서 #include<winnt.h>입력하고 우클릭→문서보기 하면 해당 파일 열람 가능.
Data Directory의 구조체 멤버 개수 0x10(16)
.text 부분
Name: 섹션 이름. 2E 74 65 78→ test 섹션임을 의미한다
Virtual size: 메모리 섹션 크기. 4E1E8
Virtual Address
: 메모리 섹션의 시작 주소, RVA. optional header의 base of code값과 동일하다
Size of Raw Data: 파일에서의 섹션 크기, 0400
Characteristics: 섹션의 정보 표시, OR연산으로 표시로 60000020은 읽고 쓰기가 가능한 코드 섹션임을 의미한다.
💡
20000000→실행
40000000→읽기
20→코드
'4-2. 2024-1 심화 스터디 > 윈도우 악성코드분석' 카테고리의 다른 글
[악성코드 코드 분석] (0) | 2024.05.24 |
---|---|
[악성코드 코드분석] (0) | 2024.05.10 |
[악성코드 매뉴얼 분석] (0) | 2024.04.05 |
[악성코드 정적 분석] (0) | 2024.03.22 |
[악성코드 분석 개요] (0) | 2024.03.15 |