SSH その4
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGFAQ、リンク集は >>2-5 あたり。
過去ログ
Part1:http://pc.2ch.net/unix/kako/976/976497035.html
Part2:http://pc.2ch.net/test/read.cgi/unix/1028157825/ (dat落ち)
春山さんのとこ→ http://www.unixuser.org/%7Eharuyama/security/openssh/dat/pc.2ch.net_80__unix_dat_1028157825.html
Part3:http://pc5.2ch.net/test/read.cgi/unix/1058202104/
0772名無しさん@お腹いっぱい。
2006/01/25(水) 16:22:10CVE-2006-0225 http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0225
http://www.st.ryukoku.ac.jp/~kjm/security/memo/2006/01.html#20060125_scp
tun(4)のサポートなんて後でイイから、さっさといろんなバグ潰した4.3を
出せってば :-)
1週間後に出すぞってメールで流してから何週間経っているんだと小一時間(ry
0773名無しさん@お腹いっぱい。
2006/01/25(水) 22:01:50scp 'foo:bar*' .
とか便利に使ってたんだが、バグだったのか…
0774名無しさん@お腹いっぱい。
2006/01/25(水) 23:58:08そーいうことではなくて、記号や空白が名前の一部に入っているファイル
が問題視されているのですが。
たとえば
scp 'foo:bar*' .
であれば、foo というマシン上に
bar foo
bar*
といったファイルがあるとうまくいかないと。
そもそもが、
http://www.redhat.com/archives/fedora-announce-list/2006-January/msg00062.html
には
local to local and remote to remote copy with scp
と書いてあるわけで、
foo という「リモートマシン」から「ローカル」
という時点で、既に今回の対象外な気がしますが。
0775名無しさん@お腹いっぱい。
2006/01/26(木) 01:45:25OpenSSH 情報の http://www.unixuser.org/%7Eharuyama/security/openssh/20060125.html に
> system()関数を用いているためにリモートホストでもシェルによるコマンドの解釈が行われます。
> このため適当に細工を施されたファイル名をコピーすると、リモートホストでユーザの権限でコマンドが
> 実行されます。
なんて書いてあって、リモート側でsystem()関数によるファイル名展開しないように
対策されるのかと勘違いしてました。
0776名無しさん@お腹いっぱい。
2006/01/26(木) 13:51:52> あるIPアドレスからの接続はパスワード認証と公開鍵認証を許可して、それ以外のIPアドレスからの
> 接続は公開鍵認証のみ許可をする、といった感じの設定は出来ますか?
OpenSSH だと config file を変えて sshd 二つ上げとくしかないん
じゃなかろか。
ちなみに $sh.com 版なら HostSpecificConfigって機能を使うと sshd
一つで client host 毎に認証方式を変えることが可能。
0777名無しさん@お腹いっぱい。
2006/01/26(木) 15:53:09ソースアドレスによってはそちらにリダイレクトするようにしたら、
sshdが2つなのをユーザに意識させずに切り替えることもできそう。
pfなら
rdr on fxp0 proto tcp from <allow_password_address> to self port ssh -> $myaddr port 10022
とかになるのかな。
0778771
2006/01/26(木) 20:41:25前の代のサーバはssh.com版を使ってたみたいで、HostSpecificConfig
を使って上記のような設定をしていたので、なんとかOpenSSHで
出来ないものかな、と思いましたが、2つ立ち上げるしかないんですね。
ありがとうございました。
0780773
2006/01/28(土) 04:18:01問題の本質は
> シェルによるファイル名の解釈が2度おこなわれる
事なので、local-to-localやremote-to-remoteのコピーだけの問題じゃない気がしてきた。
remote-to-local、local-to-remote でも、localでのシェルによる解釈、
remoteでのscp起動の時にもシェルを経由するわけだし。
その意味で、OpenSSH 情報の元の記述は的外れでなかった気がしてきた。
なわけで、今回の修正だけではまずいんじゃないかなあ。
0781春山征吾 ◆unIxUSernc
2006/01/28(土) 09:07:30パッチをみたところ、local-to-localとremote-to-remoteでの処理での
system()が置き換えられていました。
scp.cのそれ以外の部分ではsystem()は使われていません。
OpenSSH情報の記述はさらに直します。
0782773
2006/01/28(土) 21:06:24>781
system()を使ってなくてもやばいんじゃないかって事です。
0783春山征吾 ◆unIxUSernc
2006/01/29(日) 01:24:30% scp remote:\;/usr/bin/yes .
とすると
remoteで/usr/bin/yes が起動しました。
0784春山征吾 ◆unIxUSernc
2006/01/29(日) 01:33:08なんてのもいけますね。
0785春山征吾 ◆unIxUSernc
2006/01/29(日) 01:40:59% scp foo remote:.\;/bin/sleep\ 1000
としてコマンドを実行できました。
local-to-localやremote-to-remoteと同様の問題があると考えていいように思えます。
明日朝から用事があるので一旦終了します。
0786春山征吾 ◆unIxUSernc
2006/01/29(日) 17:22:47% rsync foo remote:.\;sleep\ 1000
や
% rsync remote:foo\;sleep\ 1000 .
でremoteでのコマンド実行ができました。
ファイル転送においてもリモートでコマンドを実行する枠組を利用している以上
利用者が気をつけるしかないかもしれませんね。
0787名無しさん@お腹いっぱい。
2006/01/29(日) 17:55:02わずに直接実行してほしい。shを使いたかったら明示的に書けばい
いだけ。
参考
http://pc8.2ch.net/test/read.cgi/unix/1131026501/984
0788773
2006/01/30(月) 01:08:35> local-to-localやremote-to-remoteとは異なり実際のファイルのコピーによって
> コマンドが実行されるわけではありません。
と修正されてたけど、
% ls
remote:;/usr/bin/yes
% scp * foo
とか。
% ls
remote:*
これも意図しないファイルをコピーされてしまうような。
OpenSSH FAQ 2.13とか、ほっといてはいけなかったのかな。
>787
確かにその通りだと思うんだが、変更したらSSHのRFCと矛盾しないかな?
0789名無しさん@お腹いっぱい。
2006/01/30(月) 01:35:38参考が読めない
おれにも●売ってくれよ。10円で。
0790名無しさん@お腹いっぱい。
2006/01/30(月) 01:37:01は今後使えなくなるの?
0791名無しさん@お腹いっぱい。
2006/01/30(月) 02:20:09> % ls
> remote:;/usr/bin/yes
これは無理w
> % ls
> remote:*
これは仕様上仕方ないんじゃないか。
$ scp * .
ssh: remote: Name or service not known
0792名無しさん@お腹いっぱい。
2006/01/30(月) 02:33:14984 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2006/01/20(金) 22:59:14
スレ違いだが、
sshは引数をスペースを間に入れて結合した文字列をsshdに送る。
sshdは
argv[0] = shell
argv[1] = "-c"
argv[2] = 送られた文字列
のように実行する。
なので'1 2 3'というファイルを指定するためには
ssh localhost touch "'1 2 3'"
のように''をつける必要がある。
シェルを経由して実行する場合は引数(の数と内容)を保ったまま渡
すのは無理なのかもしれんが。
0793773
2006/01/30(月) 02:35:42確かにこのままだと駄目だった。
が、path通っているのであれば、こっち
> % ls
> remote:;yes
だったら。
0794春山征吾 ◆unIxUSernc
2006/01/30(月) 09:14:19% ls
remote:;yes
% scp * foo
でremoteでyesが実行されますね。
OpenSSH情報の記述を訂正します。
0795名無しさん@お腹いっぱい。
2006/01/30(月) 10:32:33> % scp * foo
hostname:pathname の形式で指定する以上、たぶんどうしようもない。
scp ./* foo:bar/
なら問題ない。
0796773
2006/01/31(火) 01:22:49リモートでコマンド実行の方は危険な記号をエスケープするなり
して対処するのかなあ。
で、hostname:pathname の hostname: の部分を処理する前に、
hostname:pathname がファイルとして存在しているか確認して、
存在していた場合、ユーザーに確認 or エラー吐いて失敗とか。
# -B オプションとか付いてたら確認せず実行とか。
とにかく、意図したファイルのコピーが失敗するだけならともかく、
意図しないファイルのコピーが実行されてしまうのは避けた方が無難だと
思う。
0797773
2006/01/31(火) 01:37:42>> % ls
>> remote:;/usr/bin/yes
>これは無理w
こんなの思い付いた。
% echo */*/*/*
remote:;/usr/bin/yes
0798名無しさん@お腹いっぱい。
2006/02/01(水) 17:51:27文字列をコピーしてメモ帳に貼り付ける、と紹介してるサイトがあるけど
【Save Public key】ボタンを押して保存じゃ駄目ですか?
わざわざ面倒なことする理由って何ですか?
0799名無しさん@お腹いっぱい。
2006/02/01(水) 17:58:440800名無しさん@お腹いっぱい。
2006/02/01(水) 19:57:54形式が違う。
0801名無しさん@お腹いっぱい。
2006/02/01(水) 23:41:180802名無しさん@お腹いっぱい。
2006/02/02(木) 01:48:07保存した物はssh-keygen -X -fで変換しないと~/.ssh/authorized_keysの形式に成らないよね
0803798
2006/02/02(木) 02:03:23自分もそうじゃないかと思いました。
ボタンがあるのにコピペするのは昔の名残なのかと。
しかしどうしても気になり、質問してしまいました。
>>800、>>802
!!、そういうことなんですか!ありがとうございます!!
モヤモヤが晴れました。御三方ありがとうございました。!
0804名無しさん@お腹いっぱい。
2006/02/02(木) 06:05:354.3(p1) キター ヽ(゚∀゚)ノ
0805春山征吾 ◆unIxUSernc
2006/02/03(金) 18:57:02>>773- 以降で議論したscp の local-to-remote, remote-to-local のコマンド挿入の
問題について、セキュリティの問題として openssh@openssh.com に連絡しようと思います。
(なぜ openssh@openssh.com かは ttp://www.openssh.com/report.html を参照)
反対意見がなければ、日曜か月曜に送ります。
メールの内容は長いので
ttp://unixuser.org/%7Eharuyama/security/openssh/tmp/openssh_scp_command_injection.txt
におきました。
0806773
2006/02/03(金) 22:17:07> % ls
> remote:*
> これも意図しないファイルをコピーされてしまうような。
こっちの報告はどうしましょう?
>791
> これは仕様上仕方ないんじゃないか。
ってのも分かるのですが、
さらに
% ls
foo@remote:*
とかにして、
foo@remote% ls -l
rwsrwsrwx 1 foo foo 100 2006-02-03 03:55 bar
とかが
% scp * .
とかでコピーされちゃうとまずそうなんですけど。
実験したら -p オプション付けなくてもsuid bitコピーされちゃいましたし。
# umask の設定でsuid bit無効化出来ましたっけ?
後、
% ls
-p foo
とかで、予期しないオプションをremoteのscpに与える攻撃とか思い付いたのですが。
# 組み合わせや設定次第でやばげな事が出来そうです。
# remote:-Sfoo とかでremote-to-remoteになったときとか。
対策するなら796で書いた事ぐらい?
0807773
2006/02/03(金) 22:25:54# scp や rsync の実装の問題でしょうし。
0808春山征吾 ◆unIxUSernc
2006/02/03(金) 22:47:52ttp://unixuser.org/%7Eharuyama/security/openssh/tmp/openssh_scp_command_injection.txt
を上書きしました。
・Subjectを scp/rsync Command Line Shell Command Injection in the case of local-to-remote and remote-to-local copies & scp/rsync user-unintended file copy with a malicious filename に。
・rsync-bugs@samba.orgにも送るという文章を追加
・次の文章を追加
In addition, This example (using a malicious filename)
----------
% ls
remote:*
% scp * .
(or rsync -e ssh * .)
----------
causes an user-unintended file copy.
0809春山征吾 ◆unIxUSernc
2006/02/03(金) 22:57:20% ls
-S ls a
% scp * remote:
ls: No such file or directory
lost connection
とローカルホストでプログラムを実行させることもできますね。
(rsyncでも-e で同様のことができるでしょう)
送るまでにもっと例を追加します。
0810名無しさん@お腹いっぱい。
2006/02/03(金) 23:01:520811名無しさん@お腹いっぱい。
2006/02/03(金) 23:11:110812春山征吾 ◆unIxUSernc
2006/02/03(金) 23:16:03% ls
-Sls a
% scp * remote:
ls: invalid line width: ardAgent no
lost connection
でした。
0813名無しさん@お腹いっぱい。
2006/02/03(金) 23:22:130814名無しさん@お腹いっぱい。
2006/02/03(金) 23:27:22頼むからやめてくれ。どうかしてるぞ。
0815名無しさん@お腹いっぱい。
2006/02/03(金) 23:28:110816名無しさん@お腹いっぱい。
2006/02/03(金) 23:37:00普通のバグリポートを送るだけで充分だ。
これはおかしな動きだと疑問に思ったら真っ先に本家のMLに聞いてみるべきなのに。
あんたこんな所にしか相談出来る相手が居ないのか?
ここには馬鹿しか居ない。このままじゃ駄目になっちゃうよ。
0817名無しさん@お腹いっぱい。
2006/02/03(金) 23:41:10正直同感
0818春山征吾 ◆unIxUSernc
2006/02/03(金) 23:46:47>反対意見がなければ、日曜か月曜に送ります。
と書きましたので、送るのは中止します。
ここで相談しているのは、
773氏の寄与が大きいので了解を取るべきと考えたからです。
0819773
2006/02/04(土) 00:12:45自分自身でバグリポートをさっさと送らなかった事には謝罪します。
しかし、
>816
> バグではある。明らかに利用者が意図しない動きをしている。だが脆弱性ではない。
と言うのは疑問です。
元の CVE-2006-0225 が任意のコマンドを実行される脆弱性で修整されるべきなら、
今回の物もssh自身の問題だけではないかもしれませんが、任意のコマンドを
実行してしまうもので「脆弱性ではない」とは言い切れないと思います。
0820名無しさん@お腹いっぱい。
2006/02/04(土) 00:38:25少なくとも、これに関しては scp には何の罪はない。
% touch -- -l
% ls *
これで ls -l が実行されるのは ls のせいではなくシェルのせいだ。
0822名無しさん@お腹いっぱい。
2006/02/04(土) 03:42:170823名無しさん@お腹いっぱい。
2006/02/04(土) 15:26:34離れた場所のLAN内にあるsambaサーバもしくはWindowsの共有にアクセスすることはできますか?
0824名無しさん@お腹いっぱい。
2006/02/04(土) 15:30:090825823
2006/02/04(土) 16:51:29http://www.gcd.org/sengoku/docs/NikkeiLinux01-02/forward.ja.html
プロキシーサーバに接続することによって、LAN内のすべてのwwwサーバにアクセスできるようになりますが
これと似たことを、sambaでもできないかと考えているのですが。
0826名無しさん@お腹いっぱい。
2006/02/04(土) 21:32:090827名無しさん@お腹いっぱい。
2006/02/05(日) 00:34:30つ [SoftEther改めPacketiX VPN]
0828名無しさん@お腹いっぱい。
2006/02/05(日) 01:35:04SEはライセンスがアレなので・・・
つ [OpenVPN]
0829名無しさん@お腹いっぱい。
2006/02/05(日) 07:56:540830名無しさん@お腹いっぱい。
2006/02/05(日) 11:08:33きわものが似合いそうな823に
つ[zebedee]
http://rogiken.org/daemon/tips/smb_zbd.html
opensshってバインドするアドレスを指定できなかったんだよねぇ、たしか。
だから、いったん8139とかにバインドして、stoneでLoopbackアダプタに
バインドした気がする。
遠い昔のことでわすれた。。
0831名無しさん@お腹いっぱい。
2006/02/06(月) 10:17:17望んでいるものかどうかわからないけど、
つ [ ttp://www.c3.club.kyutech.ac.jp/c3magazine/4th/nbssh/nbssh.html ]
0832名無しさん@お腹いっぱい。
2006/02/06(月) 16:58:10445ポートでうまくいかない?
0833名無しさん@お腹いっぱい。
2006/02/07(火) 14:04:58無料じゃないのがやだけど
0834名無しさん@お腹いっぱい。
2006/02/07(火) 21:57:27無料じゃないの?
0835名無しさん@お腹いっぱい。
2006/02/08(水) 01:09:06個人かつ非営利目的な場合のみ無料。
0836名無しさん@お腹いっぱい。
2006/02/08(水) 01:45:58道具に罪はないとは言うけれど、セキュリティに関わるものだけにちょっと。
0837名無しさん@お腹いっぱい。
2006/02/08(水) 08:18:010838名無しさん@お腹いっぱい。
2006/02/08(水) 15:45:080839名無しさん@お腹いっぱい
2006/02/11(土) 17:35:31ttp://www.unixuser.org/~haruyama/security/openssh/
にも出てるよ。
さすが春山さん早いねぇ。
0840名無しさん@お腹いっぱい。
2006/02/11(土) 20:27:48↓
http://game.coden.ntt.com/games/ikki.html
King of Wands
http://game.coden.ntt.com/kingofwands/
0841名無しさん@お腹いっぱい。
2006/02/11(土) 21:08:270842名無しさん@お腹いっぱい。
2006/02/15(水) 23:49:32困った事に受信側のPocket PuTTYで日本語が全部文字化けしちゃうす。
誰か対策できた人おる?
0843名無しさん@お腹いっぱい。
2006/02/17(金) 17:24:41うーん
速攻で設定直したから うちでは問題ないなぁ
0844名無しさん@お腹いっぱい。
2006/02/19(日) 17:18:140845名無しさん@お腹いっぱい。
2006/02/19(日) 18:00:390846名無しさん@お腹いっぱい。
2006/02/22(水) 11:32:13Putty その2
http://pc8.2ch.net/test/read.cgi/unix/1084686527/l50
0847名無しさん@お腹いっぱい。
2006/02/22(水) 16:29:31ここにあるとおりに設定してみたのですが、依然として、
どちらからログインする際にもパスフレーズを求められてしまいます。
考えられる原因としてはどのようなものがあるでしょうか?
0848名無しさん@お腹いっぱい。
2006/02/22(水) 16:33:08これ、情報古いよ。
もっとまともなとこ読め。
0849848
2006/02/22(水) 17:41:14どのサイトに新しい情報が載っているでしょうか?もし教えていただければ幸いです。
0850名無しさん@お腹いっぱい。
2006/02/22(水) 19:53:070851名無しさん@お腹いっぱい
2006/02/23(木) 02:57:08パッと見で思い当たるところ。
.sshのパーミッション
~/.ssh/authorized_keysの中身
/etc/sshd_configの設定
あと、logは見た?
その辺を一通り確認すれば、何とかなると思う。
0852名無しさん@お腹いっぱい。
2006/02/24(金) 08:55:270853名無しさん@お腹いっぱい。
2006/02/24(金) 09:42:11 ̄
0854名無しさん@お腹いっぱい。
2006/02/24(金) 14:01:15openssl 0.9.8a
zlib 1.2.1.2-1.2(RPM)
openssh 4.1p1
上記の環境で
# ./configure \
--with-tcp-wrappers \
--with-pam
# make
を行うと
/usr/local/lib/libcrypto.a(dso_dlfcn.o)(.text+0x321): In function `dlfcn_bind_func':
: undefined reference to `dlerror'
collect2: ld returned 1 exit status
make: *** [ssh] Error 1
とエラーになってしまいます。
そこで、直接 Makefile を編集して、
LIBS= に -ldl を追加して make を通しましたが、こういった手法しかないのでしょうか?
今回、普通に make が通らなかったことが疑問なのですが、その原因がわかる方はいらっしゃいますか?
0855名無しさん@お腹いっぱい。
2006/02/24(金) 14:19:050856名無しさん@お腹いっぱい。
2006/02/24(金) 19:47:110857名無しさん@お腹いっぱい。
2006/02/28(火) 19:05:570858名無しさん@お腹いっぱい。
2006/02/28(火) 19:10:10「日本語のファイル名」を定義してください。
0859名無しさん@お腹いっぱい。
2006/02/28(火) 20:09:260860名無しさん@お腹いっぱい。
2006/02/28(火) 20:27:340861名無しさん@お腹いっぱい。
2006/02/28(火) 20:40:120862名無しさん@お腹いっぱい。
2006/02/28(火) 21:01:05俺のところでは特に設定なしで日本語ファイル名が使えてる。
もし日本語ファイル名が使えないなら、どううまくいかないのか
もう少し詳しく書け。
少なくとも、変なことしてなければ設定なしで使えるはず。
0863名無しさん@お腹いっぱい。
2006/02/28(火) 21:53:58読み取れたなら答えてあげてよ。
0864名無しさん@お腹いっぱい。
2006/02/28(火) 22:21:59UNIX側をsjis環境にして日本語はすべてsjisに統一する
コントンジョノイコ
0865名無しさん@お腹いっぱい。
2006/02/28(火) 22:31:10これでおあいこじゃないか
0866名無しさん@お腹いっぱい。
2006/02/28(火) 22:50:100867名無しさん@お腹いっぱい。
2006/02/28(火) 22:57:35すでに答えてるじゃん。
0868名無しさん@お腹いっぱい。
2006/02/28(火) 23:02:04「UNIX側って??」
UNIX板なんだからUNIX以外のOSは無視でしょ。
オレのところはUNIXホストはすべてEUCで統一。
この状態でsftpで日本語ファイル名は問題なく使える。
0869名無しさん@お腹いっぱい。
2006/03/01(水) 00:46:07文字コード変換して転送とかそういうことじゃね
0870名無しさん@お腹いっぱい。
2006/03/01(水) 00:55:51そもそも相手先で違う物に内容を改ざんするsftp
なら使わない選択を選ぶのが筋
0871名無しさん@お腹いっぱい。
2006/03/01(水) 01:08:48■ このスレッドは過去ログ倉庫に格納されています