Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Temas - Kirari

Páginas: [1]
1
Python / Cifrado Katya
« en: Julio 15, 2020, 03:11:21 am »
Prefacio

Muy buenas a todos! Espero que estén muy bien.

Hoy les traigo un tipo de cifrado que he inventado, teniendo algunos procesos ya existentes como el CBC para mejorar el sistema de encriptado. No soy matemático, por lo que las fórmulas que he escrito para el mismo no son nada del otro mundo, son bastantes simples, incluso combinándolo con el cifrado afín. Así que no hay nada de magia por detrás (aunque pueden verlo así si quieren).

Así que sin más preámbulos, comencemos.


¿Que es Katya?

Katya es un algoritmo de cifrado simétrico simple desarrollado en Python.

Cómo funciona el cifrado?

Debido a que el proceso es bastante largo de explicar por acá, les invito a leer la documentación completa que les dejaré en un rato, para así no alargarme demasiado.  ;D ;D

Cómo descargar e instalar dependencias?

Para instalar las dependencias, tipeamos lo siguiente:

Código: Bash
  1. pip install sympy

Al instalar las dependencias, como siempre, clonamos el repositorio y lógicamente, accedemos al directorio:


Código: Bash
  1. git clone [url]https://github.com/Kirari-Senpai/Katya-Crypt.git[/url]
  2. cd Katya-Crypt/
  3.  

Documentación completa: https://github.com/Kirari-Senpai/Katya-Crypt

Cómo se usa Katya?

Acá viene lo divertido  ;D. Abrimos nuestro intérprete de Python e importamos el módulo Katya:

Código: Python
  1. from katya import Katya
  2.  

Creamos el objeto katya:

Código: Python
  1. katya = Katya()
  2.  

Establecemos el abecedario (o como quieran llamarlo :p):

Código: Python
  1. katya.set_ABC()
  2.  

Se nos creará el siguiente abecedario:



Nota: por defecto el valor del método está en 0, por lo que si desea crear un ABC personalizado, entonces deberá pasarle una lista con una longitud de 91 elementos y los mismos no deben estar repetidos.

Ahora que tenemos todo preparado, empezaremos con el proceso de cifrado.

Cifrado

Para encriptar un mensaje, usaremos el método encrypt:

Parámetros:

- Cadena a cifrar
- Contraseña (menor o igual longitud que la cadena a cifrar)
- Vector de Inicialización (por defecto se genera de manera aleatoria, pero puede hacerlo usted mismo, aunque no es recomendable).


Código: Python
  1. msg = katya.encrypt("Hola Mundo!","katya")
  2.  

Salida:



Al momento de cifrar el mensaje, se generará el IV. Para poder verlo, solo escriba:

Código: Python
  1. katya.iv
  2.  

Se verá parecido a este, en longitud me refiero:



El mismo es importante, ya que servirá para descifrar el primer bloque del mensaje. Si no sabe a que me refiero, le dejo un link para que vea de que trata, ya que como dije en el prefacio, utiliza el modo de operación CBC:

https://es.wikipedia.org/wiki/Modos_de_operaci%C3%B3n_de_una_unidad_de_cifrado_por_bloques


Volviendo al tema de Katya... Vieron que es bastante simple? Pero eso no es todo, más adelante les mostraré otras funciones que tiene el mismo. Ahora vamos a desencriptar.

Descifrado

Para desencriptar el mensaje, usaremos el método decrypt():

Parámetros:

- Cadena *
- Contraseña *
- Vector de Inicialización (IV) usado para cifrar el primer bloque del mensaje *
- seed (lo veremos en la siguiente sección)
- subkey1 (lo veremos en la siguiente sección)
- subkey2 (lo veremos en la siguiente sección)


Código: Python
  1. katya.decrypt("¿bbd¡#¿bch¡e¿bfa¡)¿bcg¡c¿bbh¡Y¿bbg¡*¿bcg¡X¿beh¡U¿bcg¡i¿bbd¡`¿bbd¡%¿bcg¡G¿bfb¡B¿bcg¡O¿bbg¡´¿bbd¡.¿bcg¡X¿bfa¡4¿bcf¡S¿bbh¡O","katya",katya.iv)

