Encontre Servidor Web Vulnerável, Captura de Banner em Python

Índice

Neste tutorial, vamos falar sobre Agarrando Banner, uma técnica utilizada para obter informações sobre os serviços encontrados na rede. Graças a isso podemos descobrir máquinas na rede que possuem serviços rodando com vulnerabilidades conhecidas, se quisermos verificar vulnerabilidades podemos ir para a seguinte página: CVE.

Para entender seu uso, faremos um exemplo, ele tentará verificar se um servidor web é vulnerável (vamos nos concentrar apenas na web neste tutorial). Vamos imaginar que estamos procurando 2 tipos de vulnerabilidades, então adicionamos as 2 linhas a seguir a um arquivo de texto (meu arquivo será chamado vulnerável.txt):

 Apache / 2.4.18 CVE-2016-4979 Apache / 2.3.20 CVE-2016-4438
Em seguida, coloco o código em Pitão, para a versão 3.X, e uma explicação é fornecida abaixo.
 import http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') vulnerável = open ("vulnerável.txt", "r") isVulnerable = Falso para serviço em vulnerável: s = serviço.split ("") if (s [0] no servidor): print (host, "tem serviço", s [0], "com possível vulnerabilidade", s [1]) isVulnerable = True if (not isVulnerable): print (host, "aparentemente nenhum servidor vulnerável ao que você está procurando")
Vamos ver agora uma explicação por partes do código, primeiro importamos a biblioteca http.client que vamos precisar dele:
 importar http.client
Em seguida, definimos o hospedar e estabelecemos a conexão, com um tempo esgotado 2 segundos.
 host = "localhost" http = http.client.HTTPConnection (host, tempo limite = 2)
Nosso próximo passo é fazer um Pedido de tipo HEAD, que não retornará o corpo (os dados, mas não precisamos deles para isso). E então obtemos a resposta.
 http.request ("HEAD", "/") server = http.getresponse (). getheader ('server')
Agora vamos abrir nosso arquivo de texto em modo de leitura (r) com as vulnerabilidades a procurar, e criamos uma variável booleana que nos ajuda a saber se a vulnerabilidade foi encontrada (nos ajudará a mostrar uma mensagem ou não no final).
 vulnerável = aberto ("vulnerável.txt", "r") esVulnerable = Falso
Neste momento faremos um loop, que percorrerá cada servidor vulnerável que colocamos no arquivo para verificar se algum é utilizado na página consultada. O método é usado dividir para quebrar a linha no servidor e vulnerabilidade, como você pode ver acima, o arquivo é separado por um espaço em branco.
 para serviço em vulnerável: s = service.split ("") if (s [0] no servidor): print (host, "tem serviço", s [0], "com possível vulnerabilidade", s [1]) isVulnerable = Verdadeiro
Por fim, fechamos o arquivo que abrimos e verificamos se encontramos vulnerabilidade, caso contrário, mostramos uma mensagem ao usuário para que seja informado.
 vulnerável.close () if (not isVulnerable): print (host, "aparentemente nenhum servidor vulnerável ao que você está procurando") 
Bem, vamos executá-lo em 2 alvos, o primeiro é solvetic.com:

E o segundo e último alvo é minha máquina, tenho um servidor Apache rodando que pode estar vulnerável, devido à versão do Apache que usa.

Se quisermos saber algo sobre a vulnerabilidade, na página que deixei no início você pode pesquisar o CVE que você pode ver no terminal: CVE-2016-4979. Você vai clicar em Pesquisa e donwloads e insira o identificador em Pesquisar cópia mestre de CVE, na caixa abaixo do texto pelo identificador CVE e clique em Enviar.

A vulnerabilidade aparecerá e você poderá ver uma explicação, referências, datas, etc.

Aqui o tutorial termina, esta técnica pode ser aplicada para pesquisar serviços vulneráveis ​​não só para servidores web, você também pode verificar vários hosts ao mesmo tempo, para não ter que iniciá-lo várias vezes, aqui por simplicidade foi direcionado para um servidor web e um único host. Você também pode fazer Banner Grabbing com a ajuda do Telnet ou Netcat, aqui está uma imagem do uso do Telnet para remover o servidor do meu localhost:

ObservaçãoNo Windows, o Telnet está desabilitado por padrão, se você quiser ativá-lo, siga o tutorial a seguir.

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave