그냥저냥

[Issue, PE Malware] Sony Pictuires 해킹 악성코드 분석 본문

Malware

[Issue, PE Malware] Sony Pictuires 해킹 악성코드 분석

ex3llo 2016. 7. 31. 08:29


* 전체 동작과정 요약

  (**오타 : -k ==> -i)



● -n 파라미터 동작 (배경화면 변조)

-n 파라미터가 입력된 경우 분기문을 통해 Thread를 생성한다. 해당 Thread는 Sleep함수에 의해 5분 뒤에 실행된다.


Thread의 Main 함수는 프로세스 메모리 영역에 존재하는 암호화된 데이터를 복호화 시켜서 파일로 저장한다.

파일 저장경로는 %WINDOWS%\walls.bmp 이며, 복호화된 파일 헤더 확인시 그림파일인 것을 알 수 있다.

   <복호화 루틴>

     ▶     

    <BMP 파일 복호화 과정>                                                                 <생성된 그림파일>

<복호화된 파일을 저장할 경로 설정>


그림파일 복호화 이후 SystemParametersInfo 함수의 ACTION 파라미터에 SPI_SETDESKWALLPAPER 옵션으로 배경화면의 그림을 변경한다.

  <배경화면 변조>




● -d 파라미터 동작 (로컬 호스트 파일 삭제)

-d 파라미터 입력시 로컬 호스트 파일 삭제 기능을 수행하며, 기능 수행을 위해 디스크 드라이브 정보를 얻어온다.

<Drive Type 정보 조회>

<Drive Type에 따른 분기>


드라이브 정보를 얻은 후 해당 드라이브 내 모든 파일을 검색/삭제 하기 위해 드라이브 문자 뒤에 "*.*" 문자열을 붙인다.

ex> 연결된 드라이브 : C ==> 완성된 문자열 : "C:\*.*"


디스크 내 파일을 검색하면서 해당 파일에 접근하여 파일의 확장자를 비교한다. 확장자가 .exe 또는 .dll 인 경우 파일을 변조/삭제하지 않고 건너뛴다.

<첫 번째 파일 접근>

<파일 확장자 비교>


검색된 파일의 확장자가 .exe 또는 .dll 이 아닌 경우 WriteFile 함수를 통해 파일의 데이터를 변조시킨다. write되는 데이터는 임의의 데이터이며, 

파일 덮어쓰기 작업 이후 파일 삭제가 진행된다. 파일의 데이터를 변조한 후 삭제하므로, 파일을 복구하더라도 원래 데이터까지는 복구가 불가능하다.


재귀함수를 통해 폴더를 검색하면서 ".." , "C:\Windows" , "C:\Program Files" 경로가 검색된 경우 

해당 폴더 내 파일들은 변조/삭제를 하지않고 건너뛴다.




● -s 파라미터 동작 (원격지 공유폴더 파일 삭제)

-s 파라미터 입력시 원격지의 공유폴더에 존재하는 파일을 삭제하는 기능을 수행한다.

우선 net use 명령으로 미리 설정된 원격지에 연결을 시도한다.

* 공유폴더 연결 시 원격 호스트 이름, 계정 정보는 하드코딩된 문자열을 참조하여 Brute Forcing 한다


연결 성공/실패에 대한 구분은 net use 명령의 실행 결과에 대한 리턴 값이 "Successfully" 인지 아닌지로 판단하며, 

연결 성공 시에는 NetShareEnum 함수로 원격 호스트의 리소스 정보를 얻게된다.

  <연결 성공/실패 여부 확인>

     <연결 성공 시 원격 호스트의 리소스 정보 조회>


원격 호스트의 리소스 정보 획득 시 "*.*" 문자열을 붙여서 원격지의 파일이 삭제되도록 설정한다.

Comments