Salida:




Necesito más seguridad, es posible?

Por supuesto! Hay varios métodos:

Método random_ABC() y set_seed()

Con el método random_ABC() alterarás el orden original del alfabeto, por lo que darás más dificultad al atacante para saber cuál es el orden correcto. De modo que al individuo que intenta desencriptar el mensaje, no le servirá de nada obtener la contraseña si no sabe el orden de los elementos.

La salida del mismo es la semilla, es decir, el número en el cual estará ordenado tu ABC:




Lo mismo podemos hacer con el método set_seed(). A diferencia del anterior, este es personalizado:



Ejemplo sencillo



Y en efecto, se puede apreciar que la cadena de cifrado no es la misma que mostramos en el ejemplo anterior. Ahora, a descifrar, le pasamos como argumento seed, el valor entero obtenido:



El mismo ejemplo se puede aplicar también para el método set_seed().

Advertencia: hay que considerar que si pierde el numero de orden o semilla, entonces, no podrá recuperar la información al momento de querer descifrarla.


Método subkeys()

Con este método se puede establecer las dos subclaves de las que estábamos hablando antes. Bueno, con la primer subclave estableceremos un número coprimo con 91 y con la segunda un número de desplazamiento para la cadena misma. Veamos un ejemplo sencillo:



Los parámetros del método son:

Parámetros

- subkey1
- subkey2

Si no tiene idea que número coprimo utilizar, no se preocupe, no tiene que calcular nada, puede utilizar el método show_possible_subkeys():

Código: Python
  1. katya.show_possible_subkeys()
  2.  
  3. [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 50, 51, 53, 54, 55, 57, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90]

Los valores de la subclave 2 debe ser de 1 a 91.

Para desencriptar, solo pasamos los argumentos de la siguiente manera:


Código: Python
  1. katya.decrypt(msg,"katya",katya.iv,subkey1=80,subkey2=10)

Muestra



Si bien este último método no es muy seguro, se puede combinar con los métodos anteriores y así mejorar la seguridad. Eso suena bien eh? :o

Encriptar y desencriptar archivos

Advertencia: se recomienda utilizar el método reset_all() para reestablecer todos los valores (iv,subkeys,ABC) a su estado original para evitar conflictos al momento de cifrar los archivos. Esto es para que parezca que empieza de 0.

Katya nos permite cifrar archivos de una manera muy sencilla:

Código: Python
  1. katya.file_encrypt("ruta_archivo","tu_password")

Al terminar el proceso, al archivo se le añadirá la extensión .katya y además se creará otro archivo con extensión .key donde se almacenará tu contraseña, a este último debes guardarlo en un lugar secreto.

Crearé un archivo de prueba llamado testing.txt con el contenido de "Hola Mundo!":



Y empiezo a cifrar:

Código: Python
  1. katya.file_encrypt("testing.txt","katya")



Para descifrar:

Código: Python
  1. katya.file_decrypt("testing.txt.katya","katya.key")

La salida final será, obviamente, el contenido descifrado, y el archivo .key, se eliminará.

Nota: para file_decrypt() se pueden utilizar los mismos parámetros que el descifrado común.


Mostrar mensajes cifrados de manera elegante

Realmente este método no es importante, es solo para mostrar en pantalla el mensaje cifrado de una forma más clara, nada del otro mundo :p El fin, se usa de la siguiente manera:


Código: Python
  1. print(katya.elegant(msg))



En este ejemplo, cifré el siguiente mensaje:

Código: [Seleccionar]
Hola Mundo! Katya es un cifrado simétrico muy simple. Saludos a todos!
Final

Bueno compañeros, espero que les haya gustado  ;D. Simplemente después de un parcial, quise relajarme un poco, y se me vino a la cabeza esto, así que decidí programarlo y plasmarlo en el foro jaja.

Falta mucho por mejorar, pero se irá viendo poco a poco, cualquier aporte al mismo, es bienvenido!

Saludos!
-Kirari

2
Hacking / Lucrecia - Honeypot FTP
« en: Marzo 25, 2020, 02:47:21 pm »
Lucrecia - Honeypot FTP




Buenas a todos Underc0ders! Como están? Espero que muy bien  ;D

Mis disculpas por haber publicado el post anteriormente, fue un mal error de tipeo y le di a publicar.

Hoy les traigo una herramienta  llamada Lucrecia. Esta es un honeypot con servicio FTP fácil de usar desarrollada en Python. Pero antes, para los nuevos, les daré una breve explicación de lo que es un honeypot.



¿Qué es un Honeypot?

Un honeypot es un sistema trampa o señuelo que sirve para atraer atacantes. Cuando decimos que es un sistema trampa, nos referimos  a que está expuesto a ser atacado por un tercero.
Esta no es una solución de seguridad, es solo una herramienta para entender las técnicas que usan los atacantes en un sistema y así poder idear planes para mejorar las medidas de
protección de las empresas.

¿Qúe tipos de Honeypots existen?

Hay tres tipos de honeypots dependiendo la interacción que tenga el honeypot con el atacante:

- Baja interacción: en estos casos el honeypot no son servicios reales sino que se encarga de emular un servicio, una aplicación o un sistema que es vulnerable. No dan acceso al atacante,
  están en sistemas operativos emulados, con riesgos bajos, datos limitados a solo los intentos de conexión, con una fácil configuración y mantenimiento.

- Media interacción: se aumenta la relación entre el sistema y el atacante. En este caso se emulan servicios que responden al atacante, que puede llegar a conseguir acceso a recursos falso como pueden ser un
  servidor de FTP o un SSH. En definitiva, los honeypots de media interacción dan acceso limitado al atacante, están en sistemas operativos emulados, con riesgo medio, con una recolección de datos variable según
  los conocimientos del atacante, una configuración baja/media y un mantenimiento medio.

- Alta interacción: En esta ocasión están construidos con máquinas reales con un sistema operativo vulnerable real que son ofrecidos a los atacantes. Son colocados en la red interna de la organización en producción
  y aunque presentan un alto riesgo, cuando detectan actividad, suele ser importante. En si, dan acceso total al atacante, están en sistemas operativos reales, con riesgo alto, con una recolección de datos total, y una
  configuración y mantenimiento difícil.

Nota: En caso de Lucrecia Honeypot FTP, es de media interacción.

Para más información acerca de honeypots:

- https://es.wikipedia.org/wiki/Honeypot
- https://honeysec.blogspot.com/2017/01/deteccion-de-honeypots.html



Dejando de lado la teoría, pasaré a cómo usar Lucrecia...

Clonar repositorio e instalar dependencias

Código: [Seleccionar]
git clone [url]https://github.com/Kirari-Senpai/Lucrecia.git[/url]
cd Lucrecia/
pip3 install -r requirements.txt

Configurar el servidor a través del archivo "server.conf"

Abrimos el archivo "server.conf" con el editor que les parezca más cómodo. Entonces editan como más les guste:

Código: [Seleccionar]

[DEFAULT]

HOST = 0.0.0.0
PORT = 21


[FTP]

USER = lucrecia
PASSWORD = toor
CURRENT_DIRECTORY = /home/lucrecia/ftp/
MSG = Welcome to Lucrecia's FTP server (vsFTPd 3.0.3)
DIRECTORY_FILES = client.py,test.c,prototype.c



Constantes FTP:

- USER,PASS: usuario y contraseña que utilizarán para el servidor FTP.
- CURRENT_DIRECTORY: es una ruta de *directorio actual* falsa.
- MSG: mensaje de bienvenida al momento de conectarse al servidor.
- DIRECTORY_FILES: archivos falsos que se mostrará al atacante.


Configurar el servidor a través de argumentos

Para poder configurar, primero debes pasarle como argumento el host. En esta imagen se ven ejemplos de como se utiliza:



