study/악성코드 분석

DDE 취약점을 이용한 문서형 악성코드

lucykorea414 2024. 5. 14. 19:15
728x90

DDE란?

- Dynamic Data Exchange

- 윈도우 응용 프로그램간의 동일한 데이터를 공유하도록 하는 기능

   ex) 워드파일을 열람할 때 엑셀파일에서 데이터를 가져와 사용할 수 있는 기능

- 2017년에 MS의 DDE 기능(워드, 엑셀, 비주얼베이직 등)을 활용한 악성코드 유포 증가

 


DDE 취약점을 이용한 악성코드 예시 (제작해보기)

DDE 기능

- 삽입 > 빠른 문서 요소 > 필드 > Formula > 확인

- 수식 에러 나는 부분 클릭

- 필드 코드 토글 수정

텍스트 상자 말고 옆에 빠른 문자 요소!!

 

DDEAUTO 기능 넣기

- DDEAUTO C:\\Windows\\system32\\cmd.exe “/k calc.exe” 작성

 

악성코드 확인

- doc는 pk 파일로 zip 형태를 갖춤

- 확장자를 zip으로 바꿔 압축 해제

- docx/word/document.xml 파일을 열어서 확인해보면 w:InstrText 내부에 존재하는 문자열 확인 가능

-> 중간에 있는 DDEAUTO C:\\Window\\system~ 어쩌구 "calc.exe" 부분이 보이는데, 이 부분이 아까 쓴 악성코드! (문서를 실행하면 계산기가 실행된다)

 

실제 악성코드 예시

 

- InstrText가 여러개로 나눠져서 나중에 하나도 합쳐서 실행된다.

 

<합친 텍스트>


 

실습

아까와 같은 방식으로 직접 워드 파일을 만들자!

 

정상적인 텍스트 아래에 DDE 기능을 넣은 아까와 같은 계산기를 실행하는 텍스트를 넣어줬다.

 

그럼 다시 창을 껐다가 문서를 열어보면 다음과 같은 창이 뜬다.

이때 yes를 누르면 되는데, 이 문구 조차도 안뜨게 설정할 수 있다고 한다!!

 

계산기 실행 완료~

분석

문서를 .docx에서 .zip으로 확장자를 변경해주자.

 

그리고 압축을 풀게 되면 다음과 같이 나온다.

 

여기서 word\document.xml에 들어가면 다음과 같이 화면이 뜬다.

 

여기서 상세히 분석을 해보자.

 

밑으로 내려가다가 보면 다음과 같이 instr이 보인다!

그리고 옆으로는 우리가 작성한 코드가 보인다.


악성코드 분석

 

이 파일을 실행하게 되면 다음과 같이 화면이 나온다.

 

Yes를 누르면 악성코드가 실행된다.

하지만, 실행 해도 별다른 화면은 안뜬다.

 

zip 파일로 바꿔서 분석을 해보자.

압축을 풀면 다음과 같이 내부 파일들이 보인다.

 

word\document.xml에 들어가서 확인해보자.

 

 

컨트롤+f로 instrText만 찾아주자.

 

이렇게 다 짤려서 있는것을 볼 수 있다.

 

조금 더 가독성있게 보기 위해서 text로 보자.

 

여기서 하나씩 다 조합을 해서 하나의 string으로 만들어주자! (노가다.. 복붙 ㅜ)

 

그러면 다음과 같이 나온다!

 

결국 웹사이트에서 다운로드를 받고, 파워쉘을 실행시키는 악성코드라고 분석할 수 있다.

 

실제 실행된 것을 보면 다음과 같이 파워쉘에서 명령어를 실행시킨다.

 

이때 base64 encoding이 되어있으므로 decoding 해주면 된다.

 

이 decode된 내용이 밑에 나와있는 이 내용이다.

 

이때, url에 접속하여 temp 폴더에 실행파일을 만들어 실행하는 것을 볼 수 있다.

728x90