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.