보안불감증에 걸렸던 것 같습니다.
네트웍이나 보안쪽으로는 아는 것이 없어서 너무 허술하게 서버관리를 해왔던 것 같네요.
제 서버를 가지고 놀아주신 해커여러분께 감사의 말씀을 _ _;;;
간단히 상황 정리를 해보면..
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.
Psybnc소개_HK.pdf


