Cyber
Incidentes de ciberseguridad
Incidentes de ciberseguridad
  • Practica1.1 Retos de cifrado simetrico y asimetrico
  • Practica1.0 Busqueda de leaks
  • Practica1.2 Envio email cifrado con thunderbird
  • Practica1.3 Phising y otras estafas
  • opcional sakura_room
  • opcional WebOsint
  • Practica2.1 Generacion de elementos
  • Practica2.2.2 Entrenamiento con phising email
  • practica2.2 gophish
  • Practica 3 2 Volumenes en docker
  • Practica 3 3 Profundizacion Syslog ng
  • Practica 3 4 Port Knocking
  • Practica 3 5 Montaje SOC con ELK
  • Practica4_2 Investigacion defacement
  • Practica4_3 Splunk
  • Practica 4_1 Investigacion elastic
  • Slingshot
  • Wazuh
  • AWS
  • Opcional1.0 Phising
  • Practica 4_4 Splunk exploring spl
  • Practica4_4_1 Splunk Dashboards
  • wireshark
Powered by GitBook
On this page

AWS

PreviousWazuhNextOpcional1.0 Phising

Índice



  • EC2 - IaaS → Conectarse directamente a la máquina

  • Security group → Firewall

Amazon Linux → Viene de Red Hat/CentOS, usa yum

Ubuntu → Viene de debian, usa el comando apt

Conectarse a la instancia:

sudo ssh -i "<archivo.pem>" ec2-user@<IP_Pública>
Docker en AWS con Amazon Linux
sudo yum update
sudo yum install docker -y
#USER = ec2-user
sudo usermod -aG docker <user>
sudo systemctl enable docker.service
sudo systemctl start docker.service
# REINICIAR SESION PARA USAR DOCKER SIN SUDO
# SI HACEMOS UN DOCKER CON NGINX Y MAPEAMOS PUERTOS 80:80, AL ENTRAR A LA IP PUBLICA DE LA INSTANCIA AWS, VEREMOS EL SERVIDOR
# INSTALAMOS PIP
sudo yum install python3-pip
# INSTALAMOS DOCKER COMPOSE
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version

# MODIFICAR ARCHIVOS EN /etc/sysctl.conf Y EN /etc/sysctl.d/99-sysctl.conf
nano /etc/sysctl.conf

## AÑADIR LO SIGUIENTE AL FINAL:
vm.max_map_count=262145

## LUEGO EJECUTAR EL COMANDO SIGUIENTE PARA QUE SE CAMBIE EN TIEMPO REAL
sysctl -w vm.max_map_count=262145

docker pull sebp/elk:7.16.3
# CON DOCKER RUN
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name <nombre> -d --hostname <nombre> sebp/elk:7.16.3
# Elasticsearch es el puerto 9200 // Storage, donde se guardan los datos
# Logstach es el puerto 5044      // Procesa los datos
# Kibana es el puerto 5601        // Dashboard, panel de administración
# CON DOCKER COMPOSE

nano docker-compose.yml

## EN EL ARCHIVO
services:
	elk:
		image: "sebp/elk:7.16.3"
		ports:
			- "9200:9200"  # Elasticsearch es el puerto 9200 // Storage, donde se guardan los datos
			- "5044:5044"  # Logstach es el puerto 5044      // Procesa los datos
			- "5601:5601"  # Kibana es el puerto 5601        // Dashboard, panel de administración

## FUERA DEL ARCHIVO, COMPROBAR CUAL FUNCIONA

docker-compose . up --build -d 
# docker compose up elk

# Para encender el contenedor
docker update --restart=always <nombre_contenedor>
Montar el cliente nginx con los beats

Descargamos el zip que contiene el Dockerfile para la generación de nuestro contenedor en el siguiente enlace:

Extraemos y con dirigimos a la carpeta nginx-filebeat.

En esta modificaremos el archivo filebeat.yml para que sea como el siguiente:

output:
  logstash:
    enabled: true
    hosts:
      - <IP SOC ELK>:5044
    timeout: 15
    #ssl:
    #  certificate_authorities:
    #  - /etc/pki/tls/certs/logstash-beats.crt

filebeat:
  inputs:
    -
      paths:
        - /var/log/syslog
        - /var/log/auth.log
      document_type: syslog
    -
      paths:
        - "/var/log/nginx/*.log"
      fields_under_root: true
      fields:
        type: nginx-access

seccomp:
  default_action: allow

Ahora, para ejecutar el Dockerfile haremos los siguientes comandos:

cd /path/to/nginx-filebeat
docker build . -t <NOMBRE-IMAGEN>
docker run -p 80:80 -it -d --name <CONTENEDOR> <NOMBRE-IMAGEN>

# DENTRO DEL CONTENEDOR

service filebeat start

En la máquina de ELK deberemos modificar el archivo /etc/logstash/conf.d/02-beats-inputs.conf si no vamos a usar ssl:

# Este archivo es el que va en el contenedor del SIEM
# en la carpeta /etc/logstash/conf.d/02-beats-input.conf 

input {
  beats {
    port => 5044
    ssl => false # true si queremos conexión SSL
    ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
    ssl_key => "/etc/pki/tls/private/logstash-beats.key"
  }
}

# SALIMOS DEL EDITOR DE TEXTO

service logstash restart

BIEN, SI QUEREMOS MÁS BEATS, DEBEREMOS HACER LO SIGUIENTE EN EL CLIENTE:

Instalar los beats:

# Descargamos metricbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.16.3-amd64.deb
# Descargamos heartbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-7.16.3-amd64.deb
# Descargamos packetbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-7.16.3-amd64.deb

# Instalamos todos los packetes
dpkg -i <archivo.deb>

# Configuramos el archivo de configuración en /etc/<servicio>/<servicio>.yml

Finalmente iniciaremos los servicios con los siguientes comandos:

service filebeat restart
service heartbeat-elastic restart
service metricbeat restart
service packetbeat restart

En caso de querer usar SSL, descomentar todo referido a ello.

Aprendido, definiciones

AWS → EC2, Firewall, Elastic IP

SSH + RSA

EC2 — Amazon Linux → yum

SIEM → System Information and Event Management, es decir → herramienta para monitorizar la infraestructura

SOC → Security Operation Center, es decir, Centro de operaciones de seguridad → es el equipo encargado de monitorizar y diseñar la herramienta SIEM para la infraestructura

Syslog-ng → Es un servicio para el envío y recepción de informes o logs

Docker → Herramienta capaz de crear una infraestructura aislada | Tiene contenedores, imágenes, volúmenes y redes

Dockerfile → Fichero para crear una imagen personalizada

Docker compose → Fichero para generar una infraestructura en docker

AWS → Amazon Web Service, servicio de amazon de alquiler de servidores en la nube. Hay un servicio fundamental como EC2, RDS y S3.

ELK → Elasticsearch (puerto 9200), logstash (puerto 5044) y kibana (puerto 5601)

  • Elasticsearch → Era el encargado de guardar e indexar los datos (BD)

  • Logstash → recibe los datos y los procesa, enviandolos a elasticsearch

  • Kibana → Es la interfaz del usuario, con herramientas como dashboard y discover

Beats → herramientas o servicios que enviarán datos a logstash que nos dará información de cada cliente de la infraestructura

  • Filebeat → Envía archivos, con ruta de configuración /etc/filebeat/filebeat.yml

  • Heartbeat → envía pulsos o pings para saber que la máquina está activa. Ruta /etc/heartbeat/heartbeat.yml

  • Metricbeat → envía metricas de uso como uso de CPU, disco… Ruta similar

  • Packetbeat → envía información sobre la red. Ruta similar

  • Winlogbeat → envía eventos de windows.

  • Auditbeat → envía elementos de auditoría.

https://github.com/spujadas/elk-docker/releases/tag/7.16.3