Gerando um port scanner rápido com Python

Olá Devs!

Uma necessidade que podemos ter a qualquer momento é verificarmos a segurança dos nossos ambientes. E falar de segurança é um mundo amplo e complexo, que vai muito além de verificarmos portas TCP ou usarmos um SSL, TLS, enfim.

Nesse post, porém, a idéia é bastante simples e nada arrojada, mas com o intuito também de demonstrar a praticidade do Python usando socket e o quanto se pode ganhar usando essa grandiosa linguagem para coisas simples do dia a dia.

Utilizo como IDE o PyCharm, da JetBrains, versão community, mas cabe aqui dizer que IDE é como vestuário, cada um escolhe o seu. A facilidade do PyCharm para mim é fazer tudo pela própria IDE, instalar dependências com o botão direito do mouse, por exemplo.

Sendo assim, caso queira fazer um simples port scanner para verificar se seu servidor está com portas abertas para o mundo, podemos criar um arquivo, por exemplo, “scan.py” e utilizar o código abaixo. Importante: para executar é necessário obviamente instalar o python, saiba mais em https://python.org.br/instalacao-linux/.

import socket

ip = input('Digite o IP ou URL: ')
ports = range(65000)

for port in ports:
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.settimeout(0.6)
    code = client.connect_ex((ip, port))
    if code == 0:
        print(str(port) + ' Aberta')
    else:
        print(str(port) + ' Fechada')

Uma vez gravado este aquivo, executando com o python, será solicitado o IP ou URL que você quer fazer o scan:

Notem que em poucas linhas e usando a sintaxe otimizada do Python, são possíveis implementações rápidas e eficientes.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *