우분투 리눅스 침투 사후 로그보기

2017. 11. 4. 23:30보안 & 해킹/Linux

이번 포스팅은 침투당한 후 어떻게 의심스러운 로그를 발견하는가에 초점을 맞추어 진행해보겠다.


웹서버 환경은 우분투 14.04.1 에 APM으로 구축한 쇼핑몰이며 VMWare로 직접 올렸다.








문득 리눅스 웹서버가 열일(?)하는것 같아 top를 해보았다.


그런데 아래와같이 CPU를 최대자원으로 사용하고 있었다.

 




저번에 리눅스 비트코인 분석할 때도 마찬가지 증세를 보이며 느려진 적이 있었기에 악성코드 감염을 의심하였다.






먼저

cat /var/log/syslog


syslog의 끝자락에서 의심스러운 로그를 발견하였다.





역시 crontab 에서 백그라운드로 작업하는 명령어가 등록되어있었다.



root 계정으로 crontab을 확인 할 때에는 


crontab -e -u [유저]


형식으로 확인할 수 있다.




역시나 백그라운드로 매분 실행하도록 crontab에 등록되어있다.






/home/test 경로에 들어가보았다.





pty, udevd, vyattad 파일이 있는것을 볼 수 있었다.



pty파일의 생성시각과 나머지 udevd, vyattad 파일의 생성시각이 다른걸로 보아 다른 공격자가 로그인 했다고 가정할 수 있다.



test계정으로 파일을 받은 것이고 공격자는 내가 임시로 만들어놓은 test // test 계정으로 무작위 대입 공격을 통해 들어온 것을 유추했다.


.bash_history 파일은 사용자의 명령어 입력 기록을 고스란히 저장해둔다. 


cat .bash_history를 해보았지만 해커가 등록 해제를 하였기 때문에 기록이 안되었음을 볼 수 있었다.




/var/log 경로로 다시 가서 침투자의 기록을 살펴보았다.


/var/log/lastlog 경로에 위치한 data파일은 cat으로 읽을 수 없는 데이터 파일이다.


따라서 lastlog 명령어, 또는 lastlog -u test 명령어로 실행해주자.



test 계정에 89.38.145.76번이 찍혀나온다.


여담으로 su 명령어로 test계정으로 변경하여 들어가는 경우에는 이런 로그를 남기지 않는다.




/var/log/auth.log 를 살펴보아야 하는데 너무 로그가 길기 때문에 test계정으로 접속한 로그를 grep으로 필터링해보자.


입력한 명령어는 다음과 같다.


cat auth.log | grep Accepted\ password\ for\ test\ from




공백에 \ (역슬래시)로 명시해 주는 것을 잊지 말자.



이 명령어를 통해 나에게 접속하는 봇들의 ip로그를 검색해냈다.


이것은 초기 침투 시점을 알기에 좋은 요소다.


udevd 와 vyattad는 179.86.58.137에서 접속한 해커가 들어와서 설치한 시점이라 보면 되겠다.


저번의 경우와 다르게 침투 후 작업이 빠르게 이뤄진 것으로 보아 다운로드까지 봇이 작동하는 스크립트에 들어가있는 듯 하다.



그럼 pty 파일의 생성 시각은 9월 28일 이었는데? 이상하다.


사실 이 웹서버를 만들고 나서 9월 28일에는 부팅한 적이 없다.



3월 6일 이후에 10월 2일까지의 기록이 없으므로 pty파일 생성 시각은 touch 등으로 변경된 것인듯 하다. 혹은 파일을 가져온 후 압축을 푸는 행위 등은 파일 생성 시각이 해커 PC에서 생성된 시각이 그대로 따라 올 수 있다. 따라서 생성된 시각에 너무 연연해하지 않도록 한다.




netstat -antp를 하여 연결된 네트워크를 보니 수상쩍은곳이 나온다.






악성행위로 의심가는 파일 3가지를 virustotal.com에 돌려보았다.






pty 파일은 elf32 실행파일이다.



udevd 파일은 32비트 ARM, ELF 파일이다.




이도 역시 32비트 MIPS 파일이다.


pty파일을 제외하고는 실행되지 않던 이유가 이것이었다.


파일에 대한 분석이 가능하다면 진행해주길 바람.






첨부파일


암호 : whackur


mals.zip