👨🏻‍💻 개발자 제이의 이야기

😱 내 서버가 털렸다고?! (개인서버 해킹당한 썰)

피트웨어 제이 (FitwareJay) 2021. 9. 22. 21:00

안녕하세요! 오랜만에 돌아온 Jay입니다!

오늘은 정말 '빡'치고 화나는 내용이지만, 개인서버 운영하다가 한번쯤은 겪어볼(?) 재밌는(?) 내용을 가지고 왔습니다!

 

때는 바야흐로...9월 9일 ~ 10일 뭐 이때였던 것 같습니다.

 

모니터링 채널에 올라온 watab bot 경고 알림

평화롭던 새벽...1시쯤 ... 슬랙에 모니터링 경고 알람이 울렸습니다. 왠만하면 평소에 울릴일이 없는 알림인데 (랜선을 뽑거나 하지 않는 이상) 이상하게 이날 계속 서버 리소스가 과부화 되고 최대치를 사용하고 있었습니다.

 

서버 리소스 사용량 체크 (htop)

htop 으로 확인해 보니까...누가봐도 이상한 프로세스들(httpd 프로세스의 옵션이 아주 괴랄한...)이 엄청 실행되어 있고, 프로세스랑 메모리를 최대치로 사용하고 있었습니다. 살짝(사실 매우) 당황한 저는 이게 뭘까...라는 생각을 잠시 하다가 cron이 cpu, mem 사용율을 엄청 잡아먹고 있는걸 보고 해당 프로세스를 kill 했습니다. 

 

kill 하자마자 안정된 서버

혹시나 해서 내가 이상한걸 돌리고 있었나 확인해봤지만, 저런 동작을 할 크론잡은 등록해 놓지 않았고, 위 프로세스들을 모두 일단 kill 했습니다. 혹시몰라 chun 계정의 비밀번호를 변경하고 넘어갔는데, 다음날 새벽이 되니까 또 자동으로 위 이미지의 프로세스들이 실행되더라고요!

 

- 계정 비밀번호 변경 

passwd [아이디]

 

비밀번호가 변경됐는데도 그런다? ... 음 일단 해킹된건 확실하고 내부에 chun 계정으로 어떤 쉘스크립트를 저장해 놓은 것 같았습니다! 일단 chun계정은 뭔가 테스트하기 위해 임시로 만든 계정이었는데 비밀번호가 ... chun123....😱  털릴만 했습니다.ㅠㅠ 개인서버라 뭐 괜찮겠지 했는데 너무 안일 했던 것 같아요.

 

소름끼치는 프로세스

결정적으로 위 내용을 보고 이건 정말 큰 문제다라고 생각했습니다. 새벽에 또 알림이 울리길래 보니까 저런 쉘스크립트가 실행되고 있더라고요. 정확히 dota3 가 뭘 하는 프로그램인지는 모르겠지만, 구글링 해보니까 트로이목마, mallware 공격 이라고 나오고 (여기) 제 서버를 비트코인 채굴같은 곳에 이용하기 위한 공격? 이었다고 추측을 했습니다.

 

그리고 nginx 로그 등을 살펴보니까...

 

이건 뭐 예상은 했지만 root 탈취하려는...

위 이미지 처럼 계속 root 계정에 대한 공격이 있었고

 

chun 계정 공격시도

chun 이라는 계정은 이름이 좀 흔하기도 하고, 제가 비밀번호를 쉽게 해놔서 위 처럼 공격자가 계속 계정 탈취시도 하다고 성공한 듯 보였습니다. 친한 동료 개발자랑 이야기하다 들었는데 brute-force 라는 해킹 방법이 있다고 하더라고요. 찾아보니까 무차별 대입 공격 이라고 하네요... 진짜 말그대로 계속 대입해가면서 해킹하는 기법인데... 딱 이걸 당한것 같습니다. ㅠㅠ (여러분 비밀번호 절대 쉽게 하지마세요!)


아무튼 최종적으로 조치는 이렇게 했습니다.

 

- 계정삭제

sudo userdel -rf [아이디]

 

계정자체가 이미 해킹이 되었기 때문에 해당 계정으로 생성된 파일들을 모두 제거할 필요가 있었습니다. 정확히 어떤 프로그램을 해커가 심어놨는지 확인하면 더 좋았을텐데... 잘 못찾아서 그냥 바로 계정과 해당 계정 디렉토리를 모두 삭제 했습니다.

다행히 계정삭제하니까 더이상 이상한 쉘스크립트는 돌아가지 않더라고요!
그리고 정말 다행히 이계정에는 root 권한이 없었기 때문에... ㅠㅠ 귀찮아서 안했는데 정말 다행입니다!

- Fail2Ban 설치
이름 그대로 접속 fail 인 경우 ban 하는 프로그램이다. 무차별 대입공격 시도로 ip 당 허용 가능한 fail 수를 제한한 후에 limit을 넘기면 해당 ip를 차단 시킨다.

몇몇 ip를 찾아보니까 거의다 중국 아니면 미국쪽 ip.... 아오 xx놈들!!! 
이렇게 저의 험난했던 해킹썰이 끝났습니다 ㅋㅋㅋㅋ 진짜 이때는 엄청 당황해서... 후... 서버를 그냥 날릴뻔했는데, 다행히 계정삭제 정도로 끝나서 정말 안심했습니다! 서버야 뭐 재설치 하면 되긴 하는데 귀찮기도 하고... 역시 클라우드가 짱인가...

아무튼 여러분은 계정, 계정비번 진짜 어렵게 잘 설정하시고 저같은 불상사가 없기를 바랍니다 ㅠㅠ 
그럼 오늘도 즐거운 하루 되세요!!:D

참고
https://eungbean.github.io/2019/11/04/ssh-bruteforce-hacking/

 

서버 침해사고 사례: root 계정 SSH 무작위대입공격과 채굴 스크립트

2019년 11월 3일 (일) 부터 딥러닝 서버의 모든 GPU가 100% 가동되는 현상 이 보고되었습니다. 연구실의 동료로부터 유선상으로 전화를 받았는데, 처음에는 train script가 백그라운드에서 돌아가고 있

eungbean.github.io

https://kyumdoctor.tistory.com/79

 

linux 현재 접속해 있는 user 사용자 확인 및 kill 하기

linux 현재 접속해 있는 user 사용자 확인 및 kill 하기 보통 서버는 혼자 사용하는 경우보다는 다수의 사용자들이 접속을 해서 이용을 하고 관리자가 그 사용자들을 관리하게 된다. 근데 의도치 않

kyumdoctor.tistory.com

https://overcode.tistory.com/entry/SSH-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%8B%9C%EB%8F%84-%ED%95%B4%ED%82%B9%EC%8B%9C%EB%8F%84-%EC%A0%91%EC%86%8D%EC%9D%B4%EB%A0%A5-%ED%99%95%EC%9D%B8

 

SSH 로그인 시도, 해킹시도, 접속이력 확인

간만에 리눅스에 접속해보니 root 로 로그인을 2400번 이상 접속시도했다는 문구가 뜹니다. 이번에는 누가 무슨 아이디로 언제 접속 시도를 했는지 자세하게 볼 수 있는 명령어를 알려드립니다. (C

overcode.tistory.com