Jun 101. 서버의 crontab이 삭제 돼있는것을 확인
2. 당시 등록해줬으나 또다시 삭제됨, 1분간격으로 삭제되는것을 확인
3.message 로그에는
Jun 10 06:53:54 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:54:55 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:55:55 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:56:56 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:57:56 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:58:57 cobuy-0952 init: Re-executing /sbin/init
Jun 10 06:59:58 cobuy-0952 init: Re-executing /sbin/init
라는 메세지가 1분간격으로 쌓여있음, tail -f 로 확인해보면 위 메세지가 로깅될때마다 crontab에 삭제됨
##참고로 Re-executing /sbin/init 메세지는 init 6 해서 보면 서버 재부티될 때 올라오는 메세지
4.strace -s 65535 -f -t -o log.txt -p 1 으로 init(pid : 1) 프로세스를 확인해보면 1분간격으로 init restart가 확인됨
strace 내용
1 17:21:46 --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=4316, si_uid=0} ---
1 17:21:46 write(4, "\0", 1) = 1
1 17:21:46 rt_sigreturn() = -1 EINTR (Interrupted system call)
1 17:21:46 read(3, "\0", 1) = 1
1 17:21:46 read(3, 0x7fff9a1c07df, 1) = -1 EAGAIN (Resource temporarily unavailable) ###7fff9a1c07df 이메모리주소를 찾을려고 했는데 못찾았다.
1 17:21:46 open("/etc/localtime", O_RDONLY) = 9 ####여기서부터
1 17:21:46 fstat(9, {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
1 17:21:46 fstat(9, {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
1 17:21:46 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f95b8be1000
1 17:21:46 read(9, "TZif2\0\0\중략\0\0\0\0\0\0\0\0\0\0\0\0\nKST-9\n", 4096) = 517
1 17:21:46 lseek(9, -304, SEEK_CUR) = 213
1 17:21:46 read(9, "TZif2\0\중략\0\0\0\0\0\0\nKST-9\n", 4096) = 304
1 17:21:46 close(9) = 0 #####여기까지는 localtime 불러오는거니까 무시해도 될듯
1 17:21:46 munmap(0x7f95b8be1000, 4096) = 0
1 17:21:46 socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 9
1 17:21:46 connect(9, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
1 17:21:46 sendto(9, "<28>May 31 17:21:46 init: Re-executing /sbin/init", 49, MSG_NOSIGNAL, NULL, 0) = 49 ###메세지 로그에 로깅되는 부분..
1 17:21:46 rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
1 17:21:46 execve("/sbin/init", ["/sbin/init", "--restart"], [/* 3 vars */]) = 0 여기서 아마 crontab이 초기화되는것같다...
1 17:21:46 brk(0) = 0x560480f31000
등등... 약 360줄
strace를 토대로 어느 프로세스(혹은 데몬)때문에 crontab이 초기화 되는지 찾아보려했는데 결국은 실패
ㄴ/proc/*/map/ 에는 뒤에 몇자리 때봐도 안나
애초에 어느 프로세스로 인해 실행됐다 라는 기록이 안된다면 찾는건 거의 불가능하다고 판단
처음에는 시스템이 올라오면서 init 데몬이 뭔가 문제가 생겼나.. 싶어서 os 재부팅도 해보고 메모리에 Resource temporarily unavailable 에러가 나오니 메모리 불량인가... 싶어 메모리 교체도 해봤으나 하루정도 괜찮고 동일증상 발생
crontab도 안돌고 있는데 1분간격으로 위와같이 init 프로세스에서 뭔가 작동하는걸로보아 현재 실행돼있는 프로세스중 하나에 문제가 있다고 판단
수상한 프로세스를 찾아보니 서버가 해킹당해있었음
/tmp/javax 에 해킹 프로그램 실행돼있었음 많이 보던 해킹프로그램이였는데 이걸로 인해 crontab이 삭제(init 프로세스에 뭔가 작동)되는건 첨보는 경우였습니다.
'job > linux' 카테고리의 다른 글
nginx + php-fpm 취약점 (0) | 2019.10.29 |
---|---|
sysdig 로 해킹당한 서버 분석해보기 (0) | 2019.06.20 |
centos 5 yum error (0) | 2019.04.29 |
nodejs npm , socket.io 설치 (0) | 2019.04.10 |
ionice (1) | 2019.04.09 |