aNotepad를 악용하는 WogRAT 악성코드 (윈도우, 리눅스)
최근 AhnLab SEcurity intelligence Center(ASEC)에서는 무료 온라인 메모장 플랫폼인 aNotepad를 악용하여 유포되고 있는 백도어 악성코드를 확인하였다. 해당 악성코드는 윈도우 시스템을 대상으로 하는 PE 포맷의 악성코드뿐만 아니라 리눅스 시스템을 대상으로 하는 ELF 포맷의 악성코드도 지원한다. 공격자는 악성코드 제작 시 WingsOfGod이라는 문자열을 사용하였으며 이를 기반으로 WogRAT으로 분류한다.

Figure 1. 공격에 활용된 aNotepad 플랫
1. 유포 사례
WogRAT은 적어도 2022년 말부터 최근까지 지속적으로 공격에 사용되고 있는 것으로 보인다. 비록 리눅스 시스템을 대상으로 하는 공격 사례는 확인되지 않았지만 윈도우 대상 악성코드들의 경우 수집 시 파일 명을 기반으로 했을 때 정상 유틸리티 도구들을 위장하여 다운로드를 유도하는 공격 방식이 사용되고 있는 것으로 추정된다.
공격에 사용된 악성코드들의 이름들은 “flashsetup_LL3gjJ7.exe”, “WindowsApp.exe”, “WindowsTool.exe”, “BrowserFixup.exe”, “ChromeFixup.exe”, “HttpDownload.exe”, “ToolKit.exe” 등 정상 유틸리티들을 위장한 이름들이 많았다. VirusTotal 기준 수집 지역들을 기반으로 추정했을 때 주요 공격 대상으로는 홍콩이나 싱가포르, 중국, 일본 등 아시아 지역인 것으로 보인다.
2. WogRAT (Windows)
여기에서는 윈도우 버전의 WogRAT 악성코드들 중 하나를 기반으로 설명한다. 먼저 어도비 도구를 위장해 유포된 악성코드는 닷넷으로 개발되었다. 클래스 명을 보면 크롬 웹 브라우저 관련 도구를 위장하고 있지만 실제로는 내부적으로 암호화된 다운로더 악성코드의 소스 코드를 포함하고 있다.

Figure 2. 암호화된 소스 코드
해당 악성코드가 실행되면 먼저 소스 코드를 컴파일하여 로드하는데 로드되는 DLL은 aNotepad 플랫폼에서 문자열을 다운로드해 Base64 알고리즘으로 복호화한 후 로드하는 기능을 담당한다. 실제 aNotepad URL에 접속하면 다음과 같이 Base64로 암호화된 닷넷 바이너리가 메모장에 문자열로 저장되어 있는 것을 확인할 수 있다.

Figure 3. aNotepad에 저장된 문자열과 이를 복호화해 로드하는 루틴
최종적으로 로드되는 DLL은 WingsOfGod이라는 이름을 갖는 백도어 악성코드이다. WogRAT은 처음 실행되면 감염 시스템의 기본적인 정보들을 수집해 C&C 서버에 전송하며 이후 명령 실행 및 결과 전송, 파일 다운로드/업로드 등의 명령을 지원한다.

Figure 4. WingsOfGod RAT의 메인 루틴
WogRAT은 최초 접속, 명령 다운로드, 명령 실행 결과에 따라 다음과 같은 구조의 데이터를 POST 요청으로 전송한다. 예를 들어 다음 데이터는 최초 접속 시 전송하는 데이터의 예시이다.
- 최초 접속 시 전송하는 데이터 (예시) : “act=on&bid=4844-1708721090438&name=TestPC\TestUser”
| 단계 | 전송 데이터 |
|---|---|
| 최초 접속 | act=on& bid=[PID]-[Random]& name=[PC Name]\[User Name] |
| 명령 다운로드 | act=chk& bid=[PID]-[Random] |
| 명령 실행 결과 전송 | act=ret& task_id=[작업 ID]& result=[Base64 암호화된 명령 실행 결과] |
Table 1. 전송 데이터 구조
명령 다운로드 시에는 명령의 종류와 해당 작업의 ID 그리고 명령 관련 데이터를 전달받는다. 예를 들어 다음 데이터는 upldr(예시)이라는 이름의 작업으로서 “C:\malware.exe” 경로의 파일을 읽어 C&C 서버에 전송하는 명령이다.
- 전달받는 명령 (예시) : “task_id=upldr&task_type=3&task_data=C:\malware.exe”
| 기능 | |
|---|---|
| task_id | 작업 ID |
| task_type | 명령 (5개 지원) |
| task_data | 명령 관련 데이터 |
Table 2. 명령 구조
| 명령 | 설명 | Task_data |
|---|---|---|
| 1 | 명령 실행 | 실행할 명령 |
| 2 | 다운로드 | “다운로드 주소|생성할 파일 경로” |
| 3 | 업로드 | “업로드할 파일 경로” |
| 4 | 대기 시간 변경 | 대기 시간 (초 단위) |
| 5 | 종료 |
Table 3. 지원하는 명령
참고로 파일 업로드는 FTP 프로토콜을 활용한다. 현재 분석 대상인 악성코드는 파일 업로드 시의 주소가 테스트 성 URL인 것을 보면 기능을 지원하지 않는 것으로 보이지만 다른 악성코드에서는 이를 활용하고 있는 것을 알 수 있다.

Figure 5. FTP 프로토콜을 활용하는 파일 업로드 명령
3. WogRAT (Linux)
최초 유포 방식은 확인되지 않지만 동일한 C&C 서버를 사용하는 악성코드들을 확인하던 중 리눅스 시스템을 대상으로 하는 WogRAT도 함께 확인되었다. 리눅스 버전의 WogRAT은 윈도우 버전과 유사하며 Rekoobe 백도어와 유사하게 오픈 소스 악성코드인 “Tiny SHell”의 루틴을 차용한 것이 특징이다.
WogRAT이 실행되면 일반적인 악성코드들처럼 프로세스 이름을 정상 프로세스와 유사하게 변경하여 사용자가 눈치채기 어렵게 한다. 현재 확인된 WogRAT은 모두 “[kblockd]”라는 이름으로 프로세스 이름을 변경한다. 이후 윈도우 버전과 유사하게 감염 시스템의 기본적인 정보들을 수집하고 전송한다.

Figure 6. 윈도우 버전과 유사한 루틴들
- 최초 접속 시 전송하는 데이터 예시 : “Online#beacon_id=1407-1708746837279&pid=1407&hostname=testPC&ip=xxx.xxx.xxx.xxx&uid=0&username=root”
| 단계 | 전송 데이터 |
|---|---|
| 최초 접속 | Online# beacon_id=[PID]-[Random]& pid=[PID]& hostname=[호스트 이름]& ip=[IP 주소]& uid=[uid]& username=[사용자 이름] |
| 명령 다운로드 | Check# beacon_id=[PID]-[Random] |
| 명령 실행 결과 전송 | AddResult# task_id=[작업 ID]& result=[Base64 암호화된 명령 실행 결과] |
Table 4. 전송 데이터 구조
전송 데이터 구조는 윈도우 버전과 약간 차이가 존재하지만 C&C 서버로부터 전달받는 데이터는 동일하게 “task_id”, “task_type”, “task_data”가 사용된다. 지원하는 명령 또한 다운로드 명령이 없는 것을 제외하면 거의 유사하다. 하지만 C&C 서버와의 통신에 위의 문자열들을 그대로 사용했던 윈도우 버전과 달리 데이터 전송 시 추가적으로 암호화하여 전송한다는 차이점이 존재한다.
| 명령 | 설명 | Task_data |
|---|---|---|
| 1 | 리버스 쉘 | 리버스 쉘 주소 “IP:Port” |
| 2 | 업로드 | “업로드할 파일 경로” |
| 3 | 대기 시간 변경 | 대기 시간 (초 단위) |
| 4 | 종료 |
Table 5. 지원하는 명령
리눅스 버전의 WogRAT이 갖는 가장 큰 특징이라고 한다면 C&C 서버로부터 직접 명령을 전달받는 대신 리버스 쉘을 담당하는 서버에 대한 주소를 전달받고 해당 주소에 접속하는 것이다. 과거 동일한 주소에서 WogRAT 대신 Tiny SHell이 유포된 점이나 리버스 쉘 루틴이 Tiny Shell과 동일한 것을 보면 공격자는 Tiny SHell 서버를 따로 구축해 두고 해당 주소로 접속하게 하는 것으로 추정된다.
공격자는 WogRAT 제작 시 Tiny SHell의 C&C 통신 방식과 리버스 쉘 기능을 그대로 사용하였다. 즉 HMAC SHA1 알고리즘을 이용해 생성한 AES-128 키로 C&C 서버와의 통신을 암호화한다는 점이나 무결성 검증에 사용되는 0x10 바이트의 값을 그대로 사용한다는 점이 동일하다.

Figure 7. Tiny SHell과 동일한 루틴
대신 비밀번호 문자열은 악성코드마다 다른 문자열이 사용되며 각각 “03c7c0ace395d80182db07ae2c30f034”, “194112c60cb936ed1c195b98142ff49d”이 사용되었다.
4. 결론
최근 윈도우뿐만 아니라 리눅스 시스템을 대상으로 유포 중인 WogRAT이 확인되었다. 구체적인 공격 벡터는 확인되지 않지만 수집된 파일들의 이름을 통해 공격자가 정상 유틸리티를 위장하여 다운로드를 유도하는 방식을 사용하고 있는 것으로 추정된다.
사용자는 의심스러운 웹 사이트나 자료 공유 사이트에서 실행 파일을 설치하는 것을 각별히 주의해야 하며, 유틸리티 및 게임 등의 프로그램은 반드시 공식 홈페이지에서 다운로드하는 것을 권장한다. 또한 V3를 최신 버전으로 업데이트하여 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.
파일 진단
– Downloader/Win.WogRAT.R636364 (2024.02.25.00)
– Backdoor/Win.WogRAT.C5593109 (2024.02.25.00)
– Backdoor/Win.WogRAT.C5593110 (2024.02.25.00)
– Backdoor/Win.WogRAT.R636365 (2024.02.25.00)
– Trojan/Win.Generic.C5387450 (2023.02.24.03)
– Backdoor/Linux.Rekoobe.67840 (2023.07.13.00)
– Backdoor/Linux.TinySHell.63712 (2024.02.26.03)
AMSI 진단
– Backdoor/Win.WogRAT.C5593109 (2024.02.25.00)