El parametro "-h" es obligatorio si es que se quiere configurar de esta manera, en cuanto a los otros no.


Iniciar Honeypot

Para iniciar el honeypot utilizando el archivo, utilizaremos lo siguiente:

Código: [Seleccionar]
sudo python3 lucrecia.py -f server.conf

Y por argumentos, haremos esto:

Código: [Seleccionar]
sudo python3 lucrecia.py -h 192.168.0.18 <parámetros opcionales>





Escaneo básico con NMAP

Al hacer un escaneo básico con Nmap, vemos que el puerto 21 con servicio FTP está abierto:



Accediendo al servidor trampa

Ahora como atacantes, intentaremos entrar al servidor, mediante un ataque de diccionario, utilizaremos Hydra como ejemplo:



Y como podemos ver, se ha encontrado las credenciales para acceder.

Mientras tanto, del lado del servidor, obtendremos esto:



Se ha registrado toda actividad de login del atacante.

Ahora bien, el atacante accederá con las credenciales encontradas:



Lado del honeypot:



Bien, ahora el atacante comienza a ejecutar comandos libremente pensando que está en un servidor FTP genuino:



Mientras que en el servidor se ve su actividad:



Como el programa todavía sigue en desarrollo, entonces hay algunos comandos que no se podrán ejecutar, por lo que les aparecerá un permiso denegado:





Está claro que el atacante no va a poder hacer modificaciones de los archivos o directorios, porque son completamente falsos, pero trabajo en eso para una emulación mucho mejor.

Si el atacante se desconecta, se avisará también al servidor:



Adicionalmente, se creará un log con toda la actividad del intruso para que podamos revisarla cuando queramos:





Bueno compañeros, eso es todo por hoy. Sé que le falta muchas cosas por hacer, pero se irá de poco a poco. Se está tratando de implementar una pantalla de monitoreo para que sea mucho mejor el seguimiento de actividades.

Espero que haya sido de su agrado  ;D
Saludos!
Kirari-

3
Hacking / Invasores - Un C&C para crear una botnet sencilla | Parte I
« en: Marzo 06, 2020, 09:59:09 pm »





Muy buenas a todos! La verdad es que no recuerdo haber escrito un post acá, pero supongo que es la primera vez. :)

Bueno, antes de empezar quiero aclarar que a este proyecto lo deje pausado hace bastante, por lo que puede que falle en algunas ocasiones. Pero aún sigue en fase de desarrollo, desconozco cuando lo seguiré, pero creo que será dentro de poco. ;D

Así que sin más preámbulos, comencemos con lo bueno…

¿Qué es Invasores 2e?

Invasores 2e es un servidor de C&C (desarrollado en Python) para armar una botnet simple.


¿Pero por qué le pusiste “Invasores 2e”?

Bueno, simplemente el “Invasores”, porque quise darle al C&C un toque alienígena, con mensajes, música, etc. Más que un servidor de este tipo, le quise dar un estilo de videojuego, pero ya saben cual es la realidad jaja. En cuanto lo del “2e”, es solo porque hice varias versiones, desde la “2a” hasta esta. Y ahora posiblemente haga la “2f” que es con entorno gráfico.

Bien, ahora ¿podés explicarme cómo funciona?

Claro, pero primero descarga el programa, lo puedes hacer entrando al siguiente link:

https://github.com/Kirari-Senpai/invasores-2e

De ahí, vas “Clone or Download” y selecciones “Download ZIP”.

O puedes también clonar el repositorio:

Código: [Seleccionar]
git clone [url]https://github.com/Kirari-Senpai/invasores-2e.git[/url]
cd invasores-2e/

Una vez hecho lo anterior, vamos a instalar las dependencias, hacemos lo siguiente:

Código: [Seleccionar]
pip3 install -r requirements.txt

Puede que el pip varíe según como hayan instalado Python, yo de por sí lo tengo como pip3.
Ahora bien, llega lo bueno.


Configurar el servidor
No hay muchas configuraciones para hacer por ahora en Invasores, por lo que solo se puede configurar lo que es la IP y el puerto del servidor. Para hacerlo:

Código: [Seleccionar]
cd server/core/

Una vez en ese directorio, con el editor que quieran, abran el archivo "config.py", por ejemplo, yo lo haré con vim:

Código: [Seleccionar]
vim config.py

Ahí modificaremos las variables IP y PORT con la de nuestra PC, guardamos y listo.
Luego seguimos con el cliente.

Configurar el cliente

Para el cliente hacemos los mismos pasos que la vez anterior:

Código: [Seleccionar]
cd server/core/

Una vez en ese directorio, con el editor que quieran, abran el archivo "config.py", y el resto ya lo saben :)

Código: [Seleccionar]
vim config.py

Ahí modificaremos las variables IP y PORT del servidor, guardamos y listo.

Configuraciones extra para el cliente

Otra pequeña configuración es el de la persistencia:

Código: [Seleccionar]
NOMBRE_MALWARE = "lsass.exe"        # Acá podrán cambiar el nombre del malware que será copiado para obtener persistencia
RUTA_MALWARE_DESTINO = tempfile.gettempdir() + "\\" + NOMBRE_MALWARE    # La ruta donde se copiará el malware. Por defecto, se copiará en los archivos temporales del usuario
NOMBRE_REGISTRO_MALWARE = NOMBRE_MALWARE[:-4]   # Nombre que tendrá el registro de autoejecucion del malware. Por defecto lleva el nombre original del programa

Ahora que está todo listo, podremos seguir.

Crear ejecutable

Antes de atraer a la víctima, necesitamos crear un señuelo, con el cual atraeremos y controlaremos al capturado. Para esto, hacemos lo siguiente:

Código: [Seleccionar]
pyinstaller --noconsole --onefile client.py

** Dependiendo tu sistema operativo, puede que el ejecutable sea “./client” ó “client.exe”**
** Otra dato, es que si por ejemplo al señuelo lo vás a crear en otro sistema, es que allí también, instales las dependencias, porque el ejecutable traerá problemas. **


Bien ahora que aclaramos todo lo de la configuración, podemos seguir con el núcleo.

Comenzar con la invasión

Hacemos lo siguiente:

Código: [Seleccionar]
cd server/
python3 invasores.py


Ahora si ¿me puedes explicar cómo funciona o qué hace?

Oh cierto! Bueno antes de empezar con la acción, no podemos operar con alguien si no la abducimos, por tanto, se realizará lo siguiente:

  • Abducción automática

Cuando hayamos raptado al individuo, podremos hacer diferentes cosas:

  • Manejarlo a nuestro antojo mediante una shell
  • Subir y descargar archivos
  • Screenshot
  • Persistencia
  • Autoremoverse
  • Deshabilitar administrador de tareas


Técnica de captura de humanos



Abducción automática
Tus compañeros de nave atraparán terrícolas, sin necesidad de que tu esperes por ellos. En pocas palabras, la tarea para aceptar conexiones, correrá en segundo plano.

Abducción en vivo
Accediendo al menú de abducciones, podremos solicitar ver en vivo la captura de humanos.



Laboratorio

Ver a los individuos que hayas raptado

Dentro del menú laboratorio, simplemente con tipear "listar" podrás ver a todas las personas que hayas capturado en el camino.



Manipulación alienígena

Permite tomar el control de un cuerpo en específico para operar. Esto se hace mediante el comando:

Código: [Seleccionar]
manipular <id>



Asesinar basura humana

Una vez que la persona no te haga más falta, puedes eliminarla de tu lista con el siguiente comando:

Código: [Seleccionar]
matar <id>



Módulos para operar con el individuo

Estas están disponibles en el menú de "control total", una vez se haya ejecutado el comando de Manipulación alienígena:

Shell
Devuelve una shell.



Subir y descargar archivos

Claramente como lo dice el subtitulo, podrás subir cualquier archivo de tú máquina al del equipo víctima. Igualmente vas a poder descargar cualquier archivo del secuestrado.

Código: [Seleccionar]
subir "<Ruta origen completa>" "<Ruta destino completa>"



Código: [Seleccionar]
descargar "<Ruta origen completa>" "<Ruta destino completa>"



Screenshot

Si quieres pruebas de que la víctima no te engaña, toma capturas de pantalla para corroborar sus acciones.



Instalarse

Podrás copiarte en los registros del sistema para obtener persistencia.



Remover

Una vez que hayas acabado con la víctima, puedes eliminar todo tipo de rastro del bicho implantado en el sistema.



Deshabilitar administrador de tareas

La víctima tratará de librarse de tí, pero no será muy fácil. Podrás deshabilitar el administrador de tareas para evitar que el cierre tu actividad en su interior.



Persistencia

Podrás copiarte en los registros del sistema para obtener persistencia.



Autoremover

Una vez que hayas acabado con la víctima, puedes eliminar todo tipo de rastro del bicho implantado en el sistema.



Purga masiva

Se hace una limpieza completa en todas las víctimas para no dejar rastros, para posteriormente eliminarlos. Para hacerlo, se utiliza el comando:

Código: [Seleccionar]
destruirlos



Próximamente en Invasores

Netcat

Si estabas dudando de esto, bueno es cierto, tenemos soporte con Netcat. En el peor de los casos, que nos sintamos inseguros con la shell común, podremos usar el módulo de Netcat para el mismo fin, pero mucho mejor.

Keylogger

Graba cualquier movimiento que la víctima haga mediante pulsaciones en el teclado. Toda la información se registrará en un archivo.

Grabar audio

Si quieres mantenerte informado de lo que sucede alrededor del capturado, entonces activa este módulo, para escuchar todos sus movimientos.



Perfecto ¿Y cuáles son los requerimientos?

Un sistema operativo basado en Linux. Recomiendo Kali Linux en su última versión 2019.4. Solo ha sido probado en este último, por lo que si lo utiliza en otro sistema, tal vez, podría causarle algún problema.



Para terminar

Sé que no tiene muchas funcionalidades, pero poco a poco se las iré agregando   :D

Y bueno compañeros, eso es todo, a este proyecto aún le falta mucho por mejorar, pero les quería mostrar esta primera parte. Como pudieron apreciar, no es muy difícil de usar, si no saben los comandos, al tipear "ayuda", les mostrará los comandos disponibles. De última, me pueden enviar un msj y trataré de responder a la brevedad. El que quiera aportar es completamente bienvenido.  ;) ;)

Saludos a todos!
Kirari-


4
Buenas a todos, quería hacerles una consulta, ya que he investigado bastante, pero no he podido encontrar nada. Quería saber si se puede combinar el módulo socket con el mismo Flask? Tipo cuando creas un script cliente-servidor común, comúnmente se usa la librería de sockets, pero ahora, en Flask como puede implementarse esto, o que alternativas hay. Por ejemplo, tengo el servidor con Flask, y quiero enviar mensajes al cliente, básicamente una conexión inversa de cliente a servidor. He visto que hay una función misma de Flask, que es SocketIO, pero no estoy seguro si funciona para comunicarse con el interprete de Python o la consola de la máquina (ya sea Linux, Windows, etc.), o bien con solo el cliente navegador. Disculpen si estoy mal en algo, es que recién empiezo con Flask.

Tengo esas pequeñas dudas, les agradecería la ayuda.

Saludos!

5
Hacking / Simple Honeypot en Python
« en: Mayo 06, 2019, 06:28:04 pm »
Buenas a todos! Quería compartirles una herramienta que hice en Python. Se tratá de un Honeypot (un sistema trampa para los atacantes). Como verán es de baja interacción, un script demasiado fácil de hacer. Permite abrir puertos de la maquina para simular un servicio (pj: ssh,ftp,etc). Aunque es más parecido a un IDS, sirve también como un señuelo. Acá les link para clonar el repositorio:

https://github.com/Kirari-Senpai/Honeypot

Y acá el código, para que lo vean mejor:

Código: Python
  1. #!/usr/bin/python
  2.  
  3. # Honeypot de baja interaccion
  4.  
  5. # Creado por Kirari
  6.  
  7. import os
  8. import sys
  9. import datetime
  10. import socket
  11.  
  12. def banner():
  13.    os.system('clear')
  14.  
  15.    print("\n          ___    __  __        ___  ___  _____ ")
  16.    print("   /\ /\/___\/\ \ \/__\/\_/\ / _ \/___\/__   \ ")
  17.    print("  / /_/ //  //  \/ /_\ \_ _// /_)//  //  / /\/")
  18.    print(" / __  / \_// /\ //__   / \/ ___/ \_//  / /   ")
  19.    print(" \/ /_/\___/\_\ \/\__/   \_/\/   \___/   \/    ")
  20.    print("\n       Creado por Kirari")
  21.  
  22.    print("\n\n<ul class="bbc_list"><li type="square"> Honeypot Activado!")[/li][/list]
  23.    print("[!] Te avisare si ocurre algo sospechoso.")
  24.                                              
  25.  
  26. def configuracion():
  27.    os.system('clear')
  28.    print('\a')
  29.    print("\n(CONFIGURAR HONEYPOT)")
  30.  
  31.    direccion = raw_input('\n\n[-] Ingrese IP address: ')
  32.    try:
  33.       puerto = input('[-] Ingrese puerto a emular (1-65535): ')
  34.  
  35.       if (puerto>=1 and puerto<=65535):
  36.          mensaje = raw_input("[-] Ingrese mensaje a enviar: ")
  37.          nombre_archivo = raw_input('[-] Nombre del log (Por default: Activity): ')
  38.          if(nombre_archivo==""): nombre_archivo = "Activity"
  39.          return (direccion,puerto,mensaje,nombre_archivo)
  40.       else:
  41.          print("</li><li type="square"> Numero de puerto incorrecto")[/li][/list]
  42.    except ValueError:
  43.       print("</li><li type="square"> El puerto ingresado debe ser un entero")[/li][/list]
  44.  
  45.  
  46. def honeypot(ip,port,msg,register):
  47.    servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  48.    servidor.bind((ip, port))
  49.  
  50.    servidor.listen(5)
  51.  
  52.    alive = True
  53.  
  54.  
  55.    while(alive):
  56.       conexion, intruder = servidor.accept()
  57.       string = "\n</li><li type="square"> Intruso detectado desde {} en {}\n</li><li type="square"> Tiempo: {}\n".format(str(intruder[0]),intruder[1],datetime.datetime.now().strftime("%c"))[/li][/list]
  58.       print(string)
  59.  
  60.       try:
  61.          conexion.send("%s\n"%(msg))
  62.          activity = conexion.recv(2048)
  63.          register.write(string + '</li><li type="square"> Datos de paquetes: ' + activity + "\n\n")[/li][/list]
  64.          #print(activity)
  65.          conexion.close()
  66.       except socket.error:
  67.          pass
  68.  
  69.  
  70.  
  71.  
  72. if __name__ == '__main__':
  73.    try:
  74.       data = configuracion()
  75.       logs = open(data[3]+".log",'w')
  76.       if(data!=None): banner(); honeypot(data[0],data[1], data[2],logs);
  77.       else: print("</li><li type="square"> No hay suficiente datos proporcionados.")[/li][/list]
  78.    except KeyboardInterrupt:
  79.       logs.close()
  80.       print("Sesion honeypot terminada")
  81.  

Poco a poco, iré mejorandolo. Espero que les guste, saludos!

6
Python / [Python] Diccionario informático
« en: Enero 18, 2019, 09:06:58 pm »
Buenas a todos, les quiero compartir un programa que hice en Python. Se trata de un diccionario para terminal donde albergan muchas definiciones informáticas. Sé que a algunos no les va a servir, pero para los nuevos en este mundo, quizás sí. Obviamente, está en plena evolución y se irá agregando más palabras en el futuro.


Acá les dejo el link: https://github.com/Prudence-Suspect/Underground-Dictionary

Saludos a todos!

Páginas: [1]