Script em Python - Verificando se um site está infectado

Publicado por Luiz Vieira em 28/10/2013

[ Hits: 5.659 ]

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

Revista Espírito Livre - Ed. #008 - Novembro 2009

Como checar se há rootkits em seu sistema

Como detectar e prevenir escalada de privilégios no GNU/Linux

Análise de malware com Pyew

Script Ubuntu Perfeito para Ubuntu 9.04 Jaunty Jackalope

Leitura recomendada

Instalando o OpenSuSE a partir do Windows

Yaala - Yet Another Advanced Log Analyzer

Erro ao tentar instalar Manjaro Linux [Resolvido]

Diretórios do Linux

Bioinformática - Montagem de genoma com AMOS

  

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