• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kratos

[Pyton] Super-básico Honeypot

1 mensagem neste tópico

Tem uns codes meus, de uns meses, chega a ser hilário...

Este, por exemplo, é um (quase..heeh), super-ultra-mega simples Honeypot:

# -*- coding: ISO-8859-1 -*-
# HONEYpy by: Kratos

from socket import *
import string
import time
import winsound
import tkMessageBox
from Tkinter import *

print
logo = """
               _   _  _____  _   _  ___    _     _             
              ( ) ( )(  _  )( ) ( )(  _`\ ( )   ( )             
              | |_| || ( ) || `\| || (_(_)`\`\_/'/'_ _    _   _
              |  _  || | | || , ` ||  _)_   `\ /' ( '_`\ ( ) ( )
              | | | || (_) || |`\ || (_( )   | |  | (_) )| (_) |
              (_) (_)(_____)(_) (_)(____/'   (_)  | ,__/'`\__, |
                                                  | |    ( )_| |
                                                  (_)    `\___/'

by Kratos
"""
print logo
print

var32 = '\032'

# cria um socket basico.
sock = socket(AF_INET, SOCK_STREAM)

# Define um banner (texto), você pode mudar.
sendinfo1 = "220 Desktop Microsoft SMTP MAIL Service, Version 6.0.2600.1106 ready at " + time.strftime("%a, %d %b %Y %H:%M:%S %Z") + "\n"


HOST = raw_input("Insira um IP (host) para ligar o socket: ")
port = raw_input("Insira uma PORTA (port) para ligar o socket: ")
PORT = int(port)

print
print var32, "Aguarde, criando socket...\n"
time.sleep(2)

try:

sock.bind((HOST, PORT)) # Liga o socket
sock.listen(1) # Aguarda até haver uma conexão

winsound.PlaySound("ban.wav", winsound.SND_FILENAME)
print var32, "Socket criado com sucesso !!!\n"
print

time.sleep(1)
print var32, "Escutando o HOST " + HOST + " na porta " + port + "."
print "..."
print

(incomingsocket, address) = sock.accept() # Aceita a conexão
winsound.PlaySound("alarm.wav", winsound.SND_FILENAME)
incomingsocket.send(sendinfo1) # Emite seu banner (texto)

straddress = str(address) # Converte o endereço para uma string

testlist = string.split(straddress, ",") # ""
gethost = string.split(testlist[0], "'") # ""
getaddr = string.split(testlist[1], ")") # substitui os caracteres

host = gethost[1] # Variavel declarada

incomingport = int(getaddr[0]) # Remove apenas a porta da lista


# define nosso Aviso
sendinfo2 = "Acesso ilegal deste usuario, seu IP [" + host +"] foi registrado. "

# Imprime as informações da conexão de entrada.

def danger():
	danger = """Hove uma tentativa de conexão\nHOST: %s\nPORT: %s\n""" %(host,PORT)
	root = Tk()
	label = Label()
	label.configure(width=50, text=danger)
	label.grid(column=0,row=0)
	button = Button()
	button.configure(width=20,text="Sair",command=root.destroy)
	button.grid(column=0,row=1)
	root.title(" HONEYpy ")
	root.mainloop()

print var32, "Tentativa de conexao na porta", PORT, "Para", host, ":", incomingport

# Alerta de conexão
danger()	

# Aguarda os dados
data = incomingsocket.recv(1024)

# Emite o aviso
incomingsocket.send(sendinfo2)


def save(event=None):
	hour = time.strftime("%a, %d %b %Y %H:%M:%S %Z")
	file = "HoneyLog.txt"
	inlog = """
\n %s \n Log: %s \n Tentativa de conexão na Porta: %s Para: %s. \n
""" %(hour,file,PORT,host)
	if file:
		f = open(file,"a")
		f.write(inlog)
		f.close()


# Fecha o socket
incomingsocket.close

print
print var32, "salvando os logs..." # Salva os logs
save()
print var32, "OK\n"	


except error, e:
print var32, "Erro de socket:", e
tkMessageBox.showwarning("HONEYpy", "Ocorreu algum erro com a conexão")
print var32, "	Erro: Problemas no uso geral do (HONEYpy)...\n"
winsound.PlaySound("alert.wav", winsound.SND_FILENAME)	
print var32, "	Nao foi possivel se conectar a " + HOST + ": " + port
print
sock.close()

deem uma olhada, por mais básico que seja, é assim que começa.

Kratos :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora