dgrep 악성샘플 파일을 가상환경으로 안전하게 옮겨주었습니다.
DETAIL
SVK-Protector 프로그램을 사용해 UPX로 패킹한 악성파일이라는 점을 확인 가능
RELATIONS
107.163.241.198 이라는 IP주소 및 http://api.wisemansupport.com/ 도메인 주소와
연관이 되어있다는 점을 확인할 수 있었음
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이 남아있는 것을 보아 언패킹이 완전히 되었는지 확신이 되지 않음.
따라서 다른 분석툴로 재분석을 해야함.
또한 여러 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에서 네트워크 프로그래밍을 지원하는 라이브러리로, 소켓 통신과 관련된 함수를 제공
MZ 칸에 4D 5A 표시가 있는 것으로 보아 해당 파일은 .exe 실행파일
“This program cannot be run in DOS mode” 문장을 보아 DOS모드에서는 실행할 수 없는 파일
언패킹 전의 파일은 Virtual Size의 크기가 1000, Size of Raw Data가 C00으로 서로 다른 반면에,
언패킹 후의 파일은 두 사이즈 모두 1000으로 같아진 것을 확인할 수 있음.
즉, RL!depacker 툴을 사용한 언패킹이 잘 진행되었음.
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주소라는 점을 확인할 수 있었음.
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의 Compare 기능을 사용해 dgrep.exe의 실행전과 실행후를 비교한 결과,
부팅 후 자동으로 실행되는 프로그램인 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run에 EvtMgr이라는 이미지파일과 Wiseman 실행파일이 등록된 것을 확인할 수 있었음.
이는 PC를 재부팅해도 근본적인 해결을 할 수 없어 해결을 위한 다른 방안이 필요함.
SmartSniff를 켜고 악성샘플을 실행해보았으나, 계속 기다려보아도 실행 전과 실행 후를 비교했을 때 큰 차이가 없다는 점을 확인
현재 네트워크를 통한 행위는 비활성되었다는 점을 추정할 수 있음.
분석을 진행하는 PC의 IP인 192.168.88.129에서 기초분석 확인했던 악성파일과 관계된 IP인 107.163.241.197~8로 SYN패킷을 보내는 모습을 포착
해당 IP에서는 ACK패킷으로 응답하였으나, RST패킷도 함께 보내 강제로 연결 초기화를 요청
즉, 현재 두 IP 사이에 정상적인 연결이 수행되지 않는다는 것을 알 수 있음.
기초분석
정적분석
동적분석
백도어와 트로이목마 성질을 지니고 있는 악성코드에 대응하기 위해서는
소프트웨어를 주기적으로 업데이트하여 해커가 이전 버전의 소프트웨어 취약점을 활용할 수 없도록 하기
신뢰할 수 있는 사람이 보낸 이메일이 아니라면 링크나 첨부파일을 절대 클릭하지 않기
안랩의 V3 같은 위협방지 소프트웨어를 사용하여 위협이 장치에 도달하는 것을 방지하기
정도의 대응방안을 실천해볼 수 있음.
관제, cert 업무를 할때는 내용 상세 분석 이전에 IP, 포트번호 확인 필수
악성코드 보고서 작성 시 분석했던 상세한 내용들이 결론에 다 들어가야 함.
백신, 악성코드 분석을 전문적으로 하는 회사는 정적분석 시 어셈블리어, 리버싱에 대한 지식이 필수
결론 마지막엔 어떠한 유형의 악성코드인지 반드시 기재, 후엔 대응방안
대응방안도 이미지 캡쳐화면으로 상세하게 작성
같은 악성파일을 분석한 결과가 예전이랑 비교해 달라졌을 시 이유
1. 관리자의 권한으로 실행에서 윈도우에서 요구하는 권한에 맞춰서 모든 기능들이 실행됨
2. 시간이 지남에 따라 성질이 변함.
혹시 악성코드 샘플을 어디서 구하셨는지 알 수 있을까요?