私は終わりました。OverTheWire Bandit Warゲーム、レベル18。
これは驚くべきことです。以下はこのレベルの説明です。
次のレベルのパスワードはファイルに保存されます。閲覧ファイルホームディレクトリにあります。誰が修正したのが残念です。.bashrcSSHを使用してログインするとログアウトします。
シェルに購入をスキップさせる方法を考えています.bashrc
。しかし、解決策が見つかるまでは、単にサーバーへのSFTP接続を開始したいという誘惑があります。私はそれがうまくいくとは思わなかった。しかし、そうでした。理由を知りたいです。 SFTPがSSHを介して実行されると思いました。
明らかに、期待どおりにサーバーにSSHで接続すると、サーバーから追い出されます。
ベストアンサー1
Bashに関する一般情報
Bashのスタートアップファイルのデザインはかなり奇妙です。 Bashは、.bashrc
関連していない2つの状況でロードされます。
- 対話型シェルの場合、そうでない場合ログインシェル(として呼び出されない限り
sh
)。だからこそ.bash_profile
一般負荷.bashrc
。 バッシュがあるときいいえInteractiveはログインシェルでも、asへの呼び出しでもありませんが、
sh
実行するコマンドが提供され、設定されていない-c
かSHLVL
、1以下で、次のいずれかがtrueです。- 標準入力がソケットの場合。実際、これはbashが呼び出されると主に発生します。
rshd
つまり実行中ですrsh remotehost.example.com somecommand
。 コンパイル時に有効になっている場合(Debianやその派生製品などの一部のディストリビューションでは)、
SSH_CLIENT
環境変数の1つが定義されます。SSH2_CLIENT
実際、これはsshd
Internet Explorerでbashを呼び出すことを意味しますssh remotehost.example.com somecommand
。
Bashのコンパイル方法がわからない場合は、バイナリに次の文字列が含まれていることを確認して、このオプションが設定されていることを確認できますSSH_CLIENT
。strings /bin/bash | grep SSH_CLIENT
- 標準入力がソケットの場合。実際、これはbashが呼び出されると主に発生します。
SSHに関する一般情報
SSHプロトコルを介してコマンドを実行すると、コマンドは文字列として接続を介して渡されます。この文字列はリモートシェルによって実行されます。を実行すると、ssh example.com somecommand
リモートユーザーのログインシェルがあると/bin/bash
SSHサーバーが起動します/bin/bash -c somecommand
。ログインシェルをバイパスする方法はありません。これにより、次の制限付きログインシェルが可能になります。ファイルのコピーのみ許可一般的なコマンド実行の代わりに。
1つの例外があります。 SSH プロトコルを使用すると、クライアントは特定のサブシステムを要求できます。クライアントがこのsftp
サブシステムを要求すると、デフォルトでOpenSSHサーバーは/usr/lib/openssh/sftp-server
ユーザーのログインシェル(場所は異なる場合があります)を介してこのプログラムを呼び出します。ただし、有線経由で内部SFTPサーバーを実行するように構成することもできます。
Subsystem sftp internal-sftp
sshd_config
ファイルから。内部SFTPサーバーの場合、この場合にのみユーザーのログインシェルがバイパスされます。
この挑戦のために
OverTheWire Bandit 18.bashrc
用含まれています
…
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
…
echo 'Byebye !'
exit 0
したがって、bashを非対話型にするすべてのタスクを実行して、このレベルを解決できます。
見つかったとおり、SFTPが機能します。
しかし、それも動作します。そのまま。対話型ログイン中にCtrl + Cをタイムリーに押しても機能します。 bash が中断されるため、完全には実行されません。 Bashは起動に巨視的な時間がかかるため、信頼できませんが、実際には実行できます。ssh [email protected] cat readme
echo 'cat readme' | ssh [email protected]
.bashrc