95. DDoSia
러시아의 핵티비스트 그룹인 NoName057(16)이 DDoS 공격에 활용되는 것으로 알려져 있는 DDoSia 악성코드를 분석해보았다. DDoSia 악성코드는 텔레그램 채널을 통해 악성코드 동작 관련 파일들을 유포하기도 한다.
* sha256: e8cf6f82a1336b76abb170337985906454f142c5cca33f6aec3591643eaf3268
먼저, 해당 악성코드는 Go 언어로 작성되었다. 공격자는 악성코드의 실행이 운영체제나 피해자 환경에 구애 받지 않도록 크로스 컴파일 기능이 존재하는 Go 언어를 사용한 것으로 보여진다.
DDoSia 악성코드는 공격자 C2와 지속적으로 통신하며 공격을 수행한다. 악성코드 실행 시 가장 먼저 C2의 login 엔드포인트를 통해 로그인 과정을 수행한다. 해당 과정에는 client_id.txt 파일이 사용된다. 이 client_id.txt 파일은 DDoSia 악성코드에서 사용하는 ID 값을 가지고 있으며 악성코드가 실행중인 시스템의 기본적인 정보를 수집해 C2 서버로 함께 전송한다.
* login 엔드포인트: /login
수집 정보에는 동작중 PC의 위치 정보도 포함된다. 위치 정보는 nordvpn의 기능을 이용해 수집한다. nordvpn에는 요청을 보낸 PC의 위치 정보 등을 반환하는 기능이 존재하는데, 해당 기능을 이용한다.
* nordvpn url: https://nordvpn.com/wp-admin/admin-ajax.php?action=get_user_info_data
로그인 과정 이후에는 C2 서버로부터 공격 대상을 획득한다. 공격 대상을 정상적으로 획득하면 "Получено целей:" 문자열을 출력하는데, 이 문자열을 영어로 번역하면 "Received goals:" 가 된다. 즉, "공격대상 수신"으로 해석된다.
* 공격대상 획득 엔드포인트: /client/get_targets
공격 대상이 정상적으로 수신되면, http 연결 요청을 수행하는 워커를 생성한다. 이 워커를 통해 공격 대상에 POST 웹 요청을 지속적으로 전송하는 형태로 DDoS 공격을 수행한다.
또, 공격 중에 공격 대상을 바꾸는 기능도 존재한다. 공격 중간에 특정 엔드포인트로 통신을 시도하고 공격 대상을 재획득한다.
* 공격 대상 재획득 엔드포인트: /client/get_targets
공격 중 C2 서버에게 공격 관련 정보를 전송한다. 이 정보를 통해 공격자는 공격 상황을 모니터링 할 것으로 생각된다.
* 공격 정보 전송 엔드포인트: /set_attack_count
아래는 실행 화면이며, 분석한 샘플에서는 C2 서버로의 연결 + client_id.txt 파일의 부재로 단순 실행 로그만 나타난다.
* C2 서버 주소: 94[.]140[.]114[.]239
위 C2 서버 주소를 분석 플랫폼에 검색해봤는데, 관련된 URL 등은 나타나지 않았다.