رفتن به مطلب
انجمن تیم امنیتی گارد ایران

ارسال های توصیه شده

اینم یک پورت اسکنر که به زبان شیرین perl نوشته شده

#!/usr/bin/perl
# ####################################################################
# FORKING PERL PORT SCANNER
# By Jonathan Worthington
# This script is made available under the sames terms as Perl itself.
# #################################################################### 

use strict;
use warnings;
use IO::Socket::INET;

#Auto-flush.
$| = 1;

#Get host.
my $host = $ARGV[0];

#Parent thread has no parent.
my $parent = 0;

#We need a place to store child PIDs.
my @children = ();

#Port scan host.
print "Scanning $host...\n";
my $port;
FORK: for ($port=1; $port<=65535; $port++) {
	#Fork.
	my $oldpid = $$;
	my $pid = fork;
	
	#If fork failed...
	if (not defined $pid) {
		#If resource is not available...
		if ($! =~ /Resource temporarily unavailable/) {
			#Reap children.
			&DoReap;
			
			#Retry this port.
			$port --;
		} else {
			#Otherwise, show the error.
			die "Can't fork: $!\n";
		}
	} elsif ($pid == 0) {
		#This is the child. Save parent.
		$parent = $oldpid;
		
		#Clearup kids table.
		@children = ();
		
		#We don't want this thread to fork any more.
		last FORK;
	} else {
		#This is the parent. Store child pid to wait on it later.
		push @children, $pid;
	}
}

#If this is a child (i.e. it has a parent)...
if ($parent) {
	#Attempt to connect to $host on $port.
	my $socket;
	my $success = eval {
		$socket = IO::Socket::INET->new(
			PeerAddr 	=> $host, 
			PeerPort 	=> $port, 
			Proto 	=> 'tcp'
		) 
	};
			
	#If the port was opened, say it was and close it.
	if ($success) {
		print "Port $port: Open\n";
		shutdown($socket, 2);
	}
	
	#Exit.
	exit 0;
} else {
	#If we're not the kid, we're the parent. Do a reap.
	&DoReap;
}

#This sub is the reaper.
sub DoReap {
	while (my $child = shift @children) {
		waitpid $child, 0;
	}
}
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

انجمن تیم امنیتی گارد ایران

تیم امنیتی گارد ایران یک گروه مستقل است که قوانین آن با خط مشی جمهوری اسلامی ایران مغایرت ندارد. تیم امنیتی گارد ایران از سال 1393 فعالیت خود را آغاز کرد و هدف این تیم تامین امنیت سایت ها و سرورهای ایرانی است. تیم ما همیشه برای دفاع از مرزهای سایبری سرزمین عزیزمان ایران آماده است.

شبکه های اجتماعی

×
×
  • اضافه کردن...