logwatch에 오신 특별한 메시지.
Kernel
Apr 11 08:09:42 xxx kernel: perl invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Apr 11 08:09:51 xxx kernel: Out of memory: Killed process 14829, UID 2, (perl).
커널 warning 이 나타나니 동공이 확대되기 시작.
멀쩡한 서버가 웬 out of memory.
이런 저런 로그들을 확인하다가 apache log에서 이상한 또 하나의 로그 발견.
[Mon Apr 08 06:10:42 2013] [error] [client 114.251.150.133] mod_security: Access denied with code 403. Error normalising REQUEST_URI: Invalid character detected [0] [severity "EMERGENCY"] [hostname "xxx.xxx.xxx.xxx"] [uri "/vtigercrm/graph
.php?current_language=../../../../../../../..//etc/elastix.conf%00&module=Accounts&action"]
--2013-04-10 04:53:48-- ftp://test:*password*@210.198.4.118/apache_32.png
=> `apache_32.png'
Connecting to 210.198.4.118:21... connected.
Logging in as test ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> SIZE apache_32.png ... 16114
==> PASV ... done. ==> RETR apache_32.png ... done.
Length: 16114 (16K)
0K .......... ..... 100% 142K=0.1s
2013-04-10 04:54:08 (142 KB/s) - `apache_32.png' saved [16114]
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
12 16114 12 2048 0 0 167 0 0:01:36 0:00:12 0:01:24 167
100 16114 100 16114 0 0 1296 0 0:00:12 0:00:12 --:--:-- 84734
sh: lwp-download: command not found
mv: cannot stat `apache_32.png': No such file or directory
sh: fetch: command not found
mv: cannot stat `apache_32.png': No such file or directory
아이 참... 이런거 하지 말라니깐... 이게 머지 대체...
test 계정으로 로그인을 해서 apache_32.png 파일을 가져오다? 어케 ftp로 여다가 파일을 옮김?
근데 no such file or directory 는 또 머야.
일단 검색.
# find / -name apache_32.png
/tmp/apache_32.png
오마이갓. 세션들어가는 자리에 저것이...
분명 네놈은 png가 아니겠지.
# ls -al /tmp
-rw-r--r-- 1 daemon daemon 0 Apr 10 17:08 muie
-rw-r--r-- 1 daemon daemon 26027 Apr 11 00:08 pos
-rw-r--r-- 1 daemon daemon 16114 Apr 11 04:14 p.txt
-rw-r--r-- 1 daemon daemon 26027 Apr 11 04:19 vuln
-rw-r--r-- 1 daemon daemon 16114 Apr 11 04:29 apache_32.png
-rw-r--r-- 1 daemon daemon 758 Apr 11 05:15 a
역시 한놈이 아니구만.
근데 왜 서버가 잘 돌아가고 있는 것처럼 보이지.
떨리는 마음으로 apache_32.png 파일을 열어 봅니다.
#!/usr/bin/perl
...
응 perl? 혹시 이놈 때문에 out of memory 가 난건가.
irc_server, port_scan, http_query 이런것들이 보이는데... 근데 왜 서버가 잘 돌아가는 것처럼 보이냐고.
도대체 이건 무슨 공격이지? 안배운 공격인데... DDoS야? 좀비된거야?
a 파일에는 apache_32.png 를 curl로 가져온 흔적이 남아있고.
pos, vuln 파일에는 디렉토리 스캔한 흔적이 남아있고...
뭔짓을 한지는 모르겠지만 내가 할 수 있는건,
권한변경... perl, curl, wget, rm, mv, cp 권한 변경.
# chmod 100 /usr/bin/perl /usr/bin/curl /usr/bin/wget /bin/rm /bin/mv /bin/cp
이걸로 되겠냐... 이게 최상이냐...
공용 서버라 책임질 필요는 없지만...
무서워서 못살겠다 ㅜㅜ
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.