
최근 국내 의료기관을 대상으로 RDP(원격 데스크톱 프로토콜)를 악용한 랜섬웨어 감염 사례가 확인되었습니다. 공격자는 RDP의 드라이브 리다이렉션(tsclient) 기능을 통해 공격 도구를 내부 네트워크에 전달하고, ProcessHacker, PCHunter 와 같은 도구로 보안 제품을 무력화 후 Beast(GodDamn) 랜섬웨어를 실행하였습니다.
본 글에서는 이번 공격에서 확인된 RDP 악용 방식과 Beast 랜섬웨어의 분석 결과를 정리합니다.
이번 사례에서는 다음과 같은 경로가 확인되었습니다.
\\tsclient\C\******\Ph_press.exe PCHunter (AV 무력화 도구)
\\tsclient\C\******\Python\python311.dll
\\tsclient\C\******\chrome\chrome_elf.dll
[표 1] tsclient 사용 로그
\\tsclient\는 RDP 접속 시 드라이브 공유 옵션이 켜져 있을 때만 나타나는 경로로, 접속하는 쪽 PC의 로컬 드라이브를 가리킵니다. 즉 공격자가 자신의 PC에 준비한 공격 도구를 RDP 세션을 통해 피해 PC로 직접 복사한 것으로 RDP 연결을 끊으면 이 경로 자체가 사라지기 때문에 원본 출처 추적이 어렵습니다.
Beast(GodDamn) 랜섬웨어가 실행되면 2단계 CIS 검증을 수행합니다. CIS(독립국가연합) 지역 시스템에서는 암호화를 수행하지 않고 즉시 종료합니다. 이는 러시아권 랜섬웨어의 전형적인 자기 보호 메커니즘입니다. 두 검사 중 어느 하나라도 일치하면 ExitProcess(1)로 즉시 종료됩니다.
| API 종류 | 제외 국가 |
| 로케일 기반 (GetLocaleInfo) | 14개 국가(아르메니아, 아제르바이잔, 벨라루스, 조지아, 카자흐스탄, 키르기스스탄, 몰도바, 러시아, 타지키스탄, 투르크메니스탄, 우크라이나, 우즈베키스탄, 키프로스, 베트남) |
| UI 언어 기반 (GetSystemDefaultUILanguage) | 14개 언어(러시아어, 러시아어(몰도바), 우크라이나어, 벨라루스어, 타지크어, 아르메니아어, 아제르바이잔어, 아제르바이잔어(키릴), 조지아어, 카자흐어, 키르기스어, 투르크멘어, 우즈베크어, 우즈베크어(키릴)) |
[표 2] 공격 대상 제외 리스트
Beast(GodDamn) 랜섬웨어의 동작은 빌더 단계에서 설정된 설정 데이터에 의해 결정됩니다. 설정 데이터는 바이너리 내부에 ChaCha20으로 암호화된 17,409바이트 크기로 내장되어 있으며 실행 시 복호화되어 사용됩니다.
설정 데이터는 프로그램 실행 시 .data 영역에서 !!!PASSWORD!!! 문자열을 검색 합니다.
!!!PASSWORD!!! 문자열이 없으면 설정 데이터의 복호화가 진행되며, 문자열 존재시 프로그램은 종료됩니다.

복호화된 설정 데이터에는 암호화 제외 파일명, 확장자, 디렉토리, 종료 대상 서비스, 프로세스, 랜섬노트 관련, 식별자, C2 URL, 동작 플래그 등이 담겨있습니다.

특히, 마지막 16바이트의 동작 플래그에는 제작자가 빌더 단계에서 세팅한 항목들을 확인할 수 있습니다.
| 플래그값 | 데이터 | 상태 | 기능 |
| -p | 30 | - | C2 통신 포트 |
| -z | 0 | 비활성 | ZIP 위장 암호화 |
| -c | 1 | 활성 | 확장자 변경 |
| -w | 1 | 활성 | 디렉토리별 랜섬 노트 생성 |
| -l | 1 | 활성 | 네트워크 공유 폴더 |
| -n | 1 | 활성 | 네트워크 호스트 탐색 |
| -f | 0 | 비활성 | 확장자 제외 기능 우회(전체 암호화) |
| -m | 1 | 활성 | 숨김 볼륨 마운트 |
| -k | 1 | 활성 | 프로세스,서비스 종료 |
| -r | 1 | 활성 | 휴지통 비우기 |
| -s | 1 | 활성 | 볼륨 섀도 삭제 |
| -o | 1 | 비활성(반전논리) | C2 접속 |
| -i | 1 | 활성 | 자가 복제 |
| -a | 1 | 활성 | 레지스트리 등록 |
| -v | 0 | 비활성 | GUI 모드 |
[표 3] 세팅된 플래그 데이터
플래그 값중에서 활성화 되어있지 않지만, 프로그램의 GUI창을 활성화 할 수 있는 기능도 포함되어 있습니다.

2.2.1 자가 복제 및 지속성 세팅
[표3] 세팅된 플래그 데이터에 따라 프로그램 동작 시 %LOCALAPPDATA% 하위에 {MachineGuid} 이름의 디렉토리를 생성하고, 무작위 파일명으로 자기 자신을 복사한 뒤, 복사본을 실행하고 원본 프로세스는 종료합니다.
이어서 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 레지스트리에 자동 실행을 등록합니다.
레지스트리 값 이름으로도 {MachineGuid} 형태로 사용하며, GUID 형태의 값 이름을 사용하여 정상 소프트웨어의 자동실행 항목처럼 위장합니다.
※ 감염 시스템의 {MachineGuid} 읽기 실패 시 하드코딩된 폴백 GUID {bea571ab-e1be-a571-abe1-666bea571318}를 사용합니다.
| 구분 | 경로 |
| 자가 복제 | %LOCALAPPDATA%\{GUID}\[8자리랜덤].exe |
| 지속성(레지스트리) | HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run {GUID} = %LOCALAPPDATA%\{GUID}\[8자리랜덤].exe -v- |
[표 4] 자가 복제 및 레지스트리 경로
2.2.2 사전 정리 (설정 플래그 기반)
암호화 과정을 시작하기 전 설정 플래그 기반으로 휴지통 비우기, 볼륨 섀도 복사본 삭제, 프로세스 종료, 서비스 중지, 볼륨 /드라이브 열거 및 마운트, 네트워크 공유 탐색 등의 사전 작업을 진행합니다.
WMI를 통해 Win32_ShadowCopy 객체를 열거 및 삭제하여 시스템 복원 지점을 제거합니다. 별도 스레드에서 5분 타임아웃으로 실행되며, 64비트 시스템에서는 WMI 컨텍스트에 __ProviderArchitecture = 64를 설정하여 64Bit 운영체제에서도 삭제가 가능하도록 처리합니다.

