패스트터틀

지능형 사이버 위협 (19.5.7) 본문

Cyber Security(undergraduate)/cyber threat

지능형 사이버 위협 (19.5.7)

SudekY 2019. 5. 7. 13:05

지능형 사이버위협이란?

 

사이버 위협 및 보안의 시작은 71년도에 Creeper 라는 네트워크를 왔다갔다 하는 웜과 Reaper라는 Anti-웜 으로 Creeper를 막는프로그램이고 Morris Worm은 최초의 악성코드 및웜 바이러스로 알려져 있음

 

사이버 위협은 시간이 지남에 따라 지능,전문,체계화되고 개인뿐만아니고 나라 , 인프라를 공격하는 규모가 커지고 악성코드도 단일 악성코드에서 다양한 악성코드를 사용하여 여러가지 기능을 하는것으로 발달하고 결론적으로 엉청나게 규모가 커졌고 위험해졌음

 

Virus -> Worm -> Trojans -> DoS -> Malware -> Botness -> APT

 

이런식으로 발달하였고 사이버위협의 다양화 관점에서 보면은 국가,주 에서 정치적 목적으로 또 사이버위협으로 돈을 버는것은 Hacktivism( 정치·사회적 목적으로 이루기 위해 해킹하거나 목표물인 서버컴퓨터를 무력화하고 이런 기술을 만드는 운동이다. ) 을 사용하여 특정한 목적을 달성하기위해, 또는 상대기업의 기술유출과 같은것이 있다.

 

지능형사이버위협을 대응하기 어려운이유는 4가지가 있는데 

  1. Actor (바이러스 토탈에서는 초에 몇십 몇백개 검색) : 목적에 따라 사이버위협의 주체가 다양해짐
  2. Method : 공격에 악용하는 악성코드, 취약점 등의 종류가 다양하고 폭발적으로 늘어나고 있음
  3. Complexity : 시스템 및 소프트웨어 등의 구조가 복잡해져 보안성을 보장하기 어려움
  4. Vector : 기술의 발전으로 인해 공격대상 및 벡터가 다양해

위의 4가지를 해결하려면 완벽한 소프트웨어 , 시스템, 대응책이 필요한데 무한한 자원과 완벽함이 필요하기에 불가능하다고 보면됨

 

그렇다면 이것을 어떻게 해결하느냐면

 

Cyber Attack Lifecycle(Mandiant-FireEye)

라고 해서 공격방법에 대해서 패턴화시킨것임 방어자들은 공격자들만큼 부지런하고 패턴들을 파악해서 총 7단계가 있는데

 

Initial Compromise : 공격자가 대상에 악성코드나 백도어를 설치하는단계

Establish Foothold : 공격자가 실행하는단계

Escalate Privilege : 공격자가 서버에서의 권한을 높이는 단계

Internal Reconnaissance : 내부정찰단계로 다른시스템(ex직원이 사장컴퓨터로)으로 이동하기 위해 탐구하는단계

Move Laterally : 공격자가 목표로하는시스템으로 이동하는 단계

Maintain Presence : 지금은 필요한 정보나 데이터가 없을수도 있지만 목표를 위해 유지하는단계

 

Cyber Kill Chain(Lockhead Martin)

 

Reconnaissance : Scanning , OSINT 등의 정보수집

Weaponization : 악성코드,백도어 프로그램 작성

Delivery : Spear Phishing, 

Explotation : 실행

C2(Command & Control) : 추가공격

Actons on Objectives : 목적달성

 

MITRE ATT & CK TTP

(Tactics / Techniques / Procedure)

 

A악성코드 B악성코드 C악성코드 .. 등등 계속 들어오고 이것들이 변조되고 하니 이것들을 패턴을 파악하여 알려주는

 

https://www.mitre.org/

 

The MITRE Corporation

MITRE's ATT&CK™ Evaluations program will assess commercial cybersecurity products based on techniques used by APT29/Cozy Bear/The Dukes. Read More By embracing the full range of diversity, we foster an inclusive environment where innovation grows—and our p

www.mitre.org

 

패턴들을 모아모아서 프로파일링하는것이라고 보면됨

 

Tatics : 특정위협 주체가 공격 기간동안 단계적으로 수행한 위협 및 공격 방법을 의미

(ex 어떤 그륩은 택틱을 1,4,6 쓰면 다음번에 그 패턴이 발견될경우 그 그룹이라고 단정지을수있음)

(사례화)

Techniques : 특정 위협 주체가 공격기간동안 중간중간 결과를 얻기 위해 사용하는 해킹 및 공격 기술

(사례를 포함할수 있는 큰 공격)

Procedure : 특정 위협 주체가 공격기간동안 각 각 단계에서 사용한 실제 공격 접근방법 및 실제적인 움직임을 의미

(사례의 실제적인 공격)

 

기업에서 관제를 할경우 엉청난 이벤트가 발생하는데 이런것들을 패턴화 했을경우 공격과 비공격을 나누어서 로그를 줄일수있음

Tactics로 초기에 공격을 탐지하고

techniques로 조직의 사각지대를 파악

Procedure 공격자가 궁극적으로 무엇을 원하는지 파악

 

Example ) Trojan War


1)

Tactics : Execution

Technique : Local Job Scheduiling

Procedure : 트로이목마에 잠입해었던 병사들은 목마에서 나온 후,트로이 성의 문을 열어 대기중이던 그리스 연합군이 입성하도록 도움

 

2)

Tactic : Initial Acess

Technique : Spear Phishing Attachment

Procedure : 트로이 목마는 신에게 바치는 상징물이며, 거짓예언을 퍼뜨려 트로이군이 목마를 성안으로 옮기도록 함

 

SCAP(Security Content Automation Protocol)

 

배치된 시스템 및 어플리케이션에 대한 취약성을 관리,측정,평가를 자동화할 수 있도록 하는 표준 및 프로토콜을 의미

사이버 위협에 대비하기 위해 여러개의 공개된 표준을 통합하여, 조직에서 사용하는 시스템 및 어플리케이션의 취약성을 열거할수 있도록 지원 + 취약성의 영향도를 측정하는 방법 제공 

이러한 자동화된 기능을 수행하기 위해 필요한 구성요소SCAP Component 버젼에 따라 여러가지 표준들로 구성됨

 

STIX

 

Structured Threat Information eXpression 

사이버 위협 정보를 표현하고 모델링하기 위한 언어

 

 

TAXII

 

Trusted Automated eXhange of Indication Information 

 

STIX & TAXII

n개의 그룹이 있다고 할때 이런 그룹에 대한 패턴을 파악하기 위한 모델링을 공유하는것

 

STIX 2

 

모델링하는언어

 

sDos(STIX Domain Objects)

 

Attack Patter : Threat Actor가 대상을 공격하기 위해 사용한 ttp을 서술하는 방법

Campaign : 특정 대상에 대하여 일정기간 동안 발생한 악의적인 행동 및 공격의 집합인 공격자 그룹의 행위

Course of Action : 공격을 예방하거나 대응하기 위한 조치

Identity : 각 개인 조직, 그룹 혹은 그들의 집합을 의미

Indicator : 의심스럽거나 악의적인 사이버 상의 행동을 탐지하기 위해 사용되는 패턴

Intrusion Set : 단일 Threat Actor에 의해 사용되었다고 여겨지는 공격자 행동 및 자산 그룹

Malware : TTP의 일종으로, 대상의 데이터 및 시스템 공격하기 위해 사용된 악성코드 및 소프트웨어

Observed Data : 공격이 발생했을때 관측된 정보, IP같은 관측된정보

Report : 위협요소나 악성프로그램 같이 위협 정보의 집합

Threat Actor : 악의적인 의도를 가지고 오퍼레이션을 수행한 개인, 그룹 혹은 조직

Tool : 공격을 수행하기 위해 Threat Actor가 사용한 적법한 소프트웨어 및 프로그램(공개된 툴, 윈도우즈에서 Powershell을 썻다거나 같이 적법한 툴?)

Vulnerability : 시스템이나 네트워크의 접근권한을 흭득하기 위해 해커가 직접적으로 사용한 소프트웨어 취약점

 

SROs(STIX Relationship Objects)

Relationship : 두개의 SDOS을 연결하고 어떤 연관인지 서술할때 사용

Sighting : CTI와 관련된 요소 발견되었음을 나타낼 떄 사용

 

STIX2 작성

 

공격시나리오 파악 및 검토 - 필요한 SDOs 선별 - 각 SDOs의 속성값 작성 - SROs로 객체간 관계정의

                                                               (STIX홈페이지에 정의되어있음)   

 

https://github.com/oasis-open

 

OASIS TC Open Repositories

Supporting open source development of resources associated with OASIS Technical Committees - OASIS TC Open Repositories

github.com

eXAMPEL)

 

시나리오 : Adversary Bravo로 알려진 공격자가 대상 시스템에 원격 제어가 가능한 억성코드를 심기 위해 피싱 공격 수행

공격자가 피싱 공격을 이용해 심는 악성코드는 Poison Ivy 변동

 

SDO를 전부 다 기입하고 필요한것만 빼서 작성하고 

속성에서는 common은 공통된 속성값으로

type,id,created by_ref , creted,modified,reload,modified(객체가 수정된 시간(중요)),labels(선택적값), eternal_reference(참조할수있는 그런 정보들?)

 

SDO 중  Threat Actor 작성 예

 

type : threat - actor

created : 2018-05-...

modifed : 2018-05-....

name : Advsary Bravo

description : 원격 제어 악성코드 전달을 위한 파싱 공격

labels : 

 

 

exam)

 

Labels                 Description 

criminal  개인적인 금전적 이익을 위한 범죄자

spy 판매나 직접 사용을 위해 기밀 정보 수집

 

SDO 중 Identity 작성 예

 

identity_class Description 

type 에다가 이거 쓰면 됨

Individual 개인단위

group 비공식 그룹

organization

class

unknown

 

 

이런식으로 각 SDOs를 보고 type에 차근차근 작성을 하면됨 

그렇게 해서 전부다 작성을하면 json형태로 됨 그리고 이렇게 하고 TAXII를 쓰면 공유가됨

 

TAXII는 두가지 종류가 있는데

1. (Collection)구조

Server - Client 구조와 ,    

2. (Channels)구조

TAXII - TAXII Server - Taxxi client

                            - Taxxi client

 

IoCs(Indicators of Compromise) VS. TTPs(Tatics, Techniques, Procdures)

 

둘을 비교하면은

 

우회를 위해 악성코드 제작에게 필요한 노력

 

피라미드

TTPs 특정그룹에 패턴을 파악하면 결국에는 패턴을 바꿔야됨

Tools 코드의 비교적 큰 부분부분을 변경하거나 새로운 도구를 개발하는 시간 소요

Networ/Host Artifacts 바꾸면됨, 어느정도 시간이 소요됨

Domain Names 바꾸면됨

IP Addresses IP도 우회가능(서버 바꾸면됨, IP주소 바꾸면됨)

Hash Values  해쉬도 우회가능(파일조금바꾸면 바뀌는 해쉬특성때문에)

 

피라미드가 상위단계로 갈수록 엉청난 시간관 노력이 필요하고 TTPs는 최상의 단계로 결론적으로 힘듬

그래서 각광을 받고있음

   

IoC based Detection TTP TTP based Detection
Detection of tools privilege escalation
비밀번호 덤프 도구 자체를 탐지하기위해 시도 낮은권한으로 실행되고 있는 프로세스의 권한 상승

실행되고 있는 부모 프로세스의 자식 프로세스나 쓰레드가 더 높은 사용자 권한으로 실행되고 있을 때

Lateral Movement

Pass The Hash Attacks

Pass-The-Hash 공격을 위해 계정정해시를 덤프하고 재사용하는 도구 식별 시도 캐싱된 계정 정보(+해시) 를 덤프하여 인증에 사용 특정사용자가 임의의 리소스에 접근하기 위해 동일한 컴퓨터에서 다른 사용자의 ID를 사용하는 경우
Command and Control Domain Generation Algorithm(DGA)
IoC에 등록된 특정 도메인을 찾거나, DGA 알고리즘을 분석하여 규칙에 따라 Blacklist지정 악성코드가 통신이나 주가 악성코드 다운로드를 위해 사용하는 도메인 이름을 동적으로 생성 특정 프로세스가 DNS Resolve에 실패하는 도메인 이름을 생성하여 연결을 시도하는것을 모니터링

 

사이버 위협,공격의 단계

 

Attack Lifecycle, Cyber kill Chain, TTPs는 서로 공통되는 부분을 가지고 있다.

 

Watering hole Attack(Drive-by Compromise)

맹수가 사냥감을 직접 찾아 다니지 않고, 사냥감이 올만한 물웅덩이 근처에서 잠복해 있다가 사냥하는 방식

-> 물엉덩이만 잘 파악하면 개꿀

 

  1. Profile Victim == Find Watering hole
  2. Find Vulnerabilities of websites(Watering Hole=s)
  3. Inject a link pointing to 'Attacker's Exploit Code'
  4. Watering

여기서 3,4단계 만 할경우

 

실습을 할때

 

공격자(왼쪽, 우분투) , 피해자(윈도우xp)

 

Metaspoloit? 에서 알려진 취약점을 선택해서 해당 취약점코드를 사용해서 실행후

 

서버주소 물어보면 해당 서버를 공격

그리고 리쿼스트서버(정보 받는서버)하고

리다이렉션하는 url입력하고

해서 연결하고 shell 로 ipconfig입력해서 해킹완료했었음

 

exec페이로드 설정후 계산기 실행해놓게하고 설정하고 홈페이지 url 들어가니 계산기 들어가졌음

 

페이로드로 다른 악성코드 실행하게끔도 가능함

 

Spear Phishing Attack

 

사회공학적공격(사람들간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법을 일컫는다.)

기법 중 하나로, 대상 시스템을 공격하기 위해 특정 인물을 공격하는 방법

주로 대상 시스템에 속한 인물 중 중요한 권한을 가지거나 주요한 업무를 하는 경우, 티켓이 되기 쉬움

(ex인사당담자 -> 외부와의 이메일이 가장많음)

 

Attachment

이메일에 첨부하는 첨부파일을 이용한 스피어피싱 ,첨부파일을 열어야하는 이유를 같이 제공하여 보냄

 

Link

이메일자체에 악성파일을 첨부하지 않고, 악성코드를 다운로드하도록 하는 링크를 포함하는 스피어피싱 형태

 

Service

 

공격 대상 시스템의 제어권에 포함되지 않은 소셜미디어, 메신저 서비스 등을 이용

 

Reconnaissance for Spear Phishing Attack

 

SocialScan

 

어떤 이름으로 사용되어있는 사용자가 있는지 모든 Social을 검색해주는것( 인터넷에 공개되어있는 )

 

이 서비스는 중복테스트로 확인하는건데 사실 이게 엉청 유용하지는 않음

 

Email Havester

 

검색에서 크롤링으로 긁어모아 보여주는것

실습에서는 example.com 으로 끝나는 이메일주소를 전부 검색했었음

이런식으로 삼성회사의 이메일서버 대상의 정보를 조금조금씩 줄일수있음 흭득한 이메일주소로 스피어 피싱 이메일을 날릴수있음

 

Supply Chain Attack

 

공급망에 침투하여, 사용자에게 배포 및 업데이트되는 소프트웨어 및 하드웨어 이미지를 변조

Xshell이라고 터미널만드는 회사에서 공급망이라고 하는 소스버젼,인스톨러등 모아두는곳에 악성코드가 침투되어 악성코드가 첨부된것들이 사용자들에게 전부 배급되었음

이런식으로 소프트웨어 업데이트 및 배포 매커니즘을 조작, 배포되는 소프트웨어를 직접 변조 및 대체

 

최근에는 ASUS [19.03.26] 사건이 있다.

 

Service Execution

 

윈도우 서비스와 상호작용을 통해 특정 악성 바이너리나 스크립트 등을 실행할 수 있음

1) 서비스 컴파일러가 스타트서비스()호출

2) 서비스 프로세스에서 스타트서비스컨트롤디스패쳐() 호출

3) 서비스 프로세스에서 셋서비스스테이터스 호출

 

악성코드가 Service를 이용하여 execution을 하는이유는 서비스는 System 권한을 포함한 다른 계정의 권한으로 실행 가능, 부팅때마다 실행되기에 지속적 보장, 그리고 탐지가 어렵기도함(서비스로 된 프로세스는 안뜸), 서비스를 사용하는 악성코드들이 많음 여러가지 이유가 있겠지만 권한과 지속성이 굉장히 클듯함

 

어떻게 구성이 되냐면 악성코드가 scm에 서비스 등록요청 그러면 scm은 Maicious dll(악성코드 dll)을 보고 서비스로 등록

이것은 레지스트르에 등록됨

(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services 에 보면은 이곳에 dll과 함께 등록되어있음)

 

관리자권한만 얻으면 제약없이 등록할수있음

 

Powershell

 

Vista이상에서 Windows Operating System에 탑재된 스크립트 언어(윈도우 외 플랫폼에서도 사용 가능)

사실은 관리목적으로 나왔지만 악성코드들이 자주 사용함

PowerSploit : powershell module for post-explotation

post-explotation은 대상 시스템 감염을 통해 제어권 흭득 후 추가적으로 수행하는 공격들을 의미

 

PowerSploit에서 제공하는 기능

Code Execution : 공격 대상 머신에서 코드를 실행

ScriptModification : 탈취한 시스템에서 실행을 위한 스크립트를 준비하는데 필요한 유틸리티 기능

Persistence : 파워쉘 스크립트의 persistence(영속성) 속성을 추가

Exifidation..

...

...

등 많이있음 (검색바람)

 

AppCert DLLs

 

dll 은 동적라이브러로서 윈도우즈의 api에서 생성되는 윈도우즈 프로세스에서는 AppCert dll이 전부 실행됨

 

그렇기 때문에 여기에다가 넣으면 dll이 실행이됨

 

HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls

 

 

AppCertDlls 는 지금 보안때문에 사라진것같다. 그냥 만들어준다.
미리준비한 dll파일들
대충 키값을 만들어주고 data만 dll경로로 적어준다.

 

 

 

 

노트패드를 실행하면 Hello World! 가 실행된다.

 

 

 

AppInit DLLs

 

똑같이 레지스트리에 경로적고 하면 위와 비슷한 효과를 지님

 

Registry Run Keys / Startup Folder

 

런키로 등록해서 계산기 실행 , 시작프로그램에 등록해서 계산기실행

아주 간단한 방법

 

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 이곳에다가 파일복사

 

 

시작프로그램 이용

 

 

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

 

이쪽에 삽입후 Log off후에

 

재부팅후 화면

 

Applnit DLLs

 

비슷한것

 

Winlogon Helper DLL

 

winlogon : 사용자 logon/logoff 와 Ctrl+alt+del를

 

참고 : 

https://attack.mitre.org/techniques/T1004/

 

Technique: Winlogon Helper DLL - MITRE ATT&CK™

Winlogon.exe is a Windows component responsible for actions at logon/logoff as well as the secure attention sequence (SAS) triggered by Ctrl-Alt-Delete. Registry entries in HKLM\Software[Wow6432Node]Microsoft\Windows NT\CurrentVersion\Winlogon\ and HKCU\So

attack.mitre.org

 

New Service & Modifying Existing Service

 

https://attack.mitre.org/techniques/T1031/

 

Technique: Modify Existing Service - MITRE ATT&CK™

Windows service configuration information, including the file path to the service's executable or recovery programs/commands, is stored in the Registry. Service configurations can be modified using utilities such as sc.exe and Reg. Adversaries can modify a

attack.mitre.org

 

Scheduled Task

 

at, schtasks.exe 유틸리티를 이용하여 작업예약으로 프로그램 실행 

 

작업예약을 통한 실행

 

BITS Jobs

 

BITS는 BAckground Intelligent Translate Service로 운영체제의 유휴대역폭을 사용

유휴대역폭을 사용하기 때문에 업데이트관리자나 메신저와 같이 백그라운드에서 동작하는 애플리케이션이 주로 사용

BITS 작업을 생성 및 모니터링하기 위해서는 bitsadmin.exe(CU )나 Powershell사용

1) Bits Job Queue 생성

2) Bits jobs을 queue에 추가

3) 작업완료후, 실행할 프로그램 지정

4) 작업 제개(Trigger)

 

BITS ADMIN에 persisment큐의 나만의 작업이고 192.168.1.100을 받아오는 작업을 받아오고 작업이 완료되면

계산기를 실행하는것을 ppt로 보여줬고 서버가 없어서 설명으로만 강의

 

WMI Event Subscription

 

공격자는 윈도우 관리 도구(WMI)를 이용하여 특정 이벤트를 구독

해당 이벤트가 발생할 때마다 특정 코드를 실행하도록 하여 Persistence 달성 가능(SYSTEM 권한)

Persistence with WMI Event subscription

 

powershell를 사용하여 60초에서 ~ 5초마다 이벤트를 발생하는것을 만들기

 

혹시모를 방지 풀기

 

0) Query & Environment Set

 

$filterName = ‘PersistFilter’
$consumerName = ‘PersistComsumer’
$exePath = “C:\Windows\System32\notepad.exe
$query = “select * from __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA ‘Win32_LocalTime’ AND TargetInstance.Second = ‘05’ GROUP WITHIN 60”

 

 

 

1) WMI Event Filter

 

$WMIEventFilter = Set-WmiInstance -Class __EventFilter -Namespace "root\subscription" -Arguments @{Name=$filterName;EventNamespace="root\cimv2";QueryLanguage="WQL";Query=$query}

 

2) Event Consumer

 

PS C:> $WMIEventConsumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "root\subscription" -Arguments @{Name=$consumerName;CommandLineTemplate=$exePath}

 

3) Filter - Consumer 연동

 

PS C:> Set-WmiInstance -Class __FilterToConsumerBinding -Namespace "root\subscription" -Arguments @{Filter=$WMIEventFilter;Consumer=$WMIEventConsumer}

 

4) 조회 및 제거

 

PS C:> get-wmiobject -namespace root\subscription -Class __eventfilter
PS C:> Get-WMIObject -Namespace root\Subscription -Class __Eventfilter -Filter "Name='PersistFilter'" | Remove-WmiObject -Verbose

PS C:> get-wmiobject -namespace root\subscription -Class CommandLineEventConsumer
PS C:> Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer          -Filter "Name='PersistConsumer'" | Remove-WmiObject -Verbose

PS C:> get-wmiobject -namespace root\subscription -Class __FilterToConsumerBinding
PS C:> Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer           -Filter "Filter=__EventFilter.Name='PersistFilter'" | Remove-WmiObject -Verbose

코드가 되는지 확인못해봄
하고선 processhacker로 확인가능

 

이것을 하면 WMI밑에 하위 프로세스에 노트패드나 계산기 더 나아가 다양한 조건을 추가하면 특정 프로그램이나 악성코드 삽입가능

 

 

DLL Injection 

 

DLL == 동적 연결 라이브러리

동일한 기능을 여러 프로그램에서 사용하고 싶을 때, 동시에 ...

다른 프로세스에 강제적으로 LoadLibrary()를 호출하도록 하여, 공격자가 원하는 dll을 해당 프로세스에 로딩시키는 기술

안젝션 된 dll은 대상 프로세스 메모리에 유효한 접근권한을 가지고 해당 권한 및 프로세스 내의 모든 메모리 영역에 접근 가능

인젝션 된 dll은 대상 프로세스의 실행 권한으로 실행 --> priviliege Escalation 가능

다음의 기법도 dll Injection 공격 방법의 일종

Applnit Dlls

AppCert Dlls

DLL Serarch Order Hijacking

1)OpenProcess()를 이용하여 대상 프로세스의 PID 흭득

2)VirtualAllocEx()함수를 호출하여 대상 프로세스 메모리에 dll경로 인젝션

3)

..

 

다음 실습에 있다고함

 

DLL Search Order Hijacking

 

내가 어떤 dll로드 할거라고 지정하지는 않지만 

 

공격자들이 windows 시스템이 dll을 로딩할 때 사용하는 dll 검색 로직을 악용하여 상승된 권한을 획득할 수 있음

검색 로직을 이용하여 특정 프로그램이 로딩하려는 dll보다 먼저 검색 및 로딩하도록 악의적인 dll을 위치시킴

혹은 정상 dll을 악성으로 교체하거나, 애플리케이션 설정이 있는 manifest 등을 수정하여 악성 dll을 로딩하는 방법도 있음

공격자는 로컬 환경 뿐만 아니라 원격에서 대상 프로그램의 현재 디렉토리를 웹 공유 디렉토리 등으로 설정하여 공격 가능

Windows의 Dll검색 순서는 레지스트리로 설정할 수 있는 EafedllSearchMode에 따라 달라짐(XP 이후부터 기본 Enable)

 

SafeDllSerachMode(Enable)

SafeDllSerachMode(disable)

 

마이크로소프트 홈페이지에 있음

 

공격대상프로그램이 c밑에 유저밑에 엘리스 밑에 어드민이라면 얘가 기본적으로 정상 dll을 실행하는데 (시스템32밑에있는) 이거는 두번째나 3번재로 검색됨 (시스템 디렉토리기떄문)

exe파일이 위치한 디렉토리를 먼저검색하기때문에 c밑에 유저밑에 엘리스 밑에 어드민에 악성 dll을 하면은 검색순서가 이게 빠르기 때문에 악성코드를 먼저 실행함(검색순서악용)

 

Exploitation For Priviliege Escalation)

 

권한이 높은 시스템 드라이버, 애플리케이션 등의 취약점 권한이 높은 프로그램을 이용? 하는건가 싶음

1)공격자는 초기 접근 시에 낮은 권한의 프로세스로 악성코드를 실행

2)공격자가 목표로 하는 정보나 데이터를 얻기위해서는 권한문제로 사용불가

3) 높은권한으로 실행되고 있는 특정시스템 어플리케이션의 취약점을찾아서

4) 그점을 노려 권한을 노림

 

 

 

 

 

 

 

Comments