목적을 알 수 없는 봇넷

malwares.com 코드분석팀 분석 자료


<부제 : 너 이름이 뭐니? >


1. 개요 


분석 대상 샘플은 2016년 초부터 꾸준히 배포/보고되고 있는 악성코드로 감염된 사용자 PC에서 지속적으로 동작하면서 서버와 통신 및 기능 업데이트를 하는 형태의 악성코드이다. 
본 악성코드의 특이한 점은 업데이트등을 위해 접근하는 C2 서버는 과거 악성으로 사용된 이력이 없는 신규 등록 도메인이라는 점과 업데이트를 제외한 악성으로 의심할 만한 어떠한 동작도 하지 않는다는 점이다. 
또한 해당 악성코드는 하루에도 3~4차례 업데이트가 이루어지고 있는 등 봇넷은 구성되고 있지만 탐지/차단이 매우 어

려운 상황이다. 


  • 버전 : 1.0.0.455 ~ 1.0.275.3232
  • 유사 변종 샘플 수 : 약 1100여개
  • 유포/배포 URL : 800여개



2. 분석 정보 

(1) 동작 시나리오

< 그림 1. 동작 과정 >

nethost1.exe 로 유입된 악성코드는 C2 서버에 접속해 제2의 C2 서버 URL을 가져온다. 제2의 C2 서버에 접속하면 nethost1.exe가 수행할 명령을 JSON 형태로 전달된다. 
수행할 명령들은 다음과 같다. 

  • 파일 업데이트
  • 감염 PC 상태 정보 추출

또한 JSON 파일에는 업데이트될 악성 파일의 버전을 명시하고 있으며 블로그를 작성하는 2017년 2월 15일 16시 35분 현재 1.0.275 버전이 배포중이다. 
(유입파일명과 업데이트된 파일명이 같은 관계로 편의상 유입 파일명을 nethost1.exe로, 업데이트된 파일명을 nethost2.exe 로 명시한다.)

(2) 세부 동작

< 그림 2. nethost.exe 의 5가지 동작 >


nethost.exe 의 동작은 5가지로 구분할 수 있다. 

  • Case 1 : Install - nethost.exe를 PC에 설치한다. 
  • Case 2 : C2 통신 - C2 서버 연결을 통해 nethost.exe 를 다운로드 받는다. 
  • Case 3 : Uninstall - 설치된 nethost.exe 와 관련된 레지스트리 정보를 제거한다. 
  • Case 4 : Check - 다운받은 JSON 파일내에 존재하는 체크 항목을 수행한다. 
  • Case 5 : Update - C2 서버 접속을 통해 신규 nethost.exe 존재 여부를 확인하고 업데이트 한다. 

< 그림 3. C2 서버 접속 >


nethost.exe는 파일별로 접근을 시도하는 URL 3개를 갖고 있다. 분석 대상 샘플의 경우 다음과 같은 URL을 갖고 있다. 


  • mile******er.ru/index.html
  • gu*****ery.ru/index,html
  • whe******ocus.ru/index.html

해당 URL에 접근하면 그림 3과 같은 암호화된 바이너리가 전달된다. 암호화된 데이터를 복호화하면 접속할 제2의 C2서버 URL이 나오게 된다. 

  • 복호화된 제2의 C2서버 : du*****ner.ru/index

또한 이렇게 확인된 제2의 C2 서버 URL은 주기적으로 접근해 다운로드/업데이트 하기 위해 레지스트리의 특정 경로에 암호화된 데이터 형태로 저장한다. 

< 그림 4. 암호화된 데이터가 저장된 레지스트리 >


저장되는 레지스트리 경로는 다음과 같다. 

  • HKLM\SOFTWARE\<실행된 파일명>

즉, 실행된 파일이 nethost.exe 인 경우 "HKLM\SOFTWARE\nethost" 하위에 저장된다. 

< 그림 5. 제2의 C2 서버로 부터 전달받은 명령 (JSON 포멧) >


복호화된 제2의 C2 서버에 접속하면 그림 5와 같이 암호화된 데이터가 전달되며 이를 복호화하면 JSON 포맷의 C2 서버 명령이 나오게 된다.  JSON 명령 데이터에는 업데이트할 URL과 해당 파일의 버전, 감염된 PC에서 확인해야 할 사항들이 나열되어 있다. 

< 그림 6. 상태 도메인에 PC 점검 정보 전달 >


또한 "statdomain" (상태 도메인)이 존재하며 해당 상태 도메인으로 감염된 PC에서 점검한 데이터를 암호화해 파라미터 형식으로 전송하게 된다. 

< 그림 7. 지속적인 동작 여부만 결정하는 C2 서버 (추정) >


이 외에도 추가로 접근할 수 있는 1개의 URL이 존재하며 해당 URL은 악성코드를 지속적으로 동작시킬지 여부만 알 수 있는 C2 서버로 추정된다. 

  • g.puercontinue.ru (185.20.186.51)

3. 결론

분석 대상 악성코드는 다음과 같은 특징으로 인해 보안 장비 또는 백신을 통한 차단/삭제가 매우 어렵다. 

  • 기존에 사용되지 않은 신규 배포 도메인을 사용한다는 점
  • 배포 URL이 지속적으로 늘어나고 있다는 점
  • 하루에도 3~4차례 버전 업데이트가 이루어져 백신 진단이 어렵다는 점
  • Job 스케줄러 등록이외에 행위 기반 특이점을 찾기 어렵다는 점
이렇게 생성된 봇넷에 업데이트되는 파일만 변경하면 RAT로써의 동작 뿐만 아니라 DDoS 등 다른 용도로 악용될 수 있으므로 주의가 필요하다. 


4. IOC
  • 해시 : AB9A3197A92B5520AF37B223053758E5514DF2FC946EC2B7E278EAB32FF750BA
  • 유입 파일명 : nethost.exe, filesystemdriver.exe, sysnet.exe, syslog.exe, ComDev.exe, svshost.exe, 
                         ScriptWriter.exe, PowerMonitor.exe, upgrade.exe
  • 파일크기 : 701,448 Bytes
  • 태그 : exe_32bit, peexe, overlay, user-directory
  • malwares.com 정보 : https://goo.gl/JHJaQA
  • MAX AI 점수 : 49 (정상 : 20 미만)
  • 재실행 매커니즘 : Job 스케줄러 등록
  • 확산 매커니즘 : 없음

< 그림 8. MAX AI를 통한 진단 화면 >


분석 대상인 nethost.exe를 포함한 모든 변종 샘플에 대해 MAX를 통해 탐지할 수 있다. 



* 본 보고서 및 관련 컨텐츠는 저작권의 보호를 받습니다. 재배포, 영리목적의 활용 관련 법률에 의거 처벌 받을 수 있습니다.

이 글을 공유하기

댓글(0)