데이터베이스(Oracle, MySQL, SQL Server), 오피스(Excel, Word, Outlook), 백업 소프트웨어 등 파일을 잠그고 있는 프로세스를 TerminateProcess로 강제 종료하여 암호화 가능한 상태로 만듭니다.
| 분류 | 프로세스명 |
| 데이터베이스 | oracle.exe, ocssd.exe, dbsnmp.exe, isqlplussvc.exe, ocautoupds.exe, xfssvccon.exe, sqlservr.exe, sqlserver.exe, sqlagent.exe, sqlbrowser.exe, sqlwriter.exe, msftesql.exe, sql.exe, mysqld.exe, mysqld-nt.exe, mysqld-opt.exe, dbeng50.exe, agntsvc.exe, encsvc.exe |
| Office/문서 편집 | excel.exe, winword.exe, powerpnt.exe, outlook.exe, onenote.exe, msaccess.exe, mspub.exe, visio.exe, infopath.exe, ocomm.exe, wordpad.exe, thunderbird.exe, thebat.exe, tbirdconfig.exe |
| 웹 서버/브라우저 | apache.exe, tomcat.exe, tomcat6.exe, firefox.exe, firefoxconfig.exe |
| ERP/재무 | kingdee.exe, u8.exe, ufida.exe |
| 백업 | sqbcoreservice.exe, backup.exe |
| 기타 | mydesktopqos.exe, mydesktopservice.exe, ncsvc.exe, notepad.exe, steam.exe, synctime.exe |
[표 5] 프로세스 종료 리스트
SQL Server, Veeam/Acronis/Veritas 백업, Exchange, 보안 소프트웨어(Symantec, Sophos, TrendMicro) 등의 서비스를 중지합니다.
| 분류 | 서비스명 |
| 데이타베이스 | MSSQLSERVER, SQLSERVERAGENT, SQLBrowser, SQLTELEMETRY, MSSQLFDLauncher, SQLWriter, MsDtsServer130, SSISTELEMETRY130, MSSQLServerADHelper100, MSSQLServerOLAPService, MsDtsServer100, ReportServer, SQLTELEMETRY$HL, MSSQL$PROGID, MSSQL$WOLTERSKLUWER, SQLAgent$PROGID, SQLAgent$WOLTERSKLUWER, MSSQLFDLauncher$OPTIMA, MSSQL$OPTIMA, SQLAgent$OPTIMA, ReportServer$OPTIMA, msftesql$SQLEXPRESS, MSSQL, SQLAgent, sql, postgresql-x64-9.4 |
| 백업 | veeam, VeeamDeploymentService, VeeamNFSSvc, VeeamTransportSvc, VSNAPVSS, MSSQL$VEEAMSQL2012, SQLAgent$VEEAMSQL2012, BackupExecAgentAccelerator, BackupExecAgentBrowser, BackupExecDiveciMediaService*, BackupExecJobEngine, BackupExecManagementService, BackupExecRPCService, BackupExecVSSProvider, backup, GxBlr, GxCIMgr, GxCVD, GxFWD, GxVss, AcronisAgent, AcrSch2Svc, YooBackup, YooIT, CAARCUpdateSvc, CASAD2DWebSvc, stc_raw_agent, PDVFSService |
| 보안/Windows | ccEvtMgr, ccSetMgr, DefWatch, RTVscan, SavRoam, sophos, TMBMServer, zhudongfangyu, vss, wscsvc, wuauserv |
| 이메일 | msexchange, memtas, mepocs |
| 회계 | Intuit.QuickBooks.FCS, QBCFMonitorService, QBFCService, QBIDPService |
[표 6] 서비스 중지 리스트
마지막으로 설정 데이터에 숨겨둔 C2 URL로 파일 암호화 전과 후를 보고합니다.
암호화전에는 BEGIN, 암호화후에는 END라는 문자열을 Referer 헤더를 사용하여 전달합니다.
다만 본 샘플에서는 -o 1 플래그에 의해 실제 통신은 발생하지 않습니다.

파일 암호화는 모든 파일을 대상으로 진행되며 화이트리스트 제외방식을 채택했습니다.
암호화된 파일은 “.[8자리 ID-8자리 ID].goddamn” 형태의 확장자를 가지며, 피해자별 고유한 값을 가지게 됩니다.
시스템 부팅 및 기본 동작에 필수적인 파일은 암호화하지 않습니다.
autorun.inf, boot.ini, bootfont.bin, bootmgfw.efi, bootmgr, bootmgr.efi, bootsect.bak, desktop.ini, GDIPFONTCACHEV1.DAT, iconcache.db, ntdetect.com, ntldr, ntuser.dat, ntuser.dat.log, ntuser.ini, thumbs.db
[표 7] 암호화 파일 제외 리스트
시스템 및 실행 파일 확장자는 암호화에서 제외됩니다.
.386, .adv, .ani, .bat, .bin, .cab, .cmd, .com, .cpl, .cur, .deskthemepack, .diagcab, .diagcfg, .diagpkg, .dll, .drv, .exe, .hlp, .hta, .icl, .icns, .ico, .ics, .idx, .key, .lnk, .lock, .mod, .mpa, .msc, .msi, .msp, .msstyles, .msu, .nls, .nomedia, .ocx, .pdb, .prf, .ps1, .rom, .rtp, .scr, .search-ms, .shs, .spl, .sys, .theme, .themepack, .wpx
[표 8] 암호화 확장자 제외 리스트
시스템 디렉토리, 보안 소프트웨어, 브라우저, .NET 프레임워크 등을 제외하여 시스템 부팅은 유지하되 사용자 데이터만 암호화가 진행됩니다.
#recycle, EFI.Boot, EFI.Microsoft, $Recycle.Bin, $Windows.~bt, $Windows.~ws, All Users, AppData, Application Data, Avast Software, Bitdefender, Boot, Common Files, config.msi, Embedded Lockdown Manager, Google, GoogleChrome, inetpublogs, intel, Internet Explorer, Microsoft Help, Microsoft.NET, Microsoft, Mozilla Firefox, Mozilla, MSBuild, MSOCache, nvidia, Opera Software, Opera, Package Cache, PerfLogs, Reference Assemblies, System Volume Information, Tor Browser, Trend Micro, Windows Defender Advanced Threat Protection, Windows Defender, Windows Journal, Windows Mail, Windows Media Player, Windows Multimedia Platform, Windows NT, Windows Photo Viewer, Windows Portable Devices, Windows Security, Windows Sidebar, Windows.old, Windows, WindowsPowerShell
[표 9] 암호화 디렉토리 제외 리스트
랜섬노트는 텍스트(TXT)파일로 되어있으며, 12시간 내 미연락 시 데이터를 유출하겠다는 경고를 담고 있습니다. 추가적으로 공격자 이메일과 익명 메신저인 TOX 와 Session 메신저의 ID를 제공합니다.

이번 사례는 공격자가 RDP를 통해 시스템에 접근한 이후, 드라이브 리다이렉션 기능을 이용해 자신의 PC에 준비한 공격 도구를 피해 시스템으로 직접 전달하고, 보안 제품을 무력화한 뒤 Beast(GodDamn) 랜섬웨어를 실행한 공격 사례입니다. 특히 \\tsclient 경로를 이용한 파일 전달은 RDP 세션이 종료되면 흔적이 사라질 수 있어, 공격 도구의 최초 유입 경로를 확인하기 어렵다는 점에서 주의가 필요합니다.
Beast 랜섬웨어 역시 단순히 파일을 암호화하는 것에 그치지 않고, 자가 설치 및 지속성 확보, 프로세스와 서비스 종료, ShadowCopy 삭제, 네트워크 공유 탐색 등을 수행해 암호화 전후의 복구와 대응을 어렵게 만듭니다. 또한 본 사례에서는 별도의 CLI 인자 없이도 이러한 기능이 동작하도록 설정되어 있어, 랜섬웨어가 실행되는 즉시 피해가 빠르게 확산될 가능성이 있습니다.
따라서 RDP를 사용하는 시스템에서는 단순히 랜섬웨어 파일을 탐지하는 것만으로는 충분하지 않으며, RDP를 통한 비정상적인 파일 유입부터 보안 제품 무력화, 지속성 확보, 복구 방해 행위까지 공격 과정 전반을 모니터링하고, 랜섬웨어의 암호화가 시작되기 전에 공격을 차단할 수 있는 대응 체계를 구축하는 것이 중요합니다.
IoC
| Indicator | Type | Description | Detection Name |
|---|---|---|---|
| 57C57116D503D5B2A104F8C5B12897AC | MD5 | 랜섬웨어 | Trojan.Ransom.Beast |
| 6358C491AE24BA0A1D1375E5C57D7A8D | MD5 | 랜섬웨어 | Trojan.Ransom.Beast |
| 기능별 C2 서버를 운용하는 Kimsuky 그룹의 새로운 LNK 악성코드 등장 (0) | 2026.09.09 |
|---|---|
| 상품 파손 사칭 메일로 유포되는 다단계 정보탈취 악성코드 주의 (1) | 2026.08.04 |
| 세무 위반 통지 사칭 피싱 메일을 통한 원격제어 악성코드 유포 주의 (0) | 2026.07.13 |
| Chai.js 플러그인으로 위장한 북한발 npm 악성 패키지 'chai-as-init' 분석 (0) | 2026.06.16 |
| Solana SDK로 위장한 npm 패키지, Telegram Bot API 기반 RAT 유포 (0) | 2026.06.11 |
댓글 영역