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