Script em Python - Verificando se um site está infectado

Publicado por Luiz Vieira em 28/10/2013

[ Hits: 5.656 ]

Blog: http://hackproofing.blogspot.com/

 


Script em Python - Verificando se um site está infectado



Script em Python para verificar se um determinado site está infectado com algum malware.

Código

Há vários meses atrás, fiz um script em Python que verificava se determinado site estava infectado com algum Malware. Como base para essa verificação, o script consulta uma ferramenta gratuita da Sucuri.net, que é o SiteCheck.

Para que o script funcione, são necessárias duas coisas:
  1. Colocar o arquivo urls.txt no mesmo diretório onde estiver o script Python;
  2. E o beatifulsoup.py também, no mesmo local.

Para usá-lo, basta salvar o script como alguma-coisa.py, e executá-lo com o comando:

# python alguma-coisa.py

O script vai carregar todas as URLs que houverem no arquivo TXT e consultar o SiteCheck da Sucuri.

Segue abaixo o código em Python:

#Imports

import sys
import httplib
from BeautifulSoup import BeautifulSoup


USER_AGENT = "Mozilla/5.0 (Windows NT 5.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1"
PRAGMA = "no-cache"
ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"

def blacklist(dat):
    url = dat.replace("\n","")
    print "[*] Checking blacklist Database -> ",url
    type =None
    status = "[*] "
    host = "sitecheck.sucuri.net"
    path = "/results/"
    path +=url

    data = ""
    http = httplib.HTTP(host)

    http.putrequest("GET", path)
    http.putheader("Host", host)
    http.putheader("User-Agent", USER_AGENT)
    http.putheader("Accept", ACCEPT)
    http.putheader("Accept-Encoding", "gzip, deflate")
    http.putheader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7")
    http.putheader("Connection", "keep-alive")
    http.putheader("","\n")
    http.putheader("","\n")
    http.endheaders()

    http.send(data)

    errcode, errmsg, headers = http.getreply()

    f = http.getfile()
    html = f.read()

    soup = BeautifulSoup(html)
    tag = soup.findAll('b')
    for item in tag:
        if item.text != "Not Listed":
            if item.text != "Listed.":
                status += item.text
                status += "\n"
                status += "[*] "
    print status

empty = open('urls.txt','r')
if empty.read() == "":
    print "[*] No host found to test"
empty.close()

file_url = open('urls.txt','r')
line = file_url.readlines()
for url in line:
    print "#######################################################"
    print "##         Verificando a URL  ",url
    print "#######################################################"
    blacklist(str(url));
file_url.close()

Espero aproveitem.

E para quem quiser brincar, sinta-se à vontade para melhorar o script e usá-lo como quiser.

Outras dicas deste autor

GCat - Backdoor em Python

Extensões do Firefox para auditorias de segurança

Novo blog sobre segurança da informação

Como proteger seus dados no computador e smartphone?

Atualização do conteúdo da certificação LPI I e II

Leitura recomendada

Bradesco NetEmpresa no CentOS 7 64 bit (Firefox 64 bit + Java 64 bit)

Habilitando mais de 4 placas multi-seriais em kernel 2.6.13 ou superior

Título: Instalando e configurando wireless no Vector Linux 6.0

Tradução do OCS inventory NG para português

VirtualBox com USB, de uma vez por todas!

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts