T1218.008 — ODBCCONF.exe를 사용한 DLL 실행

May 08 2023
ODBCConf.exe 란 무엇입니까? ODBCConf.

ODBCConf.exe 란 무엇입니까?

ODBCConf.exe는 ODBC(Open Database Connectivity) 데이터 원본을 관리하는 데 사용되는 Microsoft Windows 유틸리티입니다. ODBCConf.exe를 사용하면 컴퓨터에서 ODBC 드라이버와 데이터 원본을 구성하고 관리할 수 있습니다. ODBC는 SQL(Structured Query Language)을 사용하여 다른 데이터베이스의 데이터에 액세스하기 위한 표준 API(Application Programming Interface)입니다.

ODBCConf.exe는 일반적으로 Windows 설치의 "System32" 폴더에 있으며 명령 프롬프트 또는 실행 대화 상자에서 액세스할 수 있습니다.

위협 행위자가 어떻게 ODBCconf.exe를 악용할 수 있습니까?

위협 행위자는 맬웨어 지속성, 데이터 유출, 자격 증명 도용, 악성 소프트웨어 실행 등을 포함하여 다양한 방식으로 ODBCConf.exe를 남용할 수 있습니다.
이 글에서는 위협 행위자가 odbccong.exe 바이너리를 사용하여 악의적인 DLL을 실행할 수 있는 방법을 다룰 것입니다.

calc.exe를 실행할 DLL을 만드시겠습니까?

다음 C++ 코드는 Visual Studio를 DLL로 사용하여 컴파일할 수 있으며 컴파일된 DLL을 실행하면 calc.exe가 생성됩니다.

#include <windows.h>

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
        case DLL_PROCESS_ATTACH:
            // Execute Calculator
            WinExec("calc.exe", SW_SHOW);
            break;
    }
    return TRUE;
}

https://github.com/cyb3rjy0t/CalcDLL

ODBCCONF.exe를 악용하여 DLL 실행

명령을 실행하면 다음 아티팩트가 생성됩니다.

발각

Windows Sysmon 로그 관찰 후 가능한 탐지

  1. 이벤트 ID 1에서 프로세스 명령줄 모니터링
  2. event.code: 1 AND (process.name: "odbcconf.exe" OR original.file_name:"odbcconf.exe") AND process.command_line:("regsvr" AND ("/A" OR "-A"))
    
           
                    

    event.code: 1 AND parent.process.name: "odbcconf.exe"
    

    event.code: 7 AND process.name: "odbcconf.exe"
    

  3. https://attack.mitre.org/techniques/T1218/008/
  4. https://dmcxblue.gitbook.io/red-team-notes-2-0/red-team-techniques/defense-evasion/t1218-signed-binary-proxy-execution/untitled-4
  5. https://learn.microsoft.com/en-us/sql/odbc/odbcconf-exe?view=sql-server-ver16
  6. https://redcanary.com/blog/raspberry-robin/
  7. https://chat.openai.com/