GNU/Linux >> Linux の 問題 >  >> Linux

ハッキングされただけですか?

編集 2 :

この投稿が注目を集めているのには、1 つの正当な理由があります。それは、侵入者のライブ セッション全体を PC に記録することに成功したことです。これは、彼の行動の結果の発見に対処し、それらを是正しようとする私たちの日常の経験とは大きく異なります.ここでは、彼が仕事をしているのを見て、彼がバックドアを確立するのに問題を抱えているのを見て、彼の足跡をたどり、熱狂的に仕事をしているのを見ます (おそらく、上記のように彼があなたの机に座っていたためか、またはおそらく、私の意見では、彼が彼のマルウェアをシステム上で実行することはできません。以下を参照してください)、完全に自己完結型の制御手段を展開しようとします。これは、セキュリティ研究者がハニー トラップで毎日目撃していることです。 .私にとって、これはめったにない機会であり、楽しみの源です。

あなたは間違いなくハッキングされています。これの証拠はそうではありません auth.log のスニペットから来ます これは、短時間 (2 秒) に発生したログイン試行の失敗が報告されるためです。 2 行目に Failed password と記載されていることに気付くでしょう。 、3番目のものは pre-auth を報告します 切断:男は試みて失敗しました。

代わりに、2 つのファイル http://222.186.30.209:65534/yjz の内容から証拠が得られます。 と http://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

次に、それらを私が持っている 64 ビットの Debian VM に持ち込みました。 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 月の記事を参照してください。したがって、ほとんどの無料パッケージはそれを削除できるはずです。試してみてください:clamavrkhunterchkrootkit .私はグーグルで検索しましたが、彼らがそれを見つけることができると主張しているのを見ました。それらを使用して前任者の作業を確認しますが、これら 3 つのプログラムを実行した後は、準備が整っているはずです。

より大きな質問については、what should you do to prevent future infections 、 ジャーニーマンの答えは良い第一歩です。それは進行中の闘争であり、私たち全員(私を含む!) がそれを知らずに失った可能性が非常に高いものであることを覚えておいてください.

編集 :

Viktor Toth の (間接的な) プロンプトで、いくつかのコメントを追加したいと思います。侵入者がいくつかの困難に遭遇したことは確かに真実です。侵入者は 2 つの異なるハッキング ツールをダウンロードし、それらのアクセス許可を数回変更し、それらを数回再起動し、何度もファイアウォールを無効にしようとしました。何が起こっているかを推測するのは簡単です。彼は、ハッキング ツールが感染した PC の 1 つに向けて通信チャネルを開くことを期待しており (後述)、この新しいチャネルがコントロール GUI に表示されない場合、ハッキングを恐れています。ツールはファイアウォールによってブロックされているため、インストール手順を繰り返します。私はヴィクトル・トスの手術のこの特定の段階が期待された成果をもたらさないように見えることに同意しますが、非常に強くあなたを励ましたいと思います 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 に何がダウンロードされるかはわかりませんでしたが、yjz の両方のサイズが小さいことを考えると、 と yjz1 (それぞれ 1.1MB と 600kB)、ルートキットをクロークするのに必要なファイルのほとんどは つまり ls の変更されたバージョン 、 netstatpsifconfig 、...、このようにダウンロードされます。そして、これは、このダウンロードを実行しようとする攻撃者の熱狂的な試みを説明するものです.

上記がすべての可能性を使い果たしているという確実性はありません。確かに、トランスクリプトの一部 (457 行と 481 行の間) が欠けており、ログアウトは見られません。さらに、特に気になるのは 495 ~ 497 行目です。

cd /tmp;  ./yd_cd/make

ダウンロードされていないファイルを参照しており、可能性がある コンパイルである:もしそうなら、それは攻撃者が (最終的に?) 彼の実行可能ファイルの問題が何であったかを理解し、それを修正しようとしていることを意味します。 [実際、攻撃者がハッキングされたマシン (および私は 64 ビット Debian VM) にダウンロードしたマルウェアの 2 つのバージョンは、不適切なアーキテクチャ x86 用であり、ハッキングされた PC の名前だけで、彼は腕のアーキテクチャを扱っていた].

私がこの編集を書いた理由は、あなたのシステムを専門的な機器で徹底的に調べるか、ゼロから再インストールすることをできるだけ強く促すためです.

ところで、これが誰かの役に立てば、これは 331 のリストです yjz の 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

上記のリストでは、302 を示しています 合計 331 のうち 住所は中国本土にあり、残りは香港、モンゴル、台湾にあります。これは、これは主に中国のボット リングであるという David Schwartz の主張をさらに裏付けるものです。

編集 3

@vaid の要求 (OP の作成者、以下のコメントを参照) で、基本的な Linux システムのセキュリティを強化する方法についてのコメントを追加します (多くのサービスを提供するシステムの場合、これははるかに複雑なトピックです)。 vaid 彼は次のことをしたと述べています:

