보안불감증에 걸렸던 것 같습니다.
네트웍이나 보안쪽으로는 아는 것이 없어서 너무 허술하게 서버관리를 해왔던 것 같네요.
제 서버를 가지고 놀아주신 해커여러분께 감사의 말씀을 _ _;;;

간단히 상황 정리를 해보면..


1. 발견 일시
    - 2007년 6월 25일

2. 발견 상황
     - 방학한지라 방치해 두다가 간만에 접속해 봤는데, 불특정 다수의 사용자로부터 DOS공격을 포착! ( 식은땀 좀 흘렸다 -_-... )

3. 조치 내용
    - 방화벽 설치
    - 불필요 프로세스 종료
    - 시스템 리부팅 ( 서비스 중이 아니길 천만 다행이지.. -_-; )

4. 경과
    - 우선 시스템 상태는 정상으로 돌려놨다
    - 또 다시 공격이 들어올 가능성을 배제할 수 없으므로, 방법을 강구해봐야 할 것 같다.
    - 어떤 분(놈?)인지 추적 들어간다 +_+

5. 추적 결과
    - /var/log/messeges랑 /var/log/secure 파일 검사 결과 22번 포트 (ssh)로의 Dos공격이 확실
    - 로그에 218.234.17.160외 다수의 IP에서 22번포트로의 공격 흔적이 있었음
    - IP를 가지고 http://whois.nic.or.kr/ 에서 IP 추적
    - 다음은 추적 결과

사용자 삽입 이미지


    - 그외에.. 호남대학교, 온세통신IDC, 해외에서도 시도가 있었다. -_-훌륭한(쳐죽일) 분(것)들..

6. 그래서 어쩌라고?
    - 우선 외부 포트를 모두 막아뒀다. 현재는 게이트를 통해서 접근하는 중..

7. 이상 끝



여기까지가 1부다 ㅡ   _ㅡ; 나의는 단순하게 문제를 분석하는 수준이었지만, 인내심은 있었다.


기가찼다 -_-;; 계속 모니터링 중 이었는데, 쓸데없는 sendmail 프로세스가 보이길래 죽였다. 그런데 이 놈이 계속 되살아나는 것이 아닌가 -_-.. 그것도 smtp는 25번 포트인데 8080포트로 계속 살아나네... 순간 문제의 심각성을 인식했다. 내가 그토록 싫어하는 스펨메일의 중계자 역할을 하지는 않았을까 하는 생각이 머리를 스쳤다. 우라질..

-----------------------------------------------------------------------------------------------

[root@localhost dev]# netstat -anutp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      4039/mysqld        
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2864/portmap       
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      4489/sendmail: acce
tcp        0      0 0.0.0.0:946                 0.0.0.0:*                   LISTEN      2884/rpc.statd     
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3037/cupsd         
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      4368/1             
tcp        0      0 218.234.17.159:32770        64.161.255.201:6665         ESTABLISHED 4489/sendmail: acce
tcp        0      0 :::22                       :::*                        LISTEN      3074/sshd          
tcp        0      0 ::1:6010                    :::*                        LISTEN      4368/1             
tcp        0    156 ::ffff:218.234.17.159:22    ::ffff:61.100.4.70:1200     ESTABLISHED 4368/1             
udp        0      0 0.0.0.0:940                 0.0.0.0:*                               2884/rpc.statd     
udp        0      0 0.0.0.0:943                 0.0.0.0:*                               2884/rpc.statd     
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               2864/portmap       
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               3037/cupsd         
[root@localhost dev]# kill -9 4489 4489
------------------------------------------------------------------------------------------------------------

뭔가 이상해서 프로세스 추적을 시도했다.

[root@localhost mail]# pstree 4489
psybnc     <== !!!!!!!!

뭘까 이건 -_-;; 처음보는 프로세스 였어. google 신께 여쭈어 봤다. 정확한 개념을 잡지는 못했지만, 이놈은 (사용하기에 따라 다르겠지만) 자신의 ip를 숨기는 백도어인 듯하드라 -   _-;; 미친.. 지금까지 생사람 잡은 기분.....

psybnc를 찾아서 없앨려고 이래저래 찾아봤는데 검색 명령어로 도저희 안나오는 것이다. 뭐지 이건? 그 순간 lsof를 떠올렸다. 사실 이런 명령어가 있다는 것만 알았지, 사용은 처음해본다. 알지도 못하는 옵션을 찾아가면서 추적을 해봤떠니 /var/tmp/mds/.update 여기에 숨어지네는 것이 아닌가... 아.. 치사한 색히들..

디렉토리로 들어가서 보니 모르는 파일들만 있더라... 난감한 파일명 "fuck" 파일과 함께..

[root@localhost .update]# ll
합계 308
-rw-------  1 public public   1131  6월 25 15:26 chanary
-rw-rw-r--  1 public public     21  6월 25 09:39 chanary.dir
-rw-------  1 public public   1133  6월 25 09:58 chanary.old
-rwxr-xr-x  1 public public    312  3월 13  2004 config
-rwx--x--x  1 public public    929  5월  7  2002 config.h
-rw-rw-r--  1 public public     57  6월 25 09:39 cron.d
-rwxr-xr-x  1 public public    345  3월 13  2004 fuck
drwxr-xr-x  2 public public   4096 11월  9  2002 help
drwxr-xr-x  2 public public   4096 11월  9  2002 lang
drwxr-xr-x  2 public public   4096  6월 25 15:41 log
drwxr-xr-x  2 public public   4096  6월 25 13:36 motd
-rwxr-xr-x  1 public public  14306 11월 13  2003 proc
-rwxr-xr-x  1 public public 202544 11월  9  2002 psybnc
-rwxr-xr-x  1 public public     77 11월  9  2002 psybnc.conf
-rw-------  1 public public      5  6월 25 15:26 psybnc.pid
-rwxr-xr-x  1 public public     66  3월 13  2004 run
drwxr-xr-x  3 public public   4096  8월 10  2004 scripts
-rwxr-xr-x  1 public public  21516  9월 26  2002 xh
-rwxrw-r--  1 public public    200  6월 25 09:39 y2kupdate

누구인지는 모르겠지만, 누군가가 public 계정으로 들어온게 분명한 듯 했다.

public 계정은 디미디측에서 발급해준 계정인데, 허술하게 관리를 한 듯 하다. proc이라는 파일이 문제인데, 이 파일에서 channary 파일을 참조하더라. 이 파일에는 psybnc 데몬을 띄우는데 필요한 설정파일이 들어가 있었다. 제일위에 8080포트도 당당히 적혀 있고. 요놈을 9999로 바꿔주니까 9999번으로 sendmail이 떳다. 확실하구나!!

프로세스 킬을 해도 다시 살아나는 건 파일 목록에 cron.d라는 파일이 있는데, 요게 public계정 crontab에 등록이 되어있었다.

* * * * * /var/tmp/mds/.update/y2kupdate >/dev/null 2>&1     이렇게 -_-..

프로세스 죽으면 매 1분마다 체크해서 다시 살리는.. -  _-

제대루 당했다.. 프로세스 죽이고 디렉토리 싹 날려버렸다.

아무튼 이런 아스트랄한 험 처음이다 Thanks for Jabnomdeul.


Creative Commons License
Creative Commons License
Posted by 지오아빠^^