読んでみると
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やパスワードを入力できない設定になっていたりするでしょうから、
ほぼ成功する可能性はゼロに近いと思います。
逆に言うとそういう設定にしておけば安全だと言うことです。
いずれにせよ、あまり詳しく調べたり実験したりするとあれなので、
もう、この件に関しては終わりにしたいと思います。


