問題タブ [shellshock-bash-bug]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - シェルショックの脆弱性、CVE-2014-7169
このycombinator スレッドは、次のように述べています
最初のトークンをドロップしてから結果を実行し、出力をドロップされたトークンに送信できます。その部分に魔法がかかっているのはわかりますが() { (a)=>\'
、これはなかなか探すのが大変なので、どなたか内部の仕組みを説明していただけると助かります。
リンクされた重複の可能性のある質問では、変数は次を使用して環境変数にエクスポートされます。
これは実際には同じではありません
これは、私が仕組みを理解しようとしている部分です。では、(a)
との=>\'
部分は何をするのでしょうか。明らかに、非常に似たようなことを行っていますが、この脆弱性に対する最初のパッチを回避したという点で異なります。chepner のコメントを参照してください。
linux - bash をアップグレードしますが、bash --version は変更されません。なぜですか
Shellshock の問題については、次の手順を使用して、redhat 4,5 で bash をアップグレードします。
バッシュのバージョンを確認する
root@aaaA:/usr/src/redhat/RPMS/x86_64>bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
バッシュをアップグレードする
rpmbuild --rebuild -bb bash-3.2-33.el5_11.4.src.rpm
cd /usr/src/redhat/RPMS/x86_64/
root@aaa:/usr/src/redhat/RPMS/x86_64>rpm -Uvh bash-*
Preparing... ########################################### [100%]
1:bash ########################################### [ 50%]
2:bash-debuginfo ########################################### [100%]
bash のバージョンをもう一度確認する
root@aaa:/usr/src/redhat/RPMS/x86_64>bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
- 再起動して bash のバージョンを再度確認する
root@aaa:/usr/src/redhat/RPMS/x86_64>bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
- 回転数をチェック
root@aaa:/usr/src/redhat/RPMS/x86_64>rpm -qa | grep bash
bash-3.2-33.4
bash-debuginfo-3.2-33.4
bash バージョンが bash-3.2-33.4 に変更されない理由
ruby-on-rails - RoR: OpenSSL を読み込めませんでした (今日の Apple の Bash 修正後)
Appleのbashシェルショック修正を今日実行した後、rvm経由でレールを再インストールしようとした後にキャッチしたこのエラーについて、誰かが説明したりアドバイスしたりできることを願っています。OSX 10.9.5 mav にアップグレードして Bash Shellshock を実行した後、RoR アプリにレールを再インストールする必要がありました。バンドル インストールしようとすると、次のようになります。
OpenSSL を読み込めませんでした。OpenSSL をサポートする Ruby を再コンパイルするか、Gemfile のソースを「https」から「http」に変更する必要があります。RVM を使用して OpenSSL でコンパイルする手順は、rvm.io/packages/openssl で入手できます。
macos - マウンテン ライオンでデフォルトの bash PATH を復元する方法、シェルショックを回避するために bash を更新するため、起動できません
シェルショックの脆弱性にパッチを当てるために bash をアップグレードしていたので、チュートリアルに従って、古い bin/bash $PATH を置き換えてめちゃくちゃにしたので、Macbook にログインできません...
チュートリアルには次のように書かれています。
$ sudo chmod ax /bin/bash_old /bin/sh_old.... ------> 疑わしいコード...
これは大きな間違いだと思うので、次の手順に従って、古い PATH を新しい PATH に新しい bash 更新 (Homebrew でアップグレード) に置き換えます。
$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/bash
$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/sh
Macbookを再起動したときにパスワードを設定すると、ロードモードが続きます...ロード中...ロード中...そして何も起こりません...
NVRAMの復元、ディスクの復元、シングルユーザーモードでのパスワードの変更など、多くのことを試しましたが、何も起こりません....くそー!!
ここでチュートリアル:
https://apple.stackexchange.com/questions/147005/can-bash-be ...
linux - シェルショック固定 bash バージョンのインポートされていない環境変数
後続のバイナリで使用される環境変数を変更する単純な bash スクリプトがあります。私の基本的なスクリプトを以下に示します。
DBROOT 変数は、「test_process」によって環境変数として使用されます。また、DBROOT はグローバル環境変数として別の値「OLD_DIRECTORY」で定義されています。スクリプトの目的は、「test_process」に NEW_DIRECTORY 値 (エクスポートされた値) を使用させることです。
パッチが適用されていない bash バージョンでは、テストは機能しました。ただし、bash の shellshock バグにパッチを適用した後、test_process はエクスポートされた DBROOT の値もグローバル環境変数も読み取りません。「test_process」がエクスポートされたグローバル変数を無視するかのようです。
「test_process」のソースコードがありません。bash のバージョンはバージョン 2.05b.0(1)-release (rpm のバージョンは bash-2.05b-41.7.i386.rpm ) で、Red Hat Enterprise Linux AS リリース 3で実行しています。
更新: コンパイル時の定義を設定して、bash 2.05b の最後のソースを再コンパイルした後
#define NON_INTERACTIVE_LOGIN_SHELLS
スクリプトは再び機能しました。このdefine bashがないと、コマンドの-
後の文字が誤って解釈されましたsu
linux - CronTab を WebMin システムに復元するにはどうすればよいですか
これが私のサーバーが犠牲になったシェルショック攻撃 (または機能した別の攻撃) の影響であったかどうかはわかりませんが、基本的に、サーバーの再起動時にハッカーが私の SSH 構成ファイルを上書きできるようにしました。
この新しいファイルは、wget を使用して Web サイトからファイルをロードした後、別のハック関数のライブラリを使用して、サーバーからハック/DOS を実行したと推測しました。私はそれをかなり早く見つけ、理想的にはアップグレードしたいと思っていますが、私は癌を患っており、大きな手術を受けたばかりなので、現時点ではあまりにも多くの努力をしています.
したがって、私は多くのハウスキーピング、パスワードの変更、シェル アクセスの削除、DASH への復帰、ルートおよび他のユーザーのデフォルト シェルのシンボリック リンク付きの別のフォルダーへの置き換え、SSH の構成ファイルの復元、構成からの CGI 機能の削除を行いました。ファイルなど
ScriptAlias /cgi-bin/ /home/searchmysite/cgi-bin/
#
すべてから許可する
#
すべての仮想最小サイトの AW 統計と Webalizer を削除しました。
DenyHosts と Fail2Ban は既にインストールされています。
また、彼がファイルを取得しているサイトの IP へのイン/アウトバウンド トラフィックをブロックしました。
ただし、この変更以降、webmin からビジュアル cron マネージャーが失われたようです。
メニュー項目「Scheduled Cron Jobs」に移動すると、「ユーザー Cron 構成を管理するためのコマンド crontab が見つかりませんでした。このシステムに Cron がインストールされていない可能性がありますか?」と表示されます。
ただし、ファイルシステムに存在することがわかります。
crontab -l または crontab -e を実行すると、「許可が拒否されました」というメッセージが表示されます
whoami は「ルート」を示します
ハッキングの時点で、これはすべて関連していると思いました。彼は SSH と Cron ジョブを使用してハッキングを実行していました。
私が知りたいのは、CronTab マネージャーを元に戻す方法です。
Web サイトへのフィードのインポート、スケジュールされた電子メールの実行など、すべての cron ジョブがまだ実行されていますが、完全な再構築なしでこれを解決する方法はわかりません。
時間とエネルギーがあればそうしますが、私は完全に疲れ果てており、このハッキングの前はすべてがスムーズに実行され、お金をもたらす私のウェブサイトは正常に機能していました.
それらは現在も問題なく動作しており、定期的にログをチェックして奇妙に見える IP を探し、xss/sql/path travesal/file ハッキングに対して強力な htacess ルールを適用し、サイトが背後にある Cloudflare から国全体を禁止しています。そのため、マシンが古いものであっても、現時点で侵害されているとは「考えていません」 - 間違っている可能性があります。
箱の詳細
オペレーティング システム Debian Linux 5.0 Virtualmin バージョン 3.98.gpl GPL WebMin バージョン: 1.610 カーネルおよび CPU Linux 2.6.32.9-rscloud on x86_64
誰かが私のcrontabマネージャーを取り戻すのを手伝ってくれるなら、それは素晴らしいことです.
ありがとう