perlルートキットを削除する痛み


8

そこで、オフィスでジオサービスウェブサーバーをホストしています。

誰かがおそらくこのボックスに侵入し(おそらくftpまたはsshを介して)、何らかの種類のirc管理のルートキットを置いたようです。

今私はすべてを整理しようとしています、ircを介して接続しようとするプロセスpidを見つけましたが、呼び出しプロセスが誰であるのかわかりません(すでにps、pstree、lsofで調べられました)プロセスはperlですスクリプトはwwwユーザーが所有していますが、ps aux | grepは最後の列に偽のファイルパスを表示します。

そのpidを追跡して呼び出し元をキャッチする別の方法はありますか?

言及するのを忘れました:カーネルは2.6.23です。これはrootになるために悪用可能ですが、このマシンにはあまり触れられないため、カーネルをアップグレードできません。

編集:lsofは役立つかもしれません:

lsof -p 9481
コマンドPIDユーザーFDタイプデバイスサイズノード名ss
perl 9481 www cwd DIR 8,2 608 2 / ss
perl 9481 www rtd DIR 8,2 608 2 / ss
perl 9481 www txt REG 8,2 1168928 38385 / usr / bin / perl5.8.8ss
perl 9481 www mem REG 8,2 135348 23286 /lib64/ld-2.5.soss
perl 9481 www mem REG 8,2 103711 23295 /lib64/libnsl-2.5.soss
perl 9481 www mem REG 8,2 19112 23292 /lib64/libdl-2.5.soss
perl 9481 www mem REG 8,2 586243 23293 /lib64/libm-2.5.soss
perl 9481 www mem REG 8,2 27041 23291 /lib64/libcrypt-2.5.soss
perl 9481 www mem REG 8,2 14262 23307 /lib64/libutil-2.5.soss
perl 9481 www mem REG 8,2 128642 23303 /lib64/libpthread-2.5.soss
perl 9481 www mem REG 8,2 1602809 23289 / lib64 / libc -2.5.soss
perl 9481 www mem REG 8,2 19256 38662 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / IO / IO.soss
perl 9481 www mem REG 8,2 21328 38877 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / Socket / Socket.soss
perl 9481 www mem REG 8,2 52512 23298 /lib64/libnss_files-2.5.soss
perl 9481 www 0r FIFO 0,5 1068892 pipes
perl 9481 www 1w FIFO 0,5 1071920 pipes
perl 9481 www 2w FIFO 0,5 1068894 pipes
perl 9481 www 3u IPv4 130646198 TCP 192.168.90.7:60321->www.****.net:ircd(SYN_SENT)


2
カーネルをアップグレードしない限り、ルートキットを削除するとすぐにハッカーがハックを繰り返すのを止めるにはどうすればよいでしょうか。プロセスを隠すトロイの木馬カーネルモジュールがあるかもしれません。
pjc50 2010年

私はちょうど私のVPSオフ掃除のIRCのDDoSボットに非常に似て、このルックス:serverfault.com/questions/639699/...
ヘイデンThring

回答:


37

アドバイスがあれば、片付けの時間を無駄にするのをやめることです。後で法医学用のOSのイメージを作成し、サーバーを再インストールします。

申し訳ありませんが、ルートキットから身を守るための唯一の安全な方法です。

後で、特定の理由で、それが発生した理由を画像で確認できます。

私の個人的な経験から、私はこれを行い、後に、2008年にopensslの欠陥を含むSSHキーを持つ内部ユーザーを見つけました。

私はそれが事を片付けることを願っています。

注:
再インストールする前にサーバーのイメージ/バックアップを作成する場合は、その方法十分注意してください。@dfrankeが言ったように、信頼できるメディアから起動してバックアップします。

優れたルートキットはSSHなどの信頼されたセッションを介して拡散できることが知られているため、ルート化されたサーバーから他のマシンに接続しないでください。


11
私はこのアドバイスを強く支持します。ルートキットは1つ見つかりましたが、攻撃者が他に何を改ざんしたのかまったくわかりません。根付いたら、常に根ざします。信頼できるメディアから起動し、ドライブをゼロにします。Fdisk、フォーマット、再インストール、doo dah、doo dah。
dfranke

ええと...良いルートキットはカーネルの下で実行されます..労力をかけずにそれらを削除する可能性はありません
アレンスター

4
+1すべての実動システム(実際には任意のシステム)では、クリーンアップする理由はありません。火でそれを殺して、再建してください。
フェーバス

1
+1して再インストールします。ルートキットはおそらくバイナリまたはカーネルをめちゃくちゃにしていて、見ているすべてのもの(偽のパスなど)はおそらくルートキットから煙を出して自分自身を隠しています。
コアダンプ2010年

1
義務。引用:「軌道からサイト全体を離陸して核を破壊すると言います。これが確実にする唯一の方法です。」
Charles Stewart、

1

プロセスがargv [0]を変更する場合、コマンドラインを変更できます。試すls -l /proc/[pid]/exe

から man 5 proc

このファイルは、実行されたコマンドの実際のパス名を含むシンボリックリンクです。このシンボリックリンクは通常どおり逆参照できます。それを開こうとすると、実行可能ファイルが開きます。/ proc / [number] / exeと入力して、プロセス[number]で実行されているのと同じ実行可能ファイルの別のコピーを実行することもできます。マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、このシンボリックリンクの内容は利用できません。

ps auxwf | less どのプロセスがこのプロセスを起動したかを示すことができるプロセスの「フォレストビュー」を提供します(ルートキットがそれを非表示にしている場合、またはアプリの親が終了し、親がinitに親化されている場合を除く)。

これは、ほとんどが学術的で、おそらく単なる時間浪費ですが、strings -n 10 /proc/[pid]/mem過去の巻物を見るのは楽しいかもしれません。またecho 0x7 > /proc/[pid]/coredump_filter、gdb gcoreを使用して、可能な限りすべてのコアダンプを強制的に実行することもできますが、プロセスが停止して、それ以上の分析がブロックされる可能性があります。

しかし、間違いなくアレンスターのアドバイスを参考にしてください。データのみをバックアップし、すべての実行可能ファイルをバックアップから復元して、最初からやり直します。おそらくバックアップからもウェブサイトを復元する必要があります。すべてのhtmlまたはphpファイルに悪意のあるJavaScriptが追加される可能性があります。法的措置を検討している場合は、マシンを脇に置いて、ネットから外し、法医学の専門家がその仕事を終えるまで、何をしているかを停止する必要があります。


本当に素晴らしい答えです。
paul.ago 2010年

残念ながらls -l / proc / [pid] / exeはperl5.8.8のbinパスを返し、ps / pstreeはプロセスの親がinitであると言っていますが、これは非常によく見えません。私は間違いなく新規インストールからやり直しますが、そこで実行されているアプリケーションの元の開発者はしばらく国外にいるため、一時的な解決策を探していました。
ところで

0

「cat / proc / [プロセスID] / cmdline」を試してください。それが本当のルートキットである場合は、カーネルを変更して自分自身をより隠すことができます。


偽のps aux "/ usr / sbin / apache / logs"と同じです。/ usr / sbin / apacheディレクトリは存在しません
paul.ago 2010

0

再インストールするべきだと思います。パス内の文字をエスケープしてみましたか?たぶん、これらのスラッシュの1つは、実際にはファイル名の一部であり、ディレクトリではありません。少なくとも修正されるまで、iptablesを使用して、そのホストまたはIRC一般への送信トラフィックをブロックする必要があります。netstatも確認してください。


いいえ、パスは「本物」のようです。残念ながら、iptablesはインストールされているようですが、カーネルモジュールが見つからないため、カーネルを再コンパイルする必要があります。アプリのソースコードを持っている人に連絡するまで数日間、その方法で問題を修正し、サーバーを再インストールできるようにする
でしょう

0

今までに再インストールしたと思います。プロセスを追跡し、法医学を実行しようとするあなたの正当な無駄な時間は、法的に何かが発展する可能性が非常に少なく、ハッカーを見つける可能性はとにかく無駄です。面白そうなルートキットを調べて逆にすることに興味がない限り:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.