상세 컨텐츠

본문 제목

Trojan.Agent.544256 악성코드 분석 보고서

악성코드 분석 리포트

by 알약(Alyac) 2018. 11. 21. 13:00

본문

안녕하세요? 이스트시큐리티입니다.


최근 사용자 PC를 감염시켜 사용자 정보를 탈취하는 Infostealer유형의 악성코드가 꾸준히 발견되고 있습니다. 이번에 발견된 악성코드는 분석 시스템 또는 분석가를 통한 분석을 회피하기 위한 기술들이 다수 적용되어 있습니다.  감염 PC의 분석 환경 구성 여부를 확인하여 악성 행위를 수행할 것인지 결정하는 것이 특징입니다. 


이번 보고서에서는 해당 악성코드에 적용된 기술들과 악성 행위에 대해서 상세하게 알아보고자 합니다.



악성코드 상세 분석


1. 가상 환경 탐지 및 분석 회피


공격자는 악성코드 분석 시스템 또는 분석가를 통한 분석을 방해하기 위하여 가상 환경 탐지, 안티디버깅 등을 사용합니다. 이를 통해 분석 환경이 탐지되면 악성 행위를 수행하지 않고 종료합니다.


1) 현재 파일 이름 검색

현재 실행되는 파일명이 다음과 같을 경우 자가 종료를 수행합니다. 이는 악성코드 분석 중 사용할 수 있는 파일명으로, 분석 환경을 판단하기 위한 방법 중 하나로 보입니다.


 ‘sandbox’, ‘malware’, ‘sample’, ‘virus’, ‘self’

[표 1] 분석 환경 탐지 파일명 목록


2) 안티 바이러스 및 분석 툴 검색

또한, 현재 PC에서 실행되고 있는 프로세스들을 검색하여 다음과 같은 프로세스가 실행 중인지 확인합니다. 이는 분석 환경을 판단하고 안티 바이러스 제품으로부터 탐지되는 것을 방지하기 위함으로 보입니다. 


‘avastsvc.exe’,’aavastui.exe’, ‘avgsvc.exe’, ‘iavgui.exe’, ‘procexp64.exe’, ‘procmon64.eee’, ‘procmon.exe’, ‘ollydbg.exe’, ‘procexp.exe’, ‘windbg.exe’

[표 2] 안티 바이러스 및 분석 툴 프로세스 목록


3) 안티 디버깅

부착된 디버거 존재 유무를 확인하기 위해 프로세스 정보를 담고 있는 Process Environment Block 구조체의 BeingDebuged 값과 Native API인 ZwqueryInformationProcess 반환 값을 확인합니다.  


 

[그림 1] ProcessDebugObjectHandle을 이용한 디버깅 확인


4) 가상 환경 탐지

프로세서 종류를 확인하는 명령어인 CPUID를 이용하여 현재 시스템 환경이 가상에서 실행되고 있는지 확인합니다. 파라미터(EAX) 값이 0x40000000일 때, 가상 환경이라면 EBX, ECX, EDX 값을 통해 특정 문자열을 반환합니다. 


[그림 2] CPUID를 이용한 가상 환경 탐지


KVM

KVMKVMKVM\0\0\0"

Microsoft Hyper-V

"Microsoft Hv"

VMware

VMwareVMware "

Xen

XenVMMXenVMM "

Parallels

prl hyperv"

VirtualBox

VBoxVBoxVBox

[표 3] 가상 머신 별 반환 문자열


5) 코드 난독화

코드 내에 실행되지 않는 코드를 삽입하여 디버거나 디스어셈블러에서 정상적으로 번역 하지 못하게 합니다. 


[그림 3] 코드 내에 삽입된 더미 코드


뿐만 아니라, 함수포인터를 통하여 더미 코드들과 실제 악성 행위코드를 함께 호출시켜 분석을 방해합니다.


[그림 4] 함수 호출 코드



2. 정보 탈취


분석 환경이 확인되지 않을 경우, 설치된 파일과 레지스트리 등을 사용하여 사용자의 정보를 수집합니다. 수집하는 정보는 다음과 같습니다.


탈취 정보

상세 내용

로컬 PC 정보

User Name, OS Version, 국적, 권한, MAC 주소 등

FTP 계정 정보

ALFTP, BlazeFtp, LinasFTP, NovaFTP, FTPVoyager, wiseftp’등

이메일 / 계정 정보

Outlook / POP3 / IMAP / NNTP / HTTPMail / SMTP

브라우저 관련정보

Internet Explorer, Chrome, Firefox, Opera, Thunderbird, SeaMonkey

[표 4] 탈취 항목


또한, PC에 등록된 계정들을 확인하고 계정 탈취를 위해 무작위 대입식 공격인 브루트 포싱 공격을 시작합니다. 다음은 브루트 포싱 공격 코드입니다.


[그림 5] 브루트 포싱 공격 코드


다음은 브루트 포싱 공격에 사용되는 비밀번호 리스트입니다.


'1234567890', 'gfhjkm', 'ghbdtn', 'billgates', 'gates', 'mustdie', 'windows', 'hotdog', 'prayer', 'stella', 'cassie', 'kitten', 'danielle', 'jasper', 'hallo', '112233', 'saved', 'dexter', 'hardcore', 'angel1', '55555', 'chelsea', 'qwert', 'prince', 'blabla', 'red123', 'baby', '1q2w3e4r', 'john', 'jason', 'maxwell', 'sammy', 'fuckoff', 'scooby', 'emmanuel', 'nathan', 'loving', 'football1', 'ilovegod', 'jordan23', 'cocacola', '11111111', 'bubbles', '222222', 'microsoft', 'none', 'destiny', 'friend', 'church', 'mylove', 'david', 'onelove', 'maverick', 'testtest', 'green', 'dallas', 'mike', 'samuel', 'zxcvbnm', 'praise', 'wisdom', 'slayer', 'rotimi', 'adidas', 'foobar', 'creative', 'qwerty1', 'knight', 'genesis', 'viper', '1q2w3e', 'iloveyou!', 'benjamin', 'power', 'hockey', 'corvette', 'anthony', 'enter', 'bandit', 'spirit', 'thunder', 'digital', 'lucky', 'joseph', '7777', 'smokey', 'harley', 'looking', 'nintendo', 'shalom', 'hope', 'friends', 'google', 'merlin', 'admin', 'sparky', 'austin', 'passw0rd', 'chris', 'junior', 'chicken', '123abc', 'online', 'trinity', 'maggie', 'winner', 'george', 'startrek', '123321', '123qwe', 'london', 'victory', 'asdfasdf', 'james', 'banana', 'scooter', 'flower', 'cool', 'peaches', 'blink182', 'richard', 'john316', 'forum', 'taylor', 'diamond', 'compaq', 'samantha', 'dakota', 'eminem', 'hello1', 'biteme', 'mickey', 'soccer1', 'bailey', 'cookie', 'batman', 'peanut', 'guitar', 'rainbow', 'rachel', 'asdfgh', 'forever', 'robert', 'silver', 'canada', 'matthew', 'myspace1', 'blahblah', 'blessing', 'poop', 'hahaha', 'asshole', 'fuckyou1', 'gateway', 'muffin', '666666', 'nicole', 'iloveyou2', 'william', 'grace', 'secret', 'peace', 'michelle', 'apple', 'testing', 'orange', 'jasmine', 'justin', 'helpme', 'mustang', '11111', 'iloveyou1', 'pokemon', 'welcome', 'jessica', 'snoopy', 'mother', 'ginger', 'nothing', 'amanda', '654321', 'aaaaaa', 'pass', 'matrix', 'happy', 'qazwsx', 'hannah', 'single', 'jennifer', '1111', 'daniel', 'charlie', 'angels', 'thomas', 'andrew', 'lovely', 'hunter', '7777777', 'pepper', 'heaven', 'buster', 'ashley', 'summer', 'faith', 'jordan', 'purple', '000000', 'starwars', 'baseball', 'blessed', 'fuckyou', 'joshua', 'internet', 'cheese', 'michael', 'superman', 'soccer', 'asdf', 'killer', 'freedom', 'whatever', '123123', 'jesus1', 'angel', 'football', 'tigger', 'princess', 'computer', 'master', 'sunshine', 'christ', '123456789', 'shadow', '1234567', 'iloveyou', '111111', 'trustno1', 'dragon', 'monkey', 'hello', 'password1', 'love', 'test', 'letmein', 'abc123', '1234', '12345678', 'jesus', '12345', 'qwerty', 'phpbb', 'password', '123456'

[표 5] 브루트 포싱에 사용되는 비밀번호 목록


위 과정을 통해 탈취된 정보들은 암호화 하여 공격자 서버인 ‘http://62.108.40.55/k5/gate.php’로 전송된다. 하지만 현재는 C&C서버가 차단돼 연결되지 않는다. 다음은 정보 전송 코드입니다.


[그림 6] C&C 정보 전송 코드 



3. 자가 삭제


정보 탈취 기능을 모두 수행한 뒤, ‘[임의명].bat’ 형식의 파일을 생성합니다. 해당 파일은 자가 삭제 기능을 수행합니다. 이는 감염 PC로부터 악성코드를 삭제하여 수집이 어렵도록 하기 위함으로 보입니다. 다음은 자가 삭제 코드입니다. 


[그림 7] 자가 삭제 코드



결론


본 악성코드는 사용자 정보를 탈취하는 것을 주목적으로 합니다. 특히 FTP나 브라우저, 이메일 관련 프로그램에서 민감한 사용자 계정 정보를 탈취하기 때문에 2차 피해가 야기될 수 있어 각별한 주의가 필요합니다.


해당 악성코드는 로컬PC의 사용자 계정 정보 탈취를 위해 부르트 포싱 공격을 사용합니다. 이때 사용되는 비밀번호 리스트는 비교적 간단한 영어단어 및 숫자 형식을 가집니다. 부르트 포싱 공격을 예방하기 위해서 사용자들은 영문 대문자와 숫자, 특수문자 등을 이용해 복잡한 조합의 비밀번호를 사용해야 하며, 주기적으로 비밀번호를 변경해주는 습관을 가질 필요가 있습니다. 


이러한 악성코드에 감염이 되지 않기 위해서 출처가 불분명한 이메일에 있는 링크 혹은 첨부파일에 대해 열람을 삼가야 합니다. 또한 백신을 최신 업데이트 상태로 유지하며 주기적인 검사를 실시하여야 합니다. 


현재 알약에서는 ‘Trojan.Agent.544256’로 진단하고 있습니다.



관련글 더보기

댓글 영역