Script em Python - Verificando se um site está infectado

Publicado por Luiz Vieira em 28/10/2013

[ Hits: 4.820 ]

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

Vídeos da palestra sobre Forense Computacional

Primeiro grupo de pesquisa de vulnerabilidades e desenvolvimento de exploits em língua portuguesa

Lançada a edição de número 3 da Revista Espírito Livre

Livros de TI online e gratuitos

Como burlar um proxy corporativo

Leitura recomendada

Crie discos de instalação para o Slackware [9-10]

Mldonkey no Slackware

Java no Fedora 16

Apt-spy - Otimizando o sources.list

Simples Pós-instalação do Void Linux com i3

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário