리팩토링

리팩토링 16주차 샘플분석(2)

idea5021 2024. 11. 16. 01:49
목차

1. 샘플 파일
 - 샘플 파일 소개
 - 분석환경
2. 기초 분석
 - Virustotal
3. 정적 분석
 - Exeinfo
 - Peid
 - Bintext
 - Peview
4. 동적 분석
 - Process Explorer
 - Process Monitor
 - System Explorer
 - Autoruns
 - WireShark
5. 결론

 

1. 샘플 파일

 - 샘플 파일 소개

 

 - 분석 환경

  • Vmware 17 pro, Windows 10 pro에서 분석을 진행함.

2. 기초 분석

- Virustotal

 

  • 72개 백신중 65개가 악성코드라고 표시가 됨. 
  • 위협 카테고리로는 Trojan 즉 트로이 목마라고 표시가 됨.   

 

 

  • Details 탭에서 SVK-Protector와 UPX로 패킹을 했다는 것을 알게되었음.
  • WIN 32 실행파일을 확인함.

 

 

  • Relations 탭에서 연결된 URL과 샘플 실행시 드랍되는 파일들도 확인함.

 


3. 정적 분석

 - Exeinfo

 

  • UPX라는 툴로 패킹이 된 것을 확인함.
  • 32bit에서 실행 가능한 것을 확인함.

 - Peid

 

  • SVKP 1.11로 패킹이 된것도 확인을 했고 UPX와 SVKP 1.11로 패킹을 한 것을 확인함. 
  • Bintext와 Peview를 사용하기 위해 언패킹을 진행함

 

 

 

  • Peid에서는 언패킹이 되어서 C++를 사용한 것을 알수있는데 Exeinfo에서는 언패킹이 안된듯 함.

 

 - Bintext

 

  • cmd로 ping 명령어를 통해 네트워크 연결이 되어있는지 확인하는 문자열을 확인했음.
  • C:\wiseman.exe를 실행시키는 문자열이라고 추측이 됨.
  • 실행 시킨다음 C:\window\system32\rundl32.exe를 실행시키는 문자열이라고 추측이 됨. 

 

  • 여러 dll이 있지만 WS2_32.dll은 윈도우에서 제공하는 라이브러리로 윈도우 Socket을 사용하기 위한 함수들로 정의되어있다. 따라서 이 dll로 네트워크 작업을 할 것으로 추측이 된다. 

 

 - Peview

 

  • MZ(매직파일)로 인해 실행 파일인 것을 확인함.
  • DOS Mode에서는 실행이 안되는 것도 확인함. 

 

  • Virustotal에서 확인한 샘플이 만들어진 시간도 같은 것을 확인함.

 

  • 헤더에 UPX0, UPX1이 있어서 앞에서 Exeinfo로 확인한 것처럼 언패킹이 다 안된것으로 생각하고 Virtual Size와 Size of Raw Data가 똑같은 크기이므로 패킹이 되어있다고 생각함.

 

  • Bintext에서 확인한 라이브러리를 다시 확인함.

4. 동적 분석 

 - Process Explorer

 

  • 샘플을 실행 하였더니 cmd.exe와 conhost.exe, ping.exe를 실행하는 것을 확인하고 이 세가지는 dgrep.exe와 같이 바로 사라짐.
  • rundll32.exe, wiseman.exe가 실행이 되면서 사라지지 않는 것을 확인함.

 

 - Process Monitor

  • dgrep.exe를 실행시키고 무작위로 이름이 만들어진 allaa.exe를 만들어진 것을 확인함.

 

  • cmd를 실행시키는 것도 확인할수있음.

 

 

 

  • conhost.exe, ping.exe가 실행되는 것도 확인할수있음.

 

  • allaa.exe도 실행이 되는 것을 확인할수있음.

 

 

 

  • 무작위로 이름이 정해진 allaa.exe는 dgrep.exe를 SetDispositionInformationEx를 통해 삭제가 되는 것을 확인함.
  • 또한 wiseman.exe, rundll_32.exe가 실행되는 것을 확인할수있음.

  • rundll32.exe에서 allaa.exe를 삭제하는 것을 확인할수있음.

  • rundll32.exe가 Virustotal에서 확인한 107.163.241.192에 연결을 시도하는것을 확인할수있음. 

 

 

  • 1.txt라는 파일도 만들어진것을 확인할수있음.

 

 - System Explorer

 

 

 

  • Process Monitor에서 확인한 1.txt와 무작위로 만들어진 slgvm 파일이 샘플 실행 후에 생겨남.
  • 파일을 찾아보니 slgvm은 숨긴항목으로 되어있었고 1.txt와 wiseman.exe가 깔려있었음.

 

 - Autoruns

  • 스냅샷을 해보니 rundll32.exe와 wiseman.exe가 시작프로그램으로 등록된 것을 확인할수있음.


 - Cports

  • rundll32.exe가 107.163.241.198, 107.163.241.197로 syn-sent를 계속 보내고 있으나 ack가 안와 성립이 안되서 계속 syn을 보내는 것으로 보고 tcp 연결이 안되는 것으로 추측됨.

 - WireShark

  • Virustotal에서 api.wisemansupport.com에 해당하는 ip주소를 알아낸뒤 연결을 시도하는지 검색해보니 내컴퓨터가 SYN 패킷을 보내지만 RST로 응답하는 것을 보면 도메인이 작동하지 않는다고 추측됨. 
  • Cport에서 확인한 IP를 Wire Shark에서 필터링을 해서 찾아보니 내 컴퓨터에서 107.163.241.198로 SYN을 보내나 응답으로 RST가 응답으로 오기때문에 SYN 패킷을 받은 컴퓨터가 내 컴퓨터가 요청한 포트에대해 응답을 할 수 없어서 내 컴퓨터에게 연결이 정상적으로 될 수 없으니 통신을 종료하라는 의미에서 RST로 응답한 것이거나 또는 저 IP 주소에 해당하는 서버가 LISTEN 상태가 아니어서 RST를 보낸 것으로 생각이됨.


5. 결론

  • 기초 분석 
    - 트로이 목마라고 식별이 남.
    - UPX, SVKP 툴로 패킹이 됨.
    - api.wisemansupport.com 도메인과 107.163.241.198 ip가 연관되어 있는것으로 추측됨.
  • 정적 분석
    - Exeinfo에 UPX1, Peid에 SVKP를 보고 패킹이 되었을거라 추측됨.
    - 언패킹을 진행한 후 Peid에 스캔해보니 C++로 만들어진것을 확인함.
    - Bintext에서 여러 dll 중 WS2_32.dll로 인해 Socket 통신과 관련이 있으므로 네트워크에 연관되어있을 것으로 추측됨.
    - ping 명령어로 네트워크를 확인한뒤 wiseman.exe, rundll32.exe를 설치하는 것을 확인함.
  • 동적 분석
    - 샘플 실행시 무작위 실행 파일 allaa.exe를 생성하고 cmd를 실행하고 conhost.exe도 실행한다.
    - cmd는 ping 명령어로 네트워크를 확인한뒤 allaa.exe를 실행함.
    - allaa.exe가 실행되면서 degrep.exe를 삭제하면 cmd, ping, conhost까지 삭제가 되고 wiseman.exe와 rundll32.exe가 실행됨.
    - rundll32.exe는 allaa.exe를 삭제하고 107.163.241.198에 tcp 연결을 계속 시도함.
    - rundll32.exe는 1.txt 파일도 만들고 wiseman.exe와 같이 계속 실행상태로 남아있음.
    - Wire Shark로 107.163.241.198에 tcp 통신을 보니 RST 패킷이 응답으로 오는 것을 보고 네트워크 연결이 안되는 것으로 추측할 수 있음.
    - 따라서 ip주소에 해당하는 서버가 LISTEN 상태가 되거나  api.wisemansupport.com 도메인이 활성화가 된다면 트로이 목마 공격을 수행할 가능성이 있다고 생각됨.