fbpx

Scan de portas com Python

O Python é a linguagem de programação muito utilizada em segurança da informação. Com ela é possível criar ferramentas, malwares e até mesmo simples scripts para automatizar a tarefa rotineira de um Pentester.

Seguindo essa ideia, neste artigo iremos criar uma ferramenta de verificação de portas utilizando o Python.

Como haverá demonstração de linhas de códigos, é necessário conhecer pelo menos o básico de programação Python para que possa compreender o que será demonstrado.

Caso, não seja habituado com a linguagem e/ou pentest, sugerimos estudar um pouco antes, conheça nossos Treinamentos de Cibersegurança onde você vai aprender muito sobre programação, pentest, entre outros assuntos importantes para se tornar um profissional qualificado.

Então o código para fazer um portscan em python é o seguinte:

#!/usr/bin/python3
# coding: utf-8

import sys
import socket

ipAddress = sys.argv[1]

for ports in range(1,65535):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    if s.connect_ex((ipAddress, ports)) == 0:
        print(f"Porta {ports} Aberta!")
        s.close()

Como podemos observar, o “import socket, sys” serve para importamos a biblioteca SOCKET, a qual será responsável por fazer uma espécie de ponte entre um computador e outro, ou seja, ele é o responsável por estabelecer a conexão entre dois computadores.

Já a biblioteca SYS, são os comandos de sistema operacional, ou seja, tudo que digitarmos em nosso sistema o Python será capaz de ser interpretado pelo Linux como se estivesse sendo digitado no terminal do Linux. Com isso é possível passarmos argumentos para o nosso script interpretar e processá-los.

Na sequencia, utilizamos o “for ports in range(1,65535):” este comando servirá para abrirmos uma espécie de laço de repetição,  fazendo com que todos os comandos dentro deste laço sejam executados 65535 vezes.

A variável “s” representa a criação do nosso SOCKET e  toda conexão feita pelo Python deve-se haver sempre um socket criado e declarado dessa maneira.

Depois de criarmos o socket, criamos uma condição que verifica se não há nenhum erro de conexão ao tentar estabelecer a conexão da nossa máquina com o alvo, que colocamos na frente no nome de nosso script, por isso “sys,argv[1]”.

Não havendo erro de conexão, o script verificará quais portas em nosso alvo estão abertas.

Executando o script

Após digitar as linhas de código, salvar o nosso script com o nome de portscan.py e dar a permissão de leitura e execução (chmod 755 portscan.py), para que possamos executá-lo:

python3 portscan.py + IP do host
Resultado final