DAGON LOCKER 다곤 랜섬웨어(이하 DAGON 랜섬웨어) 국내 유포가 확인되었다. 안랩 ASD 인프라의 랜섬웨어 의심 행위 차단 이력으로 최초 발견되었으며, 지난 10월에는 국내 모 기관이 안랩에 악성 의심 파일로 접수하기도 하였다. DAGON 랜섬웨어의 주 유포 경로는 피싱 또는 이메일 첨부파일이지만 서비스형 랜섬웨어(Ransomware-as-a-Service)이기 때문에, 공격자에 따라 유포 경로와 공격 대상은 다양할 수 있다.
DAGON 랜섬웨어는 파일 외형이 패킹되어 있어서, 프로세스 메모리에 생성되는 64비트 EXE 바이너리가 핵심 코드이다. 이 코드는 2020년부터 유포되었던 MountLocker(마운트라커) 또는 Quantum(퀀텀) 랜섬웨어와 매우 유사하다. 동일한 코드를 쓰는 부분과 기능이 있어 MountLocker, Quantum 랜섬웨어의 유사 변종으로 볼 수 있다. DAGON 랜섬웨어 코드에 버전 정보를 의미하는 ‘Ver 5.1 x64’ 문자열이 확인되었다. 아래는 DAGON 랜섬웨어의 주요 특징과 감염되었을 때 사용자 화면이다.
- 실행 인자로 랜섬웨어의 암호화 범위를 제한 또는 확장하고 실행 옵션 지정 가능
- 특정 경로와 확장자를 제외한 모든 파일을 대상으로 암호화 한 후 ‘*.dagoned’ 파일명으로 변경
- 파일 암호화는 ChaCha20 암호화 방식을 이용하고, 이 때 사용하는 암호화 키는 RSA-2048로 암호화
- 시스템의 윈도우 서비스와 프로세스 목록을 확인하고 조건에 맞을 경우 서비스와 프로세스 종료
- 사용자 시스템 정보와 랜섬웨어의 암호화 이력을 ‘.log’ 파일에 저장
- 볼륨쉐도우 복사본은 삭제하지 않음

분석
DAGON 랜섬웨어 64비트 EXE 바이너리(md5: 81a757ac559ae73229992d4b533338c3)는 모든 문자열을 인코딩 한 상태로 저장하기 때문에 이를 디코딩하는 루틴을 거쳐서 필요한 문자열을 생성한다. Windows API 함수를 호출 할 때도 동적 라이브러리 로드를 하여 함수를 호출하는데, 이 과정에도 같은 디코딩 루틴을 실행한다. Import 헤더 정보를 보면 초기 실행 단계에 필요한 함수만을 Import 하고 있다.


실행 인자로 랜섬웨어의 암호화 범위를 제한 또는 확장하고 실행 옵션 지정 가능
GetCommandLineW 함수로 전달된 실행 인자를 확인한다. 유효한 인자 존재 여부를 확인하고 그 값에 따라 랜섬웨어 암호화 동작 범위를 제한 또는 확장한다.
예를 들면 ‘/LOGIN=’과 ‘/PASSWORD=’로 주어진 인자와 지정 값은 네트워크에 연결된 사용자 리소스에 접근할 때 필요한 크리덴셜이다. DAGON 랜섬웨어는 조건에 맞을 경우 네트워크로 연결된 다른 사용자 시스템도 암호화 할 수 있다. 인자로 랜섬웨어 동작 범위 외에 실행 환경 옵션을 지정할 수도 있다. 예를 들면 ‘/NOKILL’은 윈도우 서비스와 프로세스를 종료하지 않도록 한다. 인자가 주어지지 않는 기본 실행 옵션으로도 정상적으로 사용자 파일 암호화 행위는 동작한다. 이번에 확인된 DAGON 랜섬웨어는 실행 인자 정보가 확인되지 않아 단독으로 실행되었을 것으로 보인다.

특정 경로와 확장자를 제외한 모든 파일을 대상으로 암호화 한 후 ‘*.dagoned’ 파일명으로 변경
기본적으로 드라이브 내 모든 파일을 암호화한다. 별도의 지정된 실행 인자가 없을 때, A 드라이브부터 Z 드라이브까지 순차적으로 탐색한다. 드라이브 타입 중 GetDriveTypeW 함수로 네트워크 드라이브(DRIVE_REMOTE)는 제외한다. 암호화 대상 파일 중 특정 경로와 확장자는 제외한다. 46개의 경로와 15개 파일 확장자가 제외 대상이다. 암호화 이후 파일명은 ‘<기존파일명>*.dagoned’으로 변경한다. 암호화 된 파일이 있는 경로에 랜섬노트 파일 ‘README_TO_DECRYPT.html’을 생성한다.
exe, dll, sys, msi, mui, inf, cat, bat, cmd, ps1, vbs, ttf, fon, lnk, .386
"\\windows\\"
"\\System Volume Information\\"
"\\$RECYCLE.BIN\\"
"\\SYSTEM.SAV"
"\\WINNT"
"\\$WINDOWS.~BT\\"
"\\Windows.old\\"
"\\PerfLog\\"
"\\PerfLogs\\"
"\\Program Files\\"
"\\Program Files (x86)\\"
"\\Boot"
"\\ProgramData\\Microsoft\\"
"\\ProgramData\\Packages\\"
"\\EFI"
"\\WindowsApps\\"
"\\Microsoft\\Windows\\"
"\\Local\\Packages\\"
"\\Windows Defender"
"\\microsoft shared\\"
"\\Google\\Chrome\\"
"\\Mozilla Firefox\\"
"\\Mozilla\\Firefox\\"
"\\Internet Explorer\\"
"\\MicrosoftEdge\\"
"\\Tor Browser\\"
"\\AppData\\Local\\Temp\\"
"\\AppData"
"\\All Users"
"\\Boot"
"\\Google"
"\\Mozilla"
"\\autorun.inf"
"\\boot.ini"
"\\bootfont.bin"
"\\bootsect.bak"
"\\bootmgr"
"\\bootmgr.efi"
"\\bootmgfw.efi"
"\\iconcache.db"
"\\desktop.ini"
"\\ntldr"
"\\ntuser.dat"
"\\ntuser.dat.log"
"\\ntuser.ini"
"\\thumbs.db"


파일 암호화는 ChaCha20 암호화 방식을 이용하고, 이 때 사용하는 암호화 키는 RSA-2048로 암호화
파일 암호화에는 ChaCha20 암호화 방식이 이용되었다. 그리고 ChaCha20 암호화 키를 RSA로 암호화 하였다. 즉, DAGON 랜섬웨어는 복합 암호화 방식을 이용한 랜섬웨어이다. 아래 코드는 파일 내 ChaCha20 암호화 로직과 ‘expand 32-byte k’ 시그니처이다. CryptImportKey 함수로 RSA 2048키를 로드하고 CryptEncrypt 함수에서 이 키를 이용하여 ChaCha20 키를 암호화한다.

시스템의 윈도우 서비스와 프로세스 목록을 확인하고 조건에 맞을 경우 서비스와 프로세스 종료
시스템에서 프로세스로서(SERVICE_32)로 유효(SERVICE_ACTIVE)하게 동작중인 윈도우 서비스를 EnumServiceStatus 함수로 조회하고 특정 3개 패턴의 이름이 서비스명에 포함되어 있을 경우 그 서비스 프로세스를 종료한다. 또 동작중인 프로세스를 조회해서 그 중에 49개 프로세스 목록과 일치하는게 있다면, 해당 프로세스를 종료한다.
종료 대상 프로세스에는 “agntsvc.exe” Panda Security Agent와 “dumpcap.exe” 와 “procmon.exe” 등 악성코드 행위 모니터링 목적 프로세스가 있다.
SQL, database, msexchange
"msftesql.exe"
"sqlbrowser.exe"
"sqlwriter.exe"
"oracle.exe"
"ocssd.exe"
"dbsnmp.exe"
"synctime.exe"
"agntsvc.exe"
"isqlplussvc.exe"
"xfssvccon.exe"
"sqlservr.exe"
"encsvc.exe"
"ocautoupds.exe"
"mydesktopservice.exe"
"firefoxconfig.exe"
"tbirdconfig.exe"
"mydesktopqos.exe"
"ocomm.exe"
"mysqld.exe"
"sqlagent.exe"
"mysqld-nt.exe"
"mysqld-opt.exe"
"dbeng50.exe"
"sqbcoreservice.exe"
"excel.exe"
"infopath.exe"
"msaccess.exe"
"mspub.exe"
"onenote.exe"
"outlook.exe"
"powerpnt.exe"
"sqlservr.exe"
"thebat.exe"
"steam.exe"
"thebat64.exe"
"thunderbird.exe"
"visio.exe"
"winword.exe"
"wordpad.exe"
"QBW32.exe"
"QBW64.exe"
"ipython.exe"
"wpython.exe"
"python.exe"
"dumpcap.exe"
"procmon.exe"
"procmon64.exe"
"procexp.exe"
"procexp64.exe"

사용자 시스템 정보와 랜섬웨어의 암호화 이력을 ‘.log’ 파일에 저장
별도의 /NOLOG 실행 인자가 주어지지 않았을 때, 사용자 시스템 정보와 파일의 동작 과정 및 모든 암호화 이력을 동일 경로 내 ‘.log’ 파일로 저장한다. 파일이 단독으로 실행되었을 때 ‘.log’ 파일이 외부 네트워크 주소로 전송되는 기능은 없다. DAGON 랜섬웨어가 정보 유출이 가능한 다른 악성코드와 함께 실행되었다면 공격자가 피해 시스템 확인 목적으로 ‘.log’ 파일을 이용할 가능성이 있다. 랜섬웨어 내부 버전을 의미하는 문자열인 “Ver 5.1 x64″와 함께 다음 정보가 ‘.log’ 파일에 저장된다.
- 사용자 시스템 정보: 프로세서 개수, 윈도우 버전, 사용자명, PC명, 그룹 계정 등
- 종료한 윈도우 서비스 목록
- 종료한 프로세스 목록
- 암호화 이력: 성공, 실패 여부 포함
- 통계: 암호화 속도, 암호화 한 파일 및 경로 개수, 에러 발생 횟수 등

볼륨쉐도우 복사본은 삭제하지 않음
보편적인 랜섬웨어가 실행하는 볼륨쉐도우 복사본 삭제 행위는 DAGON 랜섬웨어에서는 확인되지 않았다.
[파일 진단]
– Ransomware/Win.DagonLocker.C5272105 (2022.10.04.03)
– Ransomware/Win.QuantumLocker.C5279049(2022.10.13.02)
[행위 진단]
– Ransom/MDP.Behavior.M1171
– Ransom/MDP.Behavior.M1946
[IOC]
MD5
– 48177ece3ebdee2faf8227e52e608562
– 81a757ac559ae73229992d4b533338c3
연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.
Categories:악성코드 정보