Scanner de Portas Java

Olá, neste post gostaria de mostrar um programa que efetua o scan de portas em algum computador ou servidor dentro da rede, o que é de grande utilidade para aprimorar a segurança das informações que trafegam internamente com o fechamento de portas desnecessárias, dimininuindo assim a vulnerabilidade da rede local. Também é útil para a verificação se o firewall ou outras medidas de segurança estão bloqueando determinado serviço que necessite de conexão livre com a Internet para funcionar corretamente, como é o caso de aplicações remotas que acessam um banco de dados ou sockets.

Antes de mostrar como o programa funciona, gostaria de deixar claro que não serei responsável por todo e qualque malefício que o uso deste programa pode ocasionar, pois o intento destepost mostrar um pouco dos recursos que a plataforma Java oferece para aplicações distribuídas e para a gestão de segurança da informação.

import java.io.*;
import java.net.*;
import javax.swing.*;

/**
* Scanner de portas
* OBS: Não me responsabilizo pela má utilização deste código-fonte
* pois o objetivo do mesmo é para fins de estudo.
*/
public class PortScanner
{
    static String ip;
    static String aux;
    static int portMax;

    public static void main(String args[]) {
       portScan();
    }

    public static void portScan()
    {
       ip = JOptionPane.showInputDialog(null, "Informe o IP do computador:");
       aux = JOptionPane.showInputDialog(null, "Entre com o número de portas a ser scaneado:");

       portMax = Integer.parseInt(aux);

       System.out.println("Scaneando portas, por favor aguarde"+"\n");

      try{
          // Inet address  é um dos identificadores de um computador ou dispositivo
          // conectado à rede;
          // Obtém o endereço com base no IP informado
          InetAddress addr = InetAddress.getByName(ip);
          // Obtém o nome do computador/dispositivo pelo endereço IP informado
          String hostname = addr.getHostName();

          for (int i= 0; i < portMax; i++) {
              Socket s = null;

              try{
                 // Tenta abrir uma conexão na porta 'i'
                 s = new Socket(addr,i);
                 // Caso consiga..imprime na tela
                 System.out.println("A porta " + i + " está aberta em: " + hostname);
             } catch(IOException ex){
             }
             finally{
                try{
                   // Fecha o socket
                   if (s != null)
                      s.close();
               }
               catch(IOException ex){}
            }
         }
     }
     catch(UnknownHostException ex){
        System.err.println(ex);
     }

     System.out.println("\nScanner finalizado.\n");
}
}

Para compilar esta classe, abra o prompt de comando do seu sistema operacional, e digite as seguintes linhas:

javac PortScanner.java

E por fim para executar, digite:

java PortScanner

 

Você poderá efetuar o download deste arquivo aqui.

 

Espero ter ajudado, até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s