読んでみると
4-1. telnet辺りが開いていればパスワードツール(perlでも作成可)を使って侵入。なんて書いてある。
自分が書いた記事でなんなのだが、
果たして本当にperlでパスワードツールは作ることができるのか考えてみた。
そもそもパスワードツールとはなんなのか?
これは僕特有のバズワードで、ここではID及びパスワードを自動で次々に入力するアプリケーション又はプログラムのことを言っています。
さっそく「perl」「telnet」でググってみる。(当のgoogleはこういった使われ方を嫌がっているようです。)
すると、perlでtelnetを制御するには「Net::Telnetモジュール」が必要なことがわかった。
ということで、まずは「Net::Telnet」を以下より入手しインストール。
http://search.cpan.org/CPAN/authors/id/J/JR/JROGERS/Net-Telnet-3.03.tar.gz
さて、ここからプログラミングです。
以下に「Net::Telnet」を使ったプログラム例が紹介されています。
□TELNETによるコマンド実行 - MASのページ
# お手軽な方法 use strict; use Net::Telnet; # 接続情報(環境に合わせて修正する) my $host = 'hostname'; # 接続ホスト名 or IPアドレス my $user = 'username'; # ユーザ名 my $pass = 'password'; # パスワード my $prompt = '/\[.+\]\$ $/'; # プロンプト(正規表現) my $telnet = new Net::Telnet( Timeout => 10, Prompt => $prompt, ); # ホストに接続してログインする $telnet->open($host); $telnet->login($user, $pass); # コマンドの実行 my @result; @result = $telnet->cmd("pwd"); print @result; # コマンドの実行 @result = $telnet->cmd("ls -l"); print @result; # 接続の切断 $telnet->close;
最初に気になったのが
って部分。use strict;
ここに関しては以下のサイトに詳しく乗ってます。
□iandeth. - Perl/CGI辞典 - 土井 毅さん 著 - にて use strict が推奨されていない件について
注目すべきは「ホストに接続してログインする」の
ここをfor文やforeach文でループさせて、$pass++やら正規表現やらを使い、$telnet->login($user, $pass);
ID及びパスワードを無作為入力させるスクリプトは理論上つくれるハズ。
あとは、それぞれのアルゴリズムをいかに解析していくか。
ま、この部分が一番難しくて奥が深いところなのでしょう。
実際は、サーバーのほうで連続してIDやパスワードを入力できない設定になっていたりするでしょうから、
ほぼ成功する可能性はゼロに近いと思います。
逆に言うとそういう設定にしておけば安全だと言うことです。
いずれにせよ、あまり詳しく調べたり実験したりするとあれなので、
もう、この件に関しては終わりにしたいと思います。