ポートスキャンプログラムの構造解説と作成 Perl
11月 19, 2009 — 20:27

原本に一部間違いや遠回りをしていると思われる点がありましたので修正してあります。

#!/usr/bin/perl
#-------------------------------------------------#
# Name: Port Scan Program
# 原作: Perl scan port
# (URL: http://www.perlmonks.org/?node_id=806461)
# 解説: ORBIT SPACE
# 目的: ポートスキャンプログラムの構造の
#       理解とモジュール利用方法等の理解
#       を行う為に今回構造の解説とプログ
#       ラムの変更を行いました。
#-------------------------------------------------#

#モジュール使用宣言
use IO::Socket;

# Very Simple Scan Port Write in Perl

# MAIN PROG

print "Perl Scan Port V1.0nn";

# User Var

# perl port.pl 127.0.0.1のように入力されたIPアドレスを取得
my $iptarget =  $ARGV[0];
unless($ARGV[0]){die "MISSING IP ADRESSnn";}

print "Interesting ports on $iptargetnn";

print "PORT // STATE // SERVICEn";

# Scanning fonction
# ポート番号をインクリメントして作成する。
for(my $iport = 0; $iport != 65537; $iport++){
# 指定されたIPアドレスのポートへ接続
if (my $remote = IO::Socket::INET->new(
   	Proto => "tcp",
   	PeerAddr => $iptarget,
   	PeerPort => $iport,
   	Timeout => "5")){

	# サービス内容(http,ftp,ssh等)の表示し格変数へ格納
	(my $name, my $aliases, my $port_number, my $protocol_name) =+
	getservbyport($iport , "tcp");

	# サービス名が不明な場合NAを格納
	unless($name){$name = "NA";}
	# 出力
	print "$iport     open      $namen";
	# 切断
	close($remote);
	}
}

print "Scan Finishn";

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)