MD5: 28833e121bb77c8262996af1f2aeef55

NAME: 28833e121bb77c8262996af1f2aeef55.exe

SIZE: 235,520byte

C2 : http://portable[.]epizy[.]com

 

# 워드 파일 아이콘으로 위장된 exe 파일이다.

 

 

# 흐름도

전체 흐름도

1. 실제 사용 될 API를 호출한다.

API 호출

 

 

 

 

2. PE 내부의 "JUYFON" 이름의 리소스를 불러온다.

리소스 로드

 

 

3. 리소스 데이터는 암호화가 되어 있고 포인터로 받은 리소스의 주소 내부 데이터를 0x7F 값과 xor 연산을 통해 복호화를 진행한다.

xor 연산
암호화
복호화

 

4. 복호화 이후 사용자를 속이기 위한 정상적인 워드 파일을 생성 후 실행시킨다.

파일생성, 파일실행, 쓰레드생성

4-1. 파일을 생성하기 전 인코딩이 되어 있는데 흔히 사용하는 UTF을 사용하지 않고 EUC-KR을 사용한다.

EUC-KR 인코딩

 

5. 쓰레드 동작 이후 wct.docx를 생성을 하고 cmd.exe의 호출로 PC의 정보 수집을 wct.docx 내부의 저장시킨다.

정보 수집
wct.docx 내부

6. 정보 수집이 끝이나면 HTTP Header와 body를 제작한다. 

HTTP Header,Body 제작

 

7. 제작이 완료 되면 추가적인 Header를 제작하고 POST 메소드를 이용해 정보 수집을 했던 wct.docx파일을 전송한다.

C&C 통신

 

 

8. 전송이 끝나면 추가 악성 행위를 위해 /download.php? GET 파라미터로 php의 내용을 읽어오고 30분 간격으로 공격자의 C&C 주소와 통신을 수행한다.

추가 다운로드

<html>
<body>
<script type="text/javascript" src="/aes.js" ></script>
<script>function toNumbers(d){
var e=[];
d.replace(/(..)/g,function(d){
e.push(parseInt(d,16))});
return e}
function toHex(){
for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)
e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}
var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),
b=toNumbers("98344c2eee86c3994890592585b49f80"),
c=toNumbers("5fedac0a27a7bbe070d0bf687fe91ca0");
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+";
expires=Thu, 31-Dec-37 23:55:55 GMT;path=/";
location.href="http://portable.epizy.com/img/png/download.php?filename=images01&i=1";</script>

# 읽어온 php

 

'Analysis' 카테고리의 다른 글

Trickbot 분석  (0) 2021.01.04
emotet 분석  (0) 2020.09.08
2142739359fd0c614ffe3e2fcbc8c89d 분석  (0) 2020.08.10

+ Recent posts