首页 网络安全 安全学院 查看内容

Ruby 实现端口扫描

2009-9-27 12:38 787 0

摘要: #!/usr/bin/ruby -w =begin quite simple connect scanner in ruby Shows open (reliable), c...
关键词: ports hosts end scanner port timeout scanning printed output like

#!/usr/bin/ruby -w =begin quite simple connect scanner in ruby Shows open (reliable), close and filtered. But the reliablity of the last two states depends of course on firewalling and the timeout interval you can set down. Uncomment or comment states you want or don't want to get printed on the screen. *supports scanning mutiple hosts/IPs (like www.heise.de,www.gulli.com) *supports multiple ports(like 12,45,53,165),ranges(like 20..85) or one single port(like 80) *support a ports file like http://insecure.org/nmap/data/nmap-services (just clean it with | grep /tcp ..) ZGlnaXRhbGJ5dGU= =end require 'socket' require 'timeout' class Scanner def initialize @hosts,@ports = Array($*) end def portarrange case @ports when /^.+[..]/ @ports = @ports.split("..") @ports = @ports[0].to_i..@ports[1].to_i when /^.+[,]/ @ports = @ports.split(",") else @ports = Array(@ports) end end def hostarrange case @hosts when /^.+[,]/ @hosts = @hosts.split(",") else @hosts = Array(@hosts) end end def output(state,port) printed = false portsfile = File.new("ports", "r") scanpat = "^.+ #{port}/tcp" begin portsfile.each_line do |line| if line =~ Regexp.new(scanpat) puts "#{state} : #{line}" printed = true end end puts "#{state} : #{port}" if printed == false ensure portsfile.close end end def scanning(hosts,ports) hosts.each do |host| begin puts "scanning #{host}:" ports.each do |port| begin Timeout::timeout(10){TCPSocket.new(host, port)} rescue Timeout::Error output("filtered",port) rescue # output("closed",port) else output("open",port) end end end end end end ##################### code start ##################### puts "no arguments past,correct usage:\nruby #{$0} [hosts] [ports]\n" if !ARGV[1] my_scanner = Scanner.new hosts = my_scanner.hostarrange ports = my_scanner.portarrange my_scanner.scanning(hosts,ports) ##################### eof #####################
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部