악성 코드 샘플 분석 2

2023. 11. 4. 16:43보안관제

목차

 

  • 기초 분석
    • virustotal

 

  • 정적 분석
    • Exeinfo
    • Bintext

 

  • 동적 분석
    • 프로세스  분석
      • Process monitor
      • Process explorer
    • 파일 및 레지스트리
      • system explorer
      • Autoruns 
    • 네트워크 분석
      • Cport
      • Wireshark

 

  • 결론
    • 기초 분석 결론
    • 정적 분석 결론
    • 동적 분석 결론

 

  • 대응책



기초분석(VirusTotal)

 

  • 바이러스 토탈에서 조회시, 트로이목마로 추정하며 해당 악성코드로 방향성 잡기 시작

 

*트로이목마:  악성 루틴이 숨어 있는 프로그램으로, 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성행위를 하는 프로그램

  •  UPX로 패킹 처리되어 있다고 추정

 

* UPX(Ultimate Packer for eXecutables): 여러 운영체제에서 수많은 파일 포맷을 지원하는    오픈 소스 실행 파일 압축 프로그램

* 패킹: 코드 제작자가 안에 코드를 쉽게 해독당하지 않도록 안의 코드 내용을 난독화 처리하여 압축하는 것을 말함. 

 

 

  • 주로 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신이 확인

 

 

  • 107.163.241.198: 유해 IP는 아닌 것으로 추정

 

  • 90개의 백신 중 10개의 백신이 악성 사이트로 진단
  • 해당 사이트와 위 IP는 유해성이 낮은 것으로 추정






정적 분석

Exeinfo

 

  • exeinfo로 확인해봤을 때, 정확히 어떤 툴로 패킹 처리됐는지 확인되지는 않았지만, RL!dePacker라는 프로그램을 이용하여 언패킹 시도를 문구를 확인

 

 

  • RL!dePacker를 설치 후, dgrep 파일을 언패킹 처리 후, unpacked 라는 파일이 생성





Bintext

  • cmd.exe를 이용해 ping 127.0.0.1 -n 2 명령어를 사용하는 것으로 보아 호스트 네트워크 상태 확인하려는 것으로 보임
  • C:\Wiseman.exe 를 설치하여 실행하기 위한 문자열도 확인
  • C:\Windows\System32\rundll32.exe 를 통해 windows 내에 있는 실행모듈도 악용하려는 것으로 추정
  • RedTom21@HotMail.com: 해당 악성 파일과 연관된 메일로 추정

 

 

  • 라이브리러 목록 중 WS_32.dll를 발견
  • 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위한 모듈로 사용되는 것으로 추정

*WS_32.dll: Windows에서 제공하는 라이브러리로 Windows Socket을 사용하기 위한 함수들이 정의되어 있고, 네트워크 통신시 사용되는 필수 모듈

 

 

 

동적 분석

 

프로세스(Process Explorer)

  • 관리자 권한으로 실행후, rundll.exe 실행됨을 확인
  • 악성코드 실행 전과 후 비교

*rundll32: *DLL (Dynamic Link Library) 파일을 다른 응용 프로그램에서 실행할 수 있도록하는 응용  프로그램. rundll32.exe 프로세스가 없으면 응용 프로그램이 라이브러리 코드를로드하고 제대로 실행할 수 없음.

 

 

 

프로세스(Process Monitor) 

  • cmd에서 ping 명령어 실행
  • 나아가 hygxvslj 라는 자식 프로세스 생성

 

 

 

레지스트리(Autoruns)

 

 

  • Run 레지스트리에 EvtMgr이라는 파일과 Wiseman 프로그램이 시작하자마자 자동으로 실행되도록 등록




파일(SystemExplorer)

 

  • 악성코드 파일 실행 전과 후 비교

 

 

  • 네트워크쪽 파일에서는 Cookie 값과 Session 값이 설정
  • 107.163.241.198과 http://api.wisemansupport.com 사이트와의 통신을 위해 이용되는 파일로 보여짐

 

 

  • wiseman.exe 실행 파일의 추가적 생성 확인



 

  • Run 실행 파일안에 EvtMgr와 Wiseman 레지스트리 값이 추가

 



네트워크(Cport)

 

 

  • 이전 정적 분석에서 악성코드가 rundll 함수를 악용하여 본인 코드를 실행 시키도록 하는 것으로 보임
  • rundll32 함수가 현재 악성코드 프로그램에 의해 107.163.241.197/198 와 통신을 하도록 실행
  • 이를 통해 악성코드가 107.163.241.197/198과 통신할려고 하는 것으로 필히 추정



네트워크(WireShark)

 

 

  • wireshark에서는 패킷 필터를 이용하여 살펴봤더니 해당 IP와의 통신시도 확인
  • 로컬에서 해당IP로 SYN 패킷을 주기적으로 송신

 

  • 그러나, 해당 IP 쪽에서 계속 RST 패킷으로 답신 주는 것을 볼 수 있음.
  • RST 패킷 이유: 인터넷 어느 구간에서 방화벽에 의해 막혀있다던가,서버가 현재는 다운되서 연결을 애초에 못하는 것으로 추정

*RST: Reset: 연결 확립된 회선에 강제 리셋 요청

*SYN: Synchronize: TCP 초기 연결설정 초기화를 위해 순서 번호 동기화

 

  • 나아가 http://api.wisemansupport.com는 nslookup을 통해 조회볼려고 했지만 해당 URL에 관한 IP가 조회가 안되는 것으로 볼 때, DNS 서버에서 해당 도메인을 차단 or 해당 사이트의 폐쇄로 추정됨

 

 

 

결론

 

기초 분석 결론

  • 트로이 목마로 추정
  • UPX 패킹 확인
  • 특정 IP 및 사이트과 통신 유무 확인

 

정적 분석 결론

  • 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위한 백도어를 형성 악성코드로 파악
  • 언패킹된 해당 파일을 Bintext 결과
  • cmd.exe를 이용해 ping 127.0.0.1 -n 2 명령어를 통해 호스트 네트워크 상태를 확인하고자는 문자열
  • C:\Windows\System32\rundll32.exe 를 통해 windows 내에 있는 실행모듈도 악용한 것으로 추정
  • 라이브리러 목록 중 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위해 사용된 것으로 추정되는 WS_32.dll를 발견

 

동적 분석 결론

  • 프로세스: rundll 함수를 통해 wiseman 프로그램 실행과 그와 관련된 자식프로세스 생성 및 ping 명령어 등을 확인
  • 레지스트리: wiseman 프로그램이 자동으로 실행되도록 시작 레지스트리 값에 등록
  • 파일: 네트워크 세션 및 쿠키 값 설정, wiseman.exe 실행 파일 추가 생성, Run 실행 파일안에 EvtMgr와 Wiseman 레지스트리 값 추가 생성
  • 네트워크: wireshark를 기준으로 했을 때, 107.163.241.198쪽으로 통신 시도 확인




대응책

 

 

1. 현재 동작 중인 프로세스 확인

  • 대부분 백도어 자체가 티가 나게끔 이름을 짓지 않음
  • 그래서 현재 프로세스를 확인하여 백도어가 아닌 정상 프로세스를 아는 것도 매우 중요

 

2. 열린 포트 확인 

  • 백도어 상당수가 외부와 통신을 하려고 서비스 포트를 생성
  • 시스템에서는 netstat 명령으로 열린 포트를 확인할 수 있는데, 일반 시스템에서 사용하는 포트가 그리 많지 않아 주의해서 살펴보면 백도어가 사용하는 포트를 쉽게 확인가능

 

3. SetUID 파일 검사

  • 윈도우 시스템에는 해당되지 않지만 setUID파일은 리눅스 시스템에서 로컬 백도어로 강력한 기능을 가질 때가 많음
  •  setUID파일 중에 추가되거나 변경된 것은 없는지 주기적으로 살펴보기

 

4. 바이러스와 백도어 탐지 툴 이용

  • 잘 알려진 백도어는 대부분 바이러스 일종으로 분류되는데, 백신 툴은 물론이고 다양한 탐지 툴에서 발견됨.
  • 이런 툴을 사용하면 백도어를 쉽게 잡아낼 수 있음
  • 하지만 리눅스에서는 이런 툴이 많이 부족하므로 수동으로 찾아야 할 때가 많음

 

5. 무결성 검사

  • 무결성 검사에는 MD5 해시 기법을 많이 이용.
  • 파일 내용이 조금만 바뀌어도 해시 결과 값이 다르기 때문에 관리자는 주요 파일의 MD5값을 주기적으로 수집하고 검사하여 변경되는 파일 내역을 확인 필요. 
  • 관리자가 변경하지 않았거나 시스템 운영상 변할 일이 없다면 변경된 파일 조치 금지

* 무결성 검사: 시스템에 어떤 변화가 일어나는지 테스트하는 것

 

6. 로그 분석

  • wtmp: 사용자 로그인 및 로그아웃 정보
  • secure 로그:  텔넷이나 ftp 원격접속등 인증과정을 거치는 모든 로그
  • lastlog: 사용자의 최근 로그인 시간을 사용자 이름, 터미널, 마지막 로그인 시간
  • history: 이전에 사용한 명령어들 기록
  • messages: 로그파일 중 가장 중요한 부분으로서 로그인 기록부터 디바이스 정보 시스템 설정오류, 파일시스템, 네트워크 세션 기록과 같이 가장 다양한 정보를 가지고 있음
  • 해당 로그들을 통해 백도어 형성에 쓰인 로그 기록들 분석

 

 

*악성코드 분석 보고서 주소
https://docs.google.com/document/d/1Y3CPTsoIuV5TCyiR_jaGBA7foVARNIow2nm0f_1ER0w/edit

'보안관제' 카테고리의 다른 글

Snort 환경 구축  (2) 2024.01.14
Snort  (0) 2023.11.18
악성코드 샘플 분석 1  (0) 2023.10.15
정적, 동적 Tool 실습  (0) 2023.09.18
악성코드 샘플 분석 환경 구성  (0) 2023.09.18