분석 정보/리눅스 분석 정보

SSH 서버를 대상으로 공격하는 RapperBot 악성코드

TACHYON & ISARC 2022. 12. 27. 15:01

IoT 장치를 대상으로 공격하는 새로운 "RapperBot" 봇넷 악성코드가 발견됐다. 해당 악성코드는 과거 소스코드가 공개된 “Mirai”를 기반으로 하고 있지만, “Mirai”에서 주로 사용하는 텔넷 자체 전파 방식이 아닌 SSH를 활용한 전파 방식을사용한다. 이 과정에서 SSH 서버를 스캔하고 자격 증명을 무작위로 입력해 접근 권한을 획득한 후, “RapperBot”을 감염한다. 이후 감염된 장치에서 실행된 악성코드는 공격자의 C&C 서버에서 받은 명령에 따라 DDoS 공격을 수행한다.

 

자가 삭제

먼저, “RapperBot”을 실행하면 unlink 함수를 사용해 실행한 파일을 자가 삭제한다.

 

[그림 1] 자가 삭제 결과

 

와치독 타이머 초기화 - 재부팅 방지

그 다음, IoT 장비에서 의도하지 않은 무한 루프 등의 오작동을 탐지하기 위해 사용하는 와치독 타이머 (WatchdogTimer)를 초기화해 디바이스의 재부팅을 방지한다.

 

[그림 2] 와치독 타이머 초기화

 

프로세스 이름 변경

또한, 실행한 파일의 분석을 방해하기 위한 목적으로 프로세스의 이름을 임의의 문자열로 변경한다.

 

[그림 3] 프로세스 이름 변경

 

프로세스 이름 변경에는 [그림 4]와 같이 프로세스에 대한 제어 관련 함수인 prctl을 사용하며, 해당 함수의 인자 값으로 PR_SET_NAME (0xF)을 전달한다. 이후, 실행 파일 경로가 저장된 argv[0]을 임의로 생성한 문자열로 교체해 프로세스의 이름을 변경한다.

 

[그림 4] 프로세스 이름 변경 코드

 

정상 실행 확인

[그림 5]는 공격자가 봇넷 설치 후 정상 실행 여부를 확인하기 위한 목적의 문자열인 “listening tun0”이 출력된 결과이다.

 

[그림 5] RapperBot 실행 결과

 

네트워크

이전 과정을 완료하면 “RapperBot”은 다수의 봇을 만들기 위해 SSH 서버를 스캔한다. 이후, 브루트 포스 공격(Brute Force Attack) 방식을 사용해 자격 증명을 입력하고 접근 권한을 획득한다.

 

[그림 6] SSH 서버 스캔 패킷

 

또한, 공격자의 C&C 서버와 통신한 후, 서버에서 받은 명령에 해당하는 행위 또는 DDoS 공격을 수행한다. 하지만, 분석 시점에서는 공격자의 C&C 서버와 연결되지 않았다.

 

[그림 7] 공격자 C&C 연결 패킷

 

[그림 7]은 “RapperBot”이 실행된 사용자 PC에서 공격자가 운영하는 C&C 서버로 보내는 데이터와 코드이다. 해당 악성코드가 보내는 데이터는 32바이트의 Bot ID와 4바이트 명령 코드 및 감염된 PC 환경 정보가 포함된 문자열을 순으로 구성된다. 감염된 PC 환경 정보는 악성코드 실행 시 인자 값으로 전달되는 값이다.

- Bot ID : d4 1c 74 44 70 95 28 ff f0 98 ae 4e 6f 92 ba d5 0f cd 56 29 c5 12 53 a1 fe 46 53 c7 0b b5 18 27

 

[그림 8] 공격자 C&C 서버 패킷 전송

 

C&C 서버로 보내는 데이터 중, 명령 코드는 [표 1]과 같다. 만약, 명령 코드가 0x03일 경우 공격자가 운영하는 C&C 서버에서 수신한 명령에 따라 UDP Flooding 또는 TCP STOMP Flooding 공격을 수행한다.

 

[표 1] 명령 코드

 

최근, 본 보고서에서 언급한 “RapperBot”의 변종이 지속적으로 발견되고 있으며, 취약한 SSH 서버를 대상으로 공격하므로 관리자들의 주의가 필요하다. 따라서, IoT 장비 등의 비밀번호를 변경하고, 원격 접속이 불가능하도록 사용하지 않는 SSH(22) 서비스 포트의 사용 해제를 권고한다.