fbpx

Scan de portas com Python

O Python é a linguagem de programação mais utilizada em segurança da informação. Com ela é possível criar ferramentas hacker, 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.

Destacamos ainda nosso Curso de Fundamental Hacking, no qual é possível aprender muito sobre programação, pentest, entre outros assuntos importantes para se tornar um profissional qualificado.

Para podermos fazer qualquer script em Python no Linux, começaremos escrevendo a seguinte linha:

#!/usr/bin/python

Esta primeira linha, importará o python para interpretar os comandos que serão digitados nas linhas seguintes.

Posteriormente, escreveremos as seguintes linhas de códigos:

import socket,sys

             for ports in range(1,65535):

                        s = socket.socket(socket.AFF_INET, socket.SOCK_STREAM)

                        if s.connect_ex((sys.argv[1], ports)) == 0:

                                   print “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 de duas maneiras:

./portscan.py + IP do host que desejamos escanear 
ou 
python portscan.py + IP do host que desejamos escanear

Veja a execução do nosso script abaixo em que o IP utilizado como argumento para foi de um roteador local:




Destaques

Menu