<ブロック引用> <オール>
  • システムを再インストールします

  • root パスワードを、小文字と大文字、および文字と数字が混在する 16 文字のパスワードに変更しました。

  • ユーザー名を 6 文字混合の長いユーザー名に変更し、root と同じパスワードを適用しました

  • SSH ポートを 5000 以上に変更

  • SSH ルート ログインをオフにしました。

  • これで問題ありません (ただし、多くの便利なプログラムは 10,000 未満のポートを使用するため、10,000 を超えるポートを使用します)。しかし、ssh ログインに暗号化キーを使用する必要があることは強調しきれません 、パスワードの代わりに。個人的な例を挙げます。 VPS の 1 つで、ssh ポートを変更するかどうか確信が持てませんでした。 22 のままにしましたが、認証には暗号鍵を使用しました。 何百もありました 1 日あたりの侵入試行回数 、どれも成功しませんでした。誰も成功していないことを毎日チェックするのにうんざりしていたので、最終的にポートを 10,000 を超えるポートに切り替えたところ、侵入の試みはゼロになりました。ハッカーが愚かであるというわけではありません (そうではありません!)。

    署名アルゴリズムとして RSA を使用して暗号鍵を有効にするのは簡単です。以下の Jan Hudec によるコメントを参照してください (ありがとう!):

     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 [email protected]
    

    これが機能することを確認したら、サーバー (=接続したいマシン) でファイル /etc/ssh/sshd_config を編集します。 、行を変更します

    #PasswordAuthentication yes
    

    PasswordAuthentication no
    

    ssh を再起動します サービス (service ssh restart または systemctl 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
    

    たとえば、人々があなたの Web ブラウザにアクセスできるようにします。


    インターネットへようこそ - オープンな SSH サーバーは調査され、力ずくで攻撃され、さまざまな侮辱を受ける可能性があります。

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

    ちょっと当て推量ですが

    <オール>
  • 力ずくで or 共通パスワードを使用します。あいまいさによるセキュリティですが、辞書のパスワードは必要ありませんまたは SSH に対して開いている root アカウントを使用する。オプションの場合はルート SSH アクセスを無効にするか、少なくとも名前を変更して、両方を推測する必要があるようにします。 root として SSH 接続するのは、とにかくひどいセキュリティ慣行です。 root を使用する必要がある場合は、別のユーザーとしてログインし、su または sudo を使用して切り替えます。

  • 製品によっては、何らかの方法で SSH アクセスをロックしたい場合があります。完全なロックダウンは良いアイデアのように思えますが、必要に応じてユーザーが開くことができます。 .余裕のあるリソースに応じて、独自のサブネットでのみ IP アドレスを許可するか、何らかのログイン スロットリング システムを使用することを検討してください。最終製品で必要ない場合は、オフになっていることを確認してください。

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

  • デフォルトのパスワードは絶対に使用しないでください。私が見た最善の方法は、特定のデバイスのパスワードをランダムに生成し、それを製品と共に出荷することです。ベスト プラクティスはキー ベースの認証ですが、マス マーケット製品でどのようにアプローチするかはわかりません。


  • ああ、あなたは間違いなくハッキングされました。何者かが root 資格情報を取得して、システムにトロイの木馬をダウンロードしようとしたようです。 MariusMatutiae がペイロードの分析を提供しました。

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

    最初の質問の答えは may いいえ。攻撃者がペイロードのダウンロードと実行を繰り返し試みていますが、明らかに成功していません。何か (SELinux か?) が彼の邪魔をしているのではないかと思います.

    ただし、攻撃者はあなたの /etc/rc.d/rc.local も変更しました システムを再起動すると、ペイロードがアクティブ化されることを期待して、ファイル。システムを再起動していない場合は、/etc/rc.d/rc.local からこれらの変更を削除するまで再起動しないでください。 .すでに再起動している場合は...まあ、運が悪いです。

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

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

    更新 :回復の可能性について私が書いたことにもかかわらず、私はマリウス・マチュティアエの非常に強いと同調したいと思います このペイロードによって引き起こされる潜在的な損害と、標的のシステムを危険にさらした可能性がある範囲を過小評価しないことをお勧めします。


    Linux
    1. Linuxを始めたきっかけは何ですか?

    2. 少ないだけではありませんか?

    3. ターミナルのバックグラウンド設定を削除しただけですか?

    1. ObjectRocketドキュメント

    2. df で空きディスク容量を取得して、空き容量を kb で表示するだけですか?

    3. Linux 上の VirtualBox:どの Windows イメージを使用し、どこで入手できますか?

    1. サーバーが私のIPをブロックしたのはなぜですか?

    2. 与えられたファイルの年齢を取得しますか?

    3. 開始したばかりのプロセスのpidを取得する方法