학회_공부해요/기술_스터디

[AhnLab] 서명 툴로 실행되는 X로더 악성코드 주의

yenas0 2025. 2. 4. 06:44
반응형

https://www.ahnlab.com/ko/contents/content-center/35726

 

서명 툴로 실행되는 X로더 악성코드 주의

AhnLab의 콘텐츠 센터는 보안 트렌드, 위협 분석 정보, 위협 대응 방안 등 다양한 콘텐츠를 제공합니다.

www.ahnlab.com


안랩에서 DLL 사이드 로딩 기법을 사용하는 X로더 악성코드의 유포 정황을 확인

 

DLL 사이드 로딩

정상적인 응용 프로그램과 악성 DLL을 같은 폴더 경로에 저장해 응용 프로그램 실행 시 악성 DLL이 함께 동작하도록 함

 

DLL 로딩 방식 이해

1.  절대 경로 로딩

: 애플리케이션이 DLL의 전체 경로를 지정하여 로드하는 방식으로 보안적으로 안전하지만 사용량이 적음

 

2. 상대 경로 및 검색 순서 기반 로딩

: 프로그램이 특정 디렉토리에 있는 DLL을 우선 로드하고 못찾으면 시스템 경로 탐색

 

  • 공격자는 정상 프로그램 실행 시에 특정 DLL을 로드한다는 사실을 이용
  • 원본 DLL 존재 경로에 악성 DLL 미리 배치해 프로그램이 이를 먼저 로드하도록 유도
  • 프로그램이 정상 실행처럼 보여도 내부에서는 악성 코드의 실행이 이루어짐

 

위 본 글에서 소개된 사례에서는 X로더 실행 시 정상 응용 프로그램 jarsigner가 사용되었음

 

 

Jarsigner

: JAVA 파일의 디지털 서명 및 검증을 수행하는 도구로 JDK에 포함되어있음. JAR 파일의 무결성 보장 및 신뢰할 수 있는 소스로부터 제공되었음을 증명하는 데 사용

주요 기능으로는 JAR 파일에 디지털 서명 및 서명 검증이 있음

 

XLoader 유포 방식

1. 압축 파일 형태로 유포

  • 압축 파일 내부에는 ① 정상 EXE 파일, ② 악성 DLL 파일 포함
  • 정상 파일명: Documents2012.exe (원래 jarsigner.exe)
  • 악성 DLL 파일: jli.dll, concrt140e.dll

2. 악성 DLL의 역할

  • jli.dll: 변조된 DLL로, concrt140e.dll 파일을 복호화하고 실행
  • concrt140e.dll: 암호화된 XLoader 페이로드 포함

3. 악성 코드 실행 과정

  • Documents2012.exe 실행 시 jli.dll을 로드
  • jli.dll 내부의 모든 export 함수 주소가 동일 → 호출 시 악성 코드 실행
  • concrt140e.dll이 복호화되며, aspnet_wp.exe 프로세스에 인젝션
  • 최종적으로 XLoader가 실행되어 사용자 PC 감염

 

 

DLL Side-Loading 기법 실습

리버싱 핵심원리 스터디 때도 아마 비슷한 글은 작성했던거 같긴한데 챕터 몇이었는지 기억이..

 

아무튼 환경은 윈도우11, Visual Studio, Sysinternals, PEView 이렇게 사용

 

 

notepad.exe를 예제로 함

 

 

1. Notepad.exe에서 불러오는 DLL을 확인

2. 악성 DLL 제작

#include <windows.h>

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        MessageBox(NULL, L"악성 DLL이 실행되었습니다!", L"DLL Side-Loading", MB_OK);
    }
    return TRUE;
}

이렇게 해서 빌드하고 나면 악성 DLL이 로드됨

위에 빌드한 DLL을 notepad.exe랑 같은 폴더에 복사하면 메시지 박스가 뜨게 된다.

이런식으로 뜨면 끝~

반응형