Logo Studenta

Seguridad en Sistemas de Información Practica 6

¡Estudia con miles de materiales!

Vista previa del material en texto

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN 
Ingeniería en Telecomunicaciones, Sistemas y Electrónica
Seguridad en Sistemas de Información
 Grupo: 1909 
Practica No.6
“Keylogger”
Fecha De Entrega: 01/10/2018
Profesora: Carla Pamela Solano
Alumno: Jorge Antonio Jimenez Bernal
Semestre 2019-1
OBJETIVO:
Conocer el funcionamiento de un keylogger y como este puede ser usado de manera maliciosa por un usuario malintencionado, que desea obtener informacion sensible de lo que la victima escribe en su teclado, pero esta vez el keylogger no sera descargado de internet , si no que sera programado en C++. 
DESARROLLO:
En nuestro IDE favorito , en este caso utilice CodeBlocks , creamos un nuevo Proyecto (File->New->Project) , en el menu que aparece seleccionamos Console application
Damos click en el boton Go , y nos aparecera un asistente al cual le tenemos que dar click en el boton Next.
Elegimos C y click en Next
Una vez aquí , tenemos que asignarle un nombre al Proyecto , un directorio donde este sera guardado , una vez llenos estos campos , dar click en Next.
Una vez aquí basta dar doble click en el archivo main.c o main.cpp , para comenzar a escribir el codigo fuente de nuestra aplicacion
Guardamos nuestro codigo con CTRL+SHIFT+S , Compilamos con CTRL+F9 , y esperamos que no existan errores en nuestro codigo , de haberlos se revisa , si no , procedemos al paso siguiente.
Debido a que se reuqieren permisos para escribir sobre algunos directorios , debemos crear un archivo , donde se guardar el registro, este archivo es ubicado en la misma ruta donde se guardo el proyecto
Una vez hecho eso , debemos de generar el ejecutable , lo haremos con la combinacion , o simplemente darle click al boton verde , sin embargo , debido a la naturaleza de el programa es detectado como software malicioso y es eliminado por Windows Defender , asi que para continuar con la practica , lo desactivamos y/o agregamos una exclusion.
Una vez hecho lo anterior nos percatamos que no existe ninguna ventana visible , pero ahora escribimos cualquier cosa en el navegador y despues abrimos el archivo LOG.txt que esta en la misma ubicación que el ejecutable generado y…
INVESTIGACION:
-#include <iostream>
Es un componente del lenguaje de programación C++ que es utilizado para operaciones de entrada/salida.
iostream define los siguientes objetos:
cin : Flujo de entrada
cout : Flujo de salida
cerr : Flujo de error no almacenado.
clog : Flujo de error almacenado.
Todos los objetos derivados de iostream hacen parte del espacio de nombres std.
-#include <windows.h>
Es un componente que permite la interaccion con API de windows; windows.h incluye automáticamente gran cantidad de otras cabeceras. Muchas de ellas no pueden incluirse por sí mismas, por una cuestión de dependencias.
-#include <winuser.h>
Puede estar incluida dentro de windows.h , la funcion de este componetnte es brindar interaccion con el usuario mediante user32.dll: user services
-fopen 
FILE *fopen(const char *nombre, const char *modo);
Abre un fichero cuyo nombre es la cadena apuntada por nombre, y adjudica un stream a ello. El argumento modo apunta a una cadena empezando con una serie de caracteres de la siguiente secuencia:
	r
	Abre un fichero de texto para lectura
	w
	Trunca, a longitud cero o crea un fichero de texto para escribir
	a
	Añade; abre o crea un fichero de texto para escribir al final del fichero (EOF)
	rb
	Abre un fichero en modo binario para lectura
	wb
	Trunca, a longitud cero o crea un fichero en modo binario para escribir
	ab
	Añade; abre o crea un fichero en modo binario para escribir al final del fichero (EOF)
	r+
	Abre un fichero de texto para actualización (lectura y escritura)
	w+
	Trunca, a longitud cero o crea un fichero de texto para actualización
	a+
	Añade; abre o crea un fichero de texto para actualización, escribiendo al final del fichero (EOF)
	r+b ó rb+
	Abre un fichero en modo binario para actualización (lectura y escritura)
	w+b ó wb+
	Trunca, a longitud cero o crea un fichero en modo binario para actualización
	a+b ó ab+
	Añade; abre o crea un fichero en modo binario para actualización, escribiendo al final del fichero (EOF)
-Modo de archivo a+
Cuando un fichero es abierto con el modo de actualización ('+' como el segundo o tercer carácter del argumento modo), la entrada y salida pueden ser manipuladas en el stream asociado. Sin embargo, la salida no puede estar seguida directamente de una entrada sin tener una llamada interventiva a la función fflush o a una función de manipulación del fichero de posición (fseek, fsetpos, o rewind), y la entrada no puede estar seguida directamente de una salida sin tener una llamada interventiva a una función de manipulación del fichero de posición, al menos que el proceso de entrada encuentre un final de fichero (EOF). Abriendo (o creando) un fichero de texto con el modo de actualización puede en su lugar abrir (o crear) un stream binario en algunas implementaciones.
-fprintf
int fprintf(FILE *stream, const char *formato, ...);
Esta función envía datos al stream apuntado por stream, bajo el control de la cadena apuntada por formato que especifica cómo los argumentos posteriores son convertidos para la salida. Si hay argumentos insuficientes para el formato, el comportamiento no está definido. Si el formato termina mientras quedan argumentos, los argumentos restantes son evaluados (como siempre) pero ignorados. La función retorna control cuando el final de la cadena de formato es encontrado.
-fclose
int fclose(FILE *stream);
El stream apuntado por stream será despejado y el fichero asociado, cerrado. Cualquier dato almacenado aún sin escribir para el stream será enviado al entorno local para ser escritos al fichero; cualquier dato almacenado aún sin leer será descartado. El stream es desasociado del fichero. Si el almacenamiento asociado fue automáticamente adjudicado, será desadjudicado.
CONCLUSIONES:
La implementacion de este Keylogger mediante una aplicación en C++ ayudo a comprender los riesgos de descargar software pirata de internet , asi como tener cuidado especialemnte con los ejecutables que provienen de fuentes desconocidas , ya que en caso de no tener antivirus o que este este desactualizado o deshabiliotado, alguien mas podria estar “escuchando” todo lo que escribimos y usarlo para fines no tan positivos.
FUENTES CONSULTADAS (Todas el 01/10/2018) : 
https://latam.kaspersky.com/resource-center/definitions/keylogger
https://mx.norton.com/internetsecurity-emerging-threats-what-is-social-engineering.html
http://c.conclase.net/librerias/?ansifun=

Continuar navegando