최근 유사한 샘플이 토탈을 통해서 지속적으로 수집되었다. 이스트소프트에서 Operation Blue Estimate으로 명명하여 IOC를 공개하였다. (링크)

 

 

hash (md5)

스트링 복호화 루틴 특징

1

35d60d2723c649c97b414b3cb701df1c

X

2

da799d16aed24cf4f8ec62d5048afd1a

암호화된 데이터에 키값이 포함되어 있으며 xor

3

20add5eb5fbe527a8b6090a08e7636a6

X

4

cf87475a87cb2172e73ee6afa7eb6384

디코딩된 데이터 +0x03

5

47c95f19ebd745d588bb208ff89c90ba

암호화된 데이터에 키값이 포함되어 있으며 xor

 

샘플을 분석하는 과정에서 스트링 복호화 루틴이 조금씩 변경되는점을 확인하여 추가로 분석을 진행하였다. 다른분께서 1번2번은 이미 글을 올려주셨기에 줍줍했으며 3번은 1번과 크게 다른점이 없어 자세하게 분석을 진행하지 않았고 4번과 5번의 문자열 복호화 로직에 대해서만 히스토리를 남기기위해 언급 해볼까한다. (링크1) (링크2)

 

 

4번 샘플은 암호화된 데이터에 사칙연산을 통해서 복호화를 진행한다. 16byte크기만큼은 키테이블을 이용하며 나머지 데이터에 대해서는 고정값(0x03)을 더하여 연산을 수행한다. 하지만 키테이블에 있는 값도 전부 0x03이므로 길이를 나누어 연산하는 의미가 없어진다.

 

문자열 복호화 루틴
키 테이블

 

5번 샘플은 인젝션 후 동작하는 과정에서 DllMain이 로드되기전에 일부 문자열을 먼저 복호화 후 동작하게 된다. 복호화를 진행하는 루틴은 3번 샘플과 거의 유사한 형태로 복호화를 진행되며 인자로 넘어간 hex ascii를 바이너리로 변경 후 앞에서 16byte 크기만큼을 키테이블로 사용하고 그 뒤의 값을 복호화시킬 데이터로 사용하여 1byte씩 xor 연산을 진행한다. 이후 정상 프로세스에 인젝션되어 문자열들을 다시 복호화시키지만 전체적인 루틴은 크게 달라질것이 없다.

 

3번 샘플과 다른점이라면 데이터를 스택에 저장하기 위해 연산을 나눠서 하는것이 아닌 한번에 한다는점?

 - 연산 : encStr[i] ^ encStr[i+1] ^ keyTable

 

문자열 복호화 루틴
인젝션된 데이터에서의 문자열 복호화 루틴

 

꾸준히 등장하고 있지만 아직까지는 그나마 단순하게 동장하는듯하니 꾸준히 지켜보자. 이만

 

블로그 이미지

bbbbox

해당 블로그는 개인 저장공간으로 악의적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다. 주의해주시길 바랍니다.

,