私は(完全に更新された)Wordpressを〜okeanosサービスの仮想マシンの学生チーム向けに2年間維持しています。もちろん-私はそうではありません(このサービスには私の学歴が関連付けられています。)彼らがマシンを一時停止し、メールシステムを燃やした後、私は何が起こったのか調べようとしました。
まず、ps -ej
を実行して、何が実行されているかをチェックアウトします。
root@snf-25181:~# ps -ej
1545 1545 1545 ? 00:00:00 console-kit-dae
1618 1057 1057 ? 00:00:00 gdm-session-wor
1632 1632 1632 ? 00:01:40 rghuoywvrf
1767 1767 1767 ? 00:00:00 sshd
1769 1769 1769 ? 00:00:00 systemd
1770 1769 1769 ? 00:00:00 (sd-pam)
1775 1767 1767 ? 00:00:00 sshd
1776 1776 1776 pts/0 00:00:00 bash
1849 1849 1776 pts/0 00:00:00 su
1870 1870 1776 pts/0 00:00:00 bash
2246 0 0 ? 00:00:00 kworker/0:0
2797 839 839 ? 00:00:00 Apache2
3158 3158 3158 ? 00:00:00 bvxktwwnsb
3162 3162 3162 ? 00:00:00 bvxktwwnsb
3163 3163 3163 ? 00:00:00 bvxktwwnsb
3164 3164 3164 ? 00:00:00 bvxktwwnsb
3165 3165 1776 pts/0 00:00:00 ps
Bvxktwwnsbとrguoywvrfに注意してください
次に、サービスを取得するためにps aux
を実行しました(これもテールです)。
Debian-+ 1629 0.0 0.0 178300 4444 ? Sl 16:53 0:00 /usr/lib/dconf/dconf-service
root 1667 0.0 0.0 30744 4436 ? Ss 16:53 0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
root 1670 0.0 0.1 299588 9884 ? Ssl 16:53 0:00 /usr/lib/packagekit/packagekitd
root 1674 0.0 0.1 1055004 6168 ? Ssl 16:53 0:00 /usr/sbin/console-kit-daemon --no-daemon
www-data 1923 0.0 0.1 240964 8112 ? S 16:53 0:00 /usr/sbin/Apache2 -k start
pankgeo+ 5656 0.0 0.0 27416 3424 ? Ss 17:03 0:00 /lib/systemd/systemd --user
pankgeo+ 5657 0.0 0.0 143108 2408 ? S 17:03 0:00 (sd-pam)
root 5893 0.0 0.1 102420 6428 ? Ss 17:04 0:00 sshd: pankgeorg [priv]
pankgeo+ 5904 0.1 0.0 102560 4128 ? S 17:04 0:02 sshd: pankgeorg@pts/0
pankgeo+ 5905 0.2 0.1 16816 6388 pts/0 Ss+ 17:04 0:04 -bash
root 7443 0.0 0.1 102420 6496 ? Ss 17:07 0:00 sshd: pankgeorg [priv]
pankgeo+ 7448 0.0 0.0 102552 4160 ? S 17:07 0:00 sshd: pankgeorg@pts/1
pankgeo+ 7449 0.0 0.1 16468 6228 pts/1 Ss+ 17:07 0:01 -bash
root 17351 0.0 0.0 0 0 ? S 17:15 0:00 [kworker/0:0]
root 18446 0.0 0.0 0 0 ? S 17:18 0:00 [kworker/0:2]
root 18488 0.1 0.0 0 0 ? S 17:18 0:01 [kworker/1:1]
root 22680 1.5 0.0 0 0 ? S 17:28 0:08 [kworker/1:0]
root 24173 0.0 0.1 102420 6416 ? Ss 17:31 0:00 sshd: pankgeorg [priv]
pankgeo+ 24181 0.3 0.0 102420 3360 ? S 17:31 0:01 sshd: pankgeorg@pts/2
pankgeo+ 24182 0.0 0.0 16480 6112 pts/2 Ss 17:31 0:00 -bash
root 25316 2.3 0.0 0 0 ? S 17:33 0:06 [kworker/1:2]
root 26777 0.0 0.0 0 0 ? S 17:35 0:00 [kworker/0:1]
root 26778 0.0 0.0 0 0 ? S 17:35 0:00 [kworker/0:3]
root 27300 0.0 0.0 1424 1040 ? Ss 17:38 0:00 cat resolv.conf #note
root 27306 0.0 0.0 1424 1036 ? Ss 17:38 0:00 gnome-terminal #from
root 27307 0.0 0.0 1424 1036 ? Ss 17:38 0:00 ifconfig eth0 #here
root 27308 0.0 0.0 1424 1040 ? Ss 17:38 0:00 id #(DDOS?)
root 27309 0.0 0.0 1424 1040 ? Ss 17:38 0:00 ifconfig
pankgeo+ 27315 0.0 0.0 11136 2044 pts/2 R+ 17:38 0:00 ps aux
アイテムに注意してください[-4:-1]。次に、chkconfig --list
についてオンラインで見つけたので、それを実行すると、次のように表示されました
root@snf-25181:/home/pankgeorg# chkconfig --list
acdnfhruvx 0:off 1:off 2:off 3:off 4:off 5:off 6:off
flyymwddwn 0:off 1:off 2:off 3:off 4:off 5:off 6:off
1から5どこでon
ですが、私はoff
に変えました。その後、再起動すると名前が変わりました。次に、locate
d acdnfhruvx
を実行すると、次のように表示されます。
root@snf-25181:~# locate acdnfhruvx
/etc/init.d/acdnfhruvx
/etc/rc1.d/S01acdnfhruvx
/etc/rc2.d/S01acdnfhruvx
/etc/rc3.d/S01acdnfhruvx
/etc/rc4.d/S01acdnfhruvx
/etc/rc5.d/S01acdnfhruvx
そのうちの1つ(すべて同じ)の内容:root @ snf-25181:〜#cat /etc/init.d/acdnfhruvx#!/ bin/sh
chkconfig: 12345 90 90
description: acdnfhruvx
BEGIN INIT INFO
Provides: acdnfhruvx
Required-Start:
Required-Stop:
Default-Start: 1 2 3 4 5
Default-Stop:
Short-Description: acdnfhruvx
END INIT INFO
case $1 in
start)
/bin/acdnfhruvx
;;
stop)
;;
*)
/bin/acdnfhruvx
;;
esac
これは再起動後に見つかったため、/bin/acdnfhruvx
はどこにもありませんでした。後で/usr/bin
でexe(ELF形式)を見つけました(あなたの間に勇敢な男がいれば、共有できると思います)
Originを知らなくてもマシンが実行しているのを見たコマンドの一覧(ps -ej
sとps aux
esから:
root 27755 0.0 0.0 1424 1036 ? Ss 17:40 0:00 ifconfig
root 27759 0.0 0.0 1424 1036 ? Ss 17:40 0:00 who
root 27760 0.0 0.0 1424 1040 ? Ss 17:40 0:00 echo "find"
root 27761 0.0 0.0 1424 1036 ? Ss 17:40 0:00 top
root 27762 0.0 0.0 1424 1036 ? Ss 17:40 0:00 id
root 27805 0.0 0.0 1424 1036 ? Ss 17:40 0:00 gnome-terminal
root 27809 0.0 0.0 1424 1040 ? Ss 17:40 0:00 ifconfig
root 27810 0.0 0.0 1424 1044 ? Ss 17:40 0:00 sh
root 27811 0.0 0.0 1424 1040 ? Ss 17:40 0:00 sleep 1
root 27822 0.0 0.0 1424 1040 ? Ss 17:40 0:00 netstat -an
root 27826 0.0 0.0 1424 1036 ? Ss 17:40 0:00 top
root 27829 0.0 0.0 1424 1040 ? Ss 17:40 0:00 bash
root 27833 0.0 0.0 1424 1040 ? Ss 17:40 0:00 cd /etc
root 27834 0.0 0.0 1424 1040 ? Ss 17:40 0:00 whoami
root 27822 0.0 0.0 1424 1040 ? Ss 17:40 0:00 netstat -an
root 27826 0.0 0.0 1424 1036 ? Ss 17:40 0:00 top
root 27829 0.0 0.0 1424 1040 ? Ss 17:40 0:00 bash
root 27833 0.0 0.0 1424 1040 ? Ss 17:40 0:00 cd /etc
root 27834 0.0 0.0 1424 1040 ? Ss 17:40 0:00 whoami
pkill
ingは無意味です。常にフォークするため、再起動後に新しい(同一の)バージョンの実行可能ファイルが存在するため、/etc/init.d/
および/{usr/,}bin
からのファイルの削除も無意味です。このすべての情報の後で、私は2つの質問をします:私がどのように感染したかを知ることができますか?これを取り除くことはできますか?前もって感謝します!
おそらく ssh brute force login によって、Suseでも同様の感染を受けました。
クリーニングする手順は次のとおりです。
ファイル/etc/crontab
を確認してください。おそらく3分ごとにウイルスを呼び出すエントリがあります
*/3 * * * * root /etc/cron.hourly/cron.sh
この行を削除します。
ps -ej
のrguoywvrf
。他のプロセスは継続的に作成され、殺されます。kill -STOP 1632
を使用して停止せず、殺さないでくださいps -ej
に確認してください。親だけが生きており、子供はすぐに死ぬはずです/usr/bin
および/etc/init.d
のファイルを削除できます。 /boot
または/bin
も使用するウイルスの亜種があります。最近変更されたファイルを探すには、ls -lt | head
を使用します。/etc/cron.hourly/cron.sh
のスクリプトを確認してください。私たちのサーバーでは、/lib/libgcc.so
でウイルスの別のコピーを呼び出していました。両方のファイルを削除します。rguoywvrf
プロセスを確実に終了できます。あなたの質問に答えるには:
もちろん、それだけの価値があるので、これは私の意見にすぎません。ただし、マシンをやり直すときはもちろん、必要な予防策を講じて、将来的に自分をよりよく保護することができます。
これは、DDOS攻撃を起動し、ポート80で外部サーバーへの数千の接続を生成するため、さまざまな問題を生成する脅威ですが、意図的にそうでないと、ルーター/ファイアウォールがフリーズするまで接続が過負荷になる傾向があります。 DDOS攻撃ルール。
今、どのようにしてこの脅威を取り除くことができますか?
Centos/redhat
ps -ely
Debian
ps -ej
あなたは見るでしょう:
3158 3158 3158 ? 00:00:00 bvxktwwnsb
3162 3162 3162 ? 00:00:00 bvxktwwnsb
3163 3163 3163 ? 00:00:00 bvxktwwnsb
3164 3164 3164 ? 00:00:00 bvxktwwnsb
「bvxktwwnsb
」がターゲットです
次に、シングルユーザーモードでLinuxサーバーを起動する必要があります。マルチユーザーモードでの変更は無意味です。通常、次のコマンドで切り替えることができます。
テリニットS
その後、起動時に実行されるファイルを削除する必要があります
centos/Redhatでの手順は
ステップa)
cd /etc/init.d
ll -tr
最後のコマンドは、ファイルを逆順に並べ替えます。最後に、次のような名前の最後の1つまたは2つのファイルが表示されます。
acdnfhruvx
kmrkuwbrng
gqpjiestmf
bvxktwwnsb
あなたは内容を見る必要があります
cat /etc/init.d/gqpjiestmf
通常、同じ名前の/ binまたは/ usr/sbinにあるファイルの実行が表示されます
両方のファイルを削除する必要があります。
ステップb)
cd /etc/
ll -tr
crontabファイルが最近変更されたかどうかを確認し、その内容を確認し、行を検索します
*/3 * * * * root /etc/cron.hourly/udev.sh
または
*/3 * * * * root /etc/cron.hourly/crontab.sh
ファイルを編集してその行を削除する必要があります。
udev.sh
またはcrontab.sh
の内容を確認すると、次のようなものが表示されます
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
cp /lib/libgcc4.so /lib/libgcc4.4.so
/lib/libgcc4.4.so
「libgcc4.4.so」ファイルまたはそこに記載されているその他のファイルを削除する必要があります(権限の変更も機能します。たとえば、chmod a-x libgcc.so
)
サーバーを再起動すると、すべてが正常になります。
Debian/ubuntuと親戚のために使用します:
locate bvxktwwnsb
/ etcと/ binにあるファイルを削除します
これが多くの人の役に立つことを願っています。
Serhiiソリューションを補完する追加のトリック。すべてのプロセスを停止することは、ネットワークとCPUに迷惑をかけるので難しい場合があります。したがって、次の行を/etc/crontab
に追加して、すべての厄介なプロセスを自動的に停止します(名前に10文字が含まれるすべてのプロセスを3分ごとに停止します)。
*/3 * * * * root pstree -ap | grep -E -- '-[a-z]{10},' | cut -d, -f2 | xargs kill -STOP 2>/dev/null
これは、クリーンアップ後に、プロセスが戻らないことを確認するのに適しています。箱がきれいであることを確認するまでしばらく実行します。
何か見つけた!!!
/ etc/crontabを探します
私のサーバーでは、何かを実行するために3分ごとにcronjobがあります。
*/3 * * * * root /etc/cron.hourly/cron.sh
cat cron.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libgcc.so /lib/libgcc.so.bak
/lib/libgcc.so.bak
私の解決策:
注:ファイルの場所は異なる場合があります