전체 글 14

동아시아연구원 사칭 사건

분석 개요2022년 8월 메일 제목에 “동아시아연구원”이라는 신뢰할 수 있는 기관을 사칭하여 메일을 보내 악성 문서를 유포한 사건이다. 해당 악성 문서는 북한의 Kimsuky(김수키) APT 그룹이 제작하여 유포하며 워드의 매크로 기능을 이용하여 콘텐츠 사용을 누르면 악성 VBA가 실행 되도록한다.첨부된 doc 문서 파일 정보구분APT docTypedocBehaviorAPTMD5bf41074e39bb3abbe4e4640401e7e655DescriptionKimsuky(김수키) APT 동작 과정 & Mitre ATT&CK동작 과정Mitre ATT&CK 상세 분석 doc 문서를 실행하면 콘텐츠 불러오기 오류가 발생했다는 문구가 뜨며, 사용자가 문서를 제대로 사용할려면 콘텐츠 사용이라는 버튼을 클릭하여 매크로..

Reverse engineering 2023.01.26

중앙선거관리위원회 사칭 사건

분석 개요2022년 2월 APT 그룹인 금성121이 중앙선거관리위원회(선관위)를 사칭한 메일을 유포하였으며 메일에 같이 첨부한 제20대_대통령선거_선거권자_개표참관인_공개_모집(최종).hwp를 분석한 것이며 해당 한글 문서(HWP)를 실행하면 가짜 팝업이 나오며 확인 버튼을 누를 시에 내부에 숨겨진 악성 OLE 코드가 작동하는 형식이다. 첨부된 한글 문서 파일 정보구분APT HWPTypeHWPBehaviorAPTMD550eaf704298fe0aa74358fef68ce06b8Description금성121 APT 동작 과정 & Mitre ATT&CK동작 과정Mitre ATT&CK 상세 분석 해당 문서는 2021년 11월 26일에 저장되었으며 문서의 내용으로는 제20대 대통령선거 선거권자 개표참관인을 공개 모..

Reverse engineering 2023.01.26

ScareCrow ransomware

분석 개요 2022년 하반기에 발견된 새로운 랜섬웨어로 readme.txt라는 제목의 랜섬 노트를 생성하고 해당 랜섬 노트에는 피해자가 공격자와 연락할 수 있도록 3개의 텔레그램 채널이 있다. 또한, 랜섬 노트에는 금전적 요구 사항이 없지만 피해자는 암호화된 파일을 복구하기 위해 몸값을 지불해야 할 가능성이 높다. ScareCrow 랜섬노트 ScareCrow 랜섬웨어는 2022년 2월 초 소스코드가 유출된 Conti 랜섬웨어와 몇가지 유사한 점있는데 둘 다 chacha 알고리즘을 사용하여 파일을 암호화하고 wmic를 사용하여 volume shadow copy를 삭제한다. 파일 정보 구분 ScareCrow Type exe 실행 파일 Behavior ransomware MD5 7c97284ac8ce095d1..

Reverse engineering 2023.01.06

vohuk ransomware

분석 개요 2022년 하반기에 발견된 새로운 랜섬웨어로 분석가들이 이미 세 번째 버전이 등장한 상태라고 하며, 즉 랜섬웨어 개발자가 진지하게 랜섬웨어 향상과 업그레이드를 진행하고 있다고 볼 수 있다. Vohuk 랜섬웨어 감염 화면 Vohuk 랜섬웨어는 여타 다른 랜섬웨어와 같이 Windows 시스템을 대상으로 확산하고 있다. 또한, README.txt라는 파일에 협박 편지를 남겨두고 이메일을 통해 협상을 진행하는 것으로 확인됐다. 그리고 악성 행위에 대한 로그를 남긴다. 파일 정보 구분 vohuk Type exe 실행 파일 Behavior ransomware MD5 428e2d6500b98a6059153e4a99bee22c Description Vohuk Ransomware V1.3 동작 과정 Vohuk..

Reverse engineering 2022.12.27

UA WAR RAT

분석 개요 해당 악성코드는 지난 2022년 2월 24일 러시아와 우크라이나 간의 전쟁이 발발하였을 때 사용된 악성코드로 러시아 측에서 우크라이나의 주요 기반시설을 공격하기 위해 사용된 것으로 추측된다. 러시아와 우크라이나의 사이버 전쟁 해당 악성코드는 DCRAT(DarkCrystal RAT)이며, 시스템 메타데이터 수집, 감시, 정찰, 정보 탈취, DDoS 공격 기능을 지원하며, 스크린샷을 캡처하고, 키 입력을 기록하고, 클립보드, 텔레그램 및 웹 브라우저에서 콘텐츠를 훔칠 수 있는 기능이 있다. 파일 정보 구분 UA_WAR_RAT Type Exe 실행 파일 Behavior RAT MD5 5a87c607ad7f9463d56c2abc2ddffd36 Description DCRAT 동작 과정 해당 악성코드는..

Reverse engineering 2022.12.27

DLL injection

DLL injection - 다른 프로세스에 특정 DLL 파일을 강제로 삽입시키는 것임 - 다른 프로세스에게 LoadLibrary API를 호출하도록 명령하여 사용자가 원하는 DLL을 로드시키는 것임, 일반적인 DLL 로드와 다른 점은 로드 대상이 되는 프로세스가 즉 DLL이 원래 프로그램에 들어가야 할 DLL이 아닌 다른 DLL 즉 다른 프로세스가 들어가게 하는 것 - DLL injection 기법은 OS 핵심 DLL들이 자신만의 고유한 주소에 로딩되는 것을 보장해주는 Windows 특성을 이용하는 기법 DLL injection의 예시 DLL injection을 사용하는 목적 프로세스에 로드된 DLL파일은 프로세스 메모리에 대한 정당한 접근권한을 가지기 때문에 사용자가 원하는 모든일을 수행할 수 있음 ..

Reverse engineering 2022.02.13

DLL - 2

DLL 암시적 연결 (DLL Implicit linking) 실행 파일 자체에 어떤 DLL의 어떤 함수를 사용하겠다는 정보를 포함시키고 운영체제가 프로그램 실행 시 해당 함수들을 초기화한 후 이용하는 방법 DLL 암시적 연결 (DLL Implicit linking) - 실습 암시적 연결은 실행 파일과 동일한 경로에 DLL파일과 .lib파일이 있어야 함 Main.dll 프로젝트 생성 MainDll.cpp 파일 생성 MainDll.cpp파일의 계산기 출력 코드 #pragma comment : 라이브러리 파일의 경로를 명시적으로 나타날 때 씀 CreateDLL.dll과 CreateDLL.lib를 실행 파일과 동일한 경로에 옮겨 줌 MainDll.cpp를 실행 시켰을 때 DLL 명시적 연결 (DLL Explic..

Reverse engineering 2022.02.13

DLL - 1

라이브러리(Library) 자주 사용되는 표준적인 함수(개발에 자주 쓰고 기초적인 함수)를 시간적 소모를 줄이고 신뢰성을 높이기 위해 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 것 언제 메인 프로그램에 연결하느냐에 따라서 정적 링크 라이브러리(Static Link Library)와 동적 링크 라이브러리(Dynamic Link Library)로 나뉨 정적 링크 라이브러리(Static Link Library : LIB) 컴파일 시점에 라이브러리가 링커에 의해 연결되어 단일 실행 프로그램의 일부분이 되는 것을 뜻함 동적 링크 라이브러리(Dynamic Link Library : DLL) 실행 파일에서 해당 라이브러리의 기능을 사용시에만 라이브러리 파일을 참조 또는 다운로드 받아 기능을 호출하는 것을 뜻함..

Reverse engineering 2022.02.13

메모리 구조

메모리 구조 프로그램이 실행되기 위해서는 메모리에 로드되어야 한다 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 다음과 같다. 코드(code) 영역 - 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 부릅니다. - CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터(data) 영역 - 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다. - 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸..

Reverse engineering 2022.02.12

PE 구조 - 3

Section Section유형 Section 내용 Code .text 프로그램 실행 코드를 담고 있는 섹션 Data .data 읽고 쓰기가 가능한 데이터 섹션으로 초기화된 정적 변수 등이 위치 .rdata 읽기 전용 데이터 섹션으로 상수형 변수, 문자열 상수 등이 위치 .bss 초기화되지 않은 전역변수를 담고 있는 섹션 Import API .idata Import할 DLL과 API에 대한 정보를 담고 있는 섹션으로 대표적으로 IAT존재 .didata Delay-loading importDLL정보(프로그램 실행 후 DLL사용시에만 연결하며 릴리즈 모드 시 다른 섹션에 병합) Export API .edata Export할 API정보를 담고 있는 섹션(주로 DLL에서 사용되며 .text 또는 .rdata에 ..

Reverse engineering 2022.02.12