端口扫描这玩意我记得许多年前可是很火啊,随着防火墙和主动防御之类软件的普及,如今他的魅力已经大不如前了,不过在对于漏洞的利用上,端口扫描还是首当其冲的。以前也写过端口扫描,但是速度太慢,所以就此雪藏了。下面是我写的多线程扫描,有tcp连接和syn两种,看个人喜好吧。
#!/usr/bin/perl -w
use IO::Socket;
use Net::Ping;
use Thread;
sub t{
my ($ip,$minport) =(shift,shift) ;
$s=IO::Socket::INET->new("$ip:$minport") ;
if($s){
print "$minport is open/n" ;
$s->close;
}else{
print "$minport is close/n" ;
}
=abc
$syn=Net::Ping->new("syn");
$syn->{port_num}=$minport;
$syn->ping($ip);
if($syn->ack){
print "$minport is Opened!/n";
}else{
print "$minport is closeed!/n";
}
$syn->close;
=cut
}
$ip=<>;
chomp($ip);
$minport=<>;
chomp($minport);
$maxport=<>;
chomp($maxport);
my @tt;
for(;$minport<=$maxport;$minport++){
my $tt1=Thread->create(/&t,$ip,$minport) or warn "$!";
if($tt1){
push(@tt,/$tt1) ;
}
}
for $t1 (@tt){
$$t1->join;
}
代码不难,注释里的是syn连接,都是面向对象的语法,我在调试时遇到Thread->create创建线程失败,所以我加了if判断,至于失败具体原因就不得而知了.
文章不妥之处,还望各位多多指教。
本文介绍了一种使用Perl语言实现的多线程端口扫描技术,支持TCP连接和SYN扫描方式。作者分享了自己编写的端口扫描脚本,并解释了面向对象的语法及线程创建过程中可能遇到的问题。
16

被折叠的 条评论
为什么被折叠?



