14. 악성코드 샘플 분석 (2)

SJH·2024년 6월 16일
0
post-thumbnail

악성파일 샘플 다운

dgrep 악성샘플 파일을 가상환경으로 안전하게 옮겨주었습니다.

기초분석

VirusTotal

  • VirusTotal로 해당 악성파일을 기초분석한 결과 68개의 백신에서 악성여부를 확인
  • Backdoor, Trojan이 자주 보이는 것으로 보아 백도어 기능과 트로이목마 기능이 있는 악성파일이라는 점을 확인

DETAIL
SVK-Protector 프로그램을 사용해 UPX로 패킹한 악성파일이라는 점을 확인 가능

RELATIONS
107.163.241.198 이라는 IP주소 및 http://api.wisemansupport.com/ 도메인 주소와
연관이 되어있다는 점을 확인할 수 있었음

정적분석

Exeinfo PE

Exeinfo PE 툴 아래에 적힌 www.AHTeam.org에서 Quick unpack v4.2를 다운받으려 시도했으나 다운로드가 되지 않았고,
RL!dePacker v1.5를 다운받으려고 http://ap0x.jezgra.net 에 접속을 시도했으나 사이트를 찾을 수 없었음.

그래서 UPX로 시도해 보았으나, UPX로도 언패킹이 불가능

결국 구글에서 RL!dePacker 언패킹 툴을 .rar 압축파일로 다운받아 dgrep 악성샘플을 언패킹해주었음.

Exeinfo로 언패킹한 dgrep.exe 파일을 분석한 결과 패킹상태와 달라진 모습을 확인할 수 있으나, 아직 UPX0이 남아있는 것을 보아 언패킹이 완전히 되었는지 확신이 되지 않음.

따라서 다른 분석툴로 재분석을 해야함.

BinText

  • 명령프롬프트 cmd.exe를 사용해 127.0.0.1 주소로 ping 명령을 시도하는 것을 확인
  • "c:\wiseman.exe" 파일 경로 및 실행 파일 확인
  • "RedTom21@HotMail.com" 이메일 주소 발견

또한 여러 DLL파일 및 함수들을 발견할 수 있었는데, 그중 대표적으로 WS2_32.dll을 보아 네트워크를 행위를 통해 실행되는 악성샘플이라는 점을 확인할 수 있었음.

그 외 DLL의 역할

  • KERNEL32.DLL: 시스템 기능에 대한 접근을 제공하는 역할.
    파일 및 메모리 관리, 프로세스 및 스레드 생성 및 제어, 예외 처리 등과 관련된 기능을 제공

  • GDI32.DLL: 그래픽 관련 기능을 제공하는 라이브러리로, Windows에서 그래픽 객체를 생성하고 편집하는 데 사용

  • MFC42.DLL: Microsoft Foundation Classes의 일부로, C++ 프로그래밍을 위한 클래스 라이브러리를 제공

  • MSVCRT.DLL: C 프로그래밍 언어를 위한 런타임 라이브러리로, 기본적인 C 함수 및 입출력 기능을 제공

  • SHLWAPI.DLL: Windows 쉘에서 사용되는 경량 API로, 파일 및 폴더 조작, 문자열 처리 등을 포함한 다양한 기능을 제공

  • USER32.DLL: Windows 사용자 인터페이스와 관련된 함수를 제공하는 라이브러리로, 창 생성, 메시지 처리, 입력 처리 등의 기능을 제공

  • WS2_32.DLL: Windows에서 네트워크 프로그래밍을 지원하는 라이브러리로, 소켓 통신과 관련된 함수를 제공

PEview

  • MZ 칸에 4D 5A 표시가 있는 것으로 보아 해당 파일은 .exe 실행파일

  • “This program cannot be run in DOS mode” 문장을 보아 DOS모드에서는 실행할 수 없는 파일

언패킹 전의 파일은 Virtual Size의 크기가 1000, Size of Raw Data가 C00으로 서로 다른 반면에,
언패킹 후의 파일은 두 사이즈 모두 1000으로 같아진 것을 확인할 수 있음.

즉, RL!depacker 툴을 사용한 언패킹이 잘 진행되었음.

동적분석

Process Explorer

dgrep.exe(빨간색 창)를 실행시키자 그 뒤에 conhost.exe, cmd.exe, PING.EXE(초록색 창)가 프로세스 목록에 생성되는 것을 확인할 수 있었음.

conhost.exe, cmd.exe 프로세스로 명령 프롬프트를 실행시키는 행위를 하며, PING.EXE 프로세스를 보아 TCP/IP Ping 명령으로 네트워크 관련 행위를 하는 악성파일이라는 점을 추정 가능함.

dgrep.exe를 실행시키고 시간이 지나면 위 그림의 실행파일들은 사라지고 맨 밑에 rundll32.exe가 남는 모습을 확인할 수 있었음.

이 rundll32.exe가 어떤 역할을 하기 위해 프로세스에 남았는지 확인하기 위해 속성에 들어가 TCP/IP 칸을 살펴봤더니 107.163.241.198라는 IP주소에 SYN패킷을 보내 연결요청을 하는 모습을 확인할 수 있었음.

107.163.241.198의 IP를 주소 조회 서비스인 nordvpn.com에 들어가 검색해봤더니 지역을 정확하게 특정할 수는 없었지만 미국에서 만들어진 IP주소라는 점을 확인할 수 있었음.

Process Moniter

  • dgrep.exe 프로세스 시작

  • dgrep.exe가 cmd.exe를 실행하는 모습을 확인

  • cmd.exe 를 통해 PING.EXE를 요청한 모습을 확인
    그리고 PING.EXE 프로세스 실행

  • 무작위 이름으로 생성된 zrthc.exe 프로세스 확인

  • zrthc.exe가 wiseman.exe을 실행하는 모습 확인
    그 뒤에 네트워크 요청 역할을 하는 rundll32.exe가 이어서 실행

  • rundll32.exe가 특정 주소에 TCP연결 시도

rundll32.exe가 TCP연결하는 레지스트리의 속성을 분석한 결과,
분석을 진행하는 PC인 WIN-H9EM7L47QAT에서 107.163.241.197 IP주소에 TCP 재연결방식으로 통신을 하는 모습을 확인할 수 있었음.

Autoruns

Autoruns의 Compare 기능을 사용해 dgrep.exe의 실행전과 실행후를 비교한 결과,
부팅 후 자동으로 실행되는 프로그램인 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run에 EvtMgr이라는 이미지파일과 Wiseman 실행파일이 등록된 것을 확인할 수 있었음.

이는 PC를 재부팅해도 근본적인 해결을 할 수 없어 해결을 위한 다른 방안이 필요함.

SmartSniff

SmartSniff를 켜고 악성샘플을 실행해보았으나, 계속 기다려보아도 실행 전과 실행 후를 비교했을 때 큰 차이가 없다는 점을 확인
현재 네트워크를 통한 행위는 비활성되었다는 점을 추정할 수 있음.

Wireshark

분석을 진행하는 PC의 IP인 192.168.88.129에서 기초분석 확인했던 악성파일과 관계된 IP인 107.163.241.197~8로 SYN패킷을 보내는 모습을 포착

해당 IP에서는 ACK패킷으로 응답하였으나, RST패킷도 함께 보내 강제로 연결 초기화를 요청

즉, 현재 두 IP 사이에 정상적인 연결이 수행되지 않는다는 것을 알 수 있음.

결론

기초분석

  • 백도어, 트로이목마의 성질
  • UPX로 패킹된 악성샘플
  • 특정 IP,URL주소와 연관되어 있음

정적분석

  • UPX로 패킹된 악성샘플일지라도 무조건 UPX로 언패킹 가능한 것은 아니기 때문에 다른 언패킹 도구가 필요
  • cmd.exe를 이용해 Ping 명령어로 네트워크 작업을 수행한다는 점
  • WS2_32.dll 함수가 발견된 것을 보아 네트워크를 이용하는 악성코드인 점을 확인

동적분석

  • 기초분석에서 확인했던 것처럼 실행 시 파일이 사라진다는 점, 사라진 후 PC사용자 몰래 여러 악성행위를 시도한다는 점에서 백도어, 트로이목마 성질을 지니고 있는 악성코드라는 것을 동적분석을 통해 다시 확인
  • dgrep.exe 실행 시 cmd.exe, PING.EXE, zrthc.exe, wiseman.exe, rundll32.exe 등 여러 실행파일들이 파생되어 실행된다는 점을 Process Moniter를 통해 확인
  • dgrep.exe와 연결된 주소인 107.163.241.197~8은 현재 비활성화 되어있어 네트워크 패킷 전송에 오류가 발생하는 것으로 보임

대응방안

백도어와 트로이목마 성질을 지니고 있는 악성코드에 대응하기 위해서는

  1. 소프트웨어를 주기적으로 업데이트하여 해커가 이전 버전의 소프트웨어 취약점을 활용할 수 없도록 하기

  2. 신뢰할 수 있는 사람이 보낸 이메일이 아니라면 링크나 첨부파일을 절대 클릭하지 않기

  3. 안랩의 V3 같은 위협방지 소프트웨어를 사용하여 위협이 장치에 도달하는 것을 방지하기

정도의 대응방안을 실천해볼 수 있음.

보완점

관제, cert 업무를 할때는 내용 상세 분석 이전에 IP, 포트번호 확인 필수

악성코드 보고서 작성 시 분석했던 상세한 내용들이 결론에 다 들어가야 함.

백신, 악성코드 분석을 전문적으로 하는 회사는 정적분석 시 어셈블리어, 리버싱에 대한 지식이 필수

결론 마지막엔 어떠한 유형의 악성코드인지 반드시 기재, 후엔 대응방안

대응방안도 이미지 캡쳐화면으로 상세하게 작성

같은 악성파일을 분석한 결과가 예전이랑 비교해 달라졌을 시 이유
1. 관리자의 권한으로 실행에서 윈도우에서 요구하는 권한에 맞춰서 모든 기능들이 실행됨
2. 시간이 지남에 따라 성질이 변함.

profile
보안, 클라우드 공부정리 블로그

1개의 댓글

comment-user-thumbnail
2024년 10월 11일

혹시 악성코드 샘플을 어디서 구하셨는지 알 수 있을까요?

답글 달기