Category Archives: GISEPROI

Bash Scripting

Uno de los Lenguajes de programación mas importantes que debemos conocer en el área de la seguridad de la información es bash scriting ya que este nos brinda la posibilidad de automatizar tareas de nuestros sistemas operativos GNU Linux, junto a su configuración de una forma mas amigable y fácil, lo que otros interpretes no lo logran hacer con la misma facilidad que nos brinda bash.

Shell es el Intérprete de lenguaje de comandos, esto en español se traduce como caparazón (revestimiento), y es una capa intermedia entre el usuario y el sistema operativo (principalmente su Kernel).

La función principal del shell es: Leer, interpretar, solicitar la ejecución y mostrar los resultados de uno o varios comandos.

Lo primero que tienes que hacer para crear Shell scripts que puedan ser interpretados por Bash es inicializar tu script por los simbolos:

#!/bin/bash

Este llamara a el interprete bash para que se ejecute invocando el intérprete o directamente si tiene permisos de ejecución.

Si quieres saber mas sobre bash scripting puedes mirar este manual subido por la universidad de córdoba  Manual Bash Scripting o ir directamente a la documentación de Bash scripting

Web scraping recolección en la web

Web scraping es una técnica utilizada mediante programas de software para extraer información de sitios web. Usualmente, estos programas simulan la navegación de un humano en la World Wide Web (red de informática mundial) ya sea utilizando el protocolo HTTP (Hypertext Transfer Protocol) manualmente, o incrustando un navegador en una aplicación.

El web scraping está muy relacionado con la indexación de la web, la cual indexa la información de la web utilizando un robot y es una técnica universal adoptada por la mayoría de los motores de búsqueda. Sin embargo, el web scraping se enfoca más en la transformación de datos sin estructura en la web (como el formato HTML) en datos estructurados que pueden ser almacenados y analizados en una base de datos central, en una hoja de cálculo o en alguna otra fuente de almacenamiento. Alguno de los usos del web scraping son la comparación de precios en tiendas, la motorización de datos relacionados con el clima de cierta región, la detección de cambios en sitios webs y la integración de datos en sitios webs.

También es utilizado para obtener información relevante de un sitio a través de los rich snippets (Fragmentos enriquecidos). En los últimos años el web scraping se ha convertido en una técnica muy utilizada dentro del sector del posicionamiento web gracias a su capacidad de generar grandes cantidades de datos para crear contenidos de calidad.

Un ejemplo de web scraping se realiza a la siguiente pagina web para descargar cómics que tiene la pagina https://xkcd.com/ el cual tiene un patrón en los cómics que nos podemos aprovechar para descargar masivamente las imagenes que contiene la pagina.

import requests
from bs4 import BeautifulSoup
import urllib

def run():
    for i in range(1, 6):
        response =requests.get('https://xkcd.com/{}'.format(i))
        soup = BeautifulSoup(response.content, 'html.parser') #Parseamos el                       contenido de la respuesta 
        image_container = soup.find(id='comic') 
        image_url = image_container.find('img')['src']
        image_name = image_url.split('/')[-1] print('Descargando la imagen {}'.format(image_name)) 
        urllib.urlretrieve('https:{}'.format(image_url), image_name) 

if __name__ == '__main__': 
    run()

este ejemplo lo puedes encontrar en los repositorio de github

https://github.com/giseproi/web_scraping

y lo primero que tienes que hacer es instalar los requerimientos que necesita el script para su funcionamiento adecuado.

pip install -r requirements.txt

Firewall, objetivos de diseño y limitaciones.

Un Firewall forma una barrera a través de la cual debe pasar el tráfico que va en cada dirección, este puede ser diseñado para operar como un filtro al nivel de paquetes IP o puede operar en una capa de protocolo más alta.

Objetivos de diseño para un Firewall:

  • Todo el tráfico desde adentro hacia afuera y viceversa, debe pasar a través del Firewall. Esto se consigue bloqueando físicamente todo el acceso a la red local excepto por el Firewall.
  • Solo tráfico autorizado le será permitido pasar. Varios tipos de firewalls son usados, los cuales implementan varios tipos de políticas de seguridad.
  • El propio firewall es inmune a la penetración. Esto implica el uso de un sistema endurecido con un sistema operativo seguro. Los sistemas informáticos de confianza son adecuados para alojar un Firewall y requerido frecuentemente en aplicaciones gubernamentales.
Stallings W. Network Security Essentials: Application and standards. Fourth edition. Pearson Education, Inc. 2011. Chapter 11

Limitaciones:

  • No puede proteger contra ataques que evitan el firewall.
  • No puede proteger completamente contra amenazas internas.
  • Un firewall interno que separa partes de una red empresarial no puede protegerse contra las comunicaciones inalámbricas entre sistemas locales en diferentes lados del firewall interno.
  • Un dispositivo de almacenamiento portátil puede ser utilizado e infectado fuera de la red corporativa, y luego se adjunta y se utiliza internamente.

Network Mapping

NOTA: ESTE TUTORIAL ESTA HECHO CON FINES EDUCATIVOS Y DE ENSEÑANZA. EL USO NO ADECUADO DEL MATERIAL ES BAJO SU RESPONSABILIDAD.

Universidad Distrital Francisco José de Caldas  GISEPROI Grupo de Investigación en Sistemas Empresariales y Protección de la Información.

Se realiza una prueba de mapeo de red (Network mapping), el cual es un ataque a un sistema informático con la intención de encontrar las vulnerabilidades de seguridad, en diferentes puertos que tiene la red del Grupo GNU/LINUX de la Universidad Distrital, con el permiso del anterior semillero de investigación. Se utiliza nmap para generar el reporte de cuantas computadores estaban conectadas en la red del GLUD. Se generó un mapa de red, dando un reporte de cada computador gracias a la herramienta OpenVAS a (Open Vulnerability Assessment System), la cual tiene como funcionalidad identificar los tipos de vulnerabilidades que tiene cada computadora del Laboratorio de Tecnologías.

Introducción.

Como respuesta a la necesidad de detectar y prevenir intrusos surgen las herramientas OSSIM (Open Source Security Information Managment), clasificadas en dos grupos:

  1. Pasivas: analizan sin generar trafico dentro de la red
    1. ejemplos: Snort, Ntop, NFdump, NFSnet, Kisnet
  2. Activas: generar trafico dentro de la red en la que se encuentran
    1. ejemplos: OpenVAS, nmap, Nagios, OSSEC, OCS

Cada una de estas herramientas sirve para un propósito especifico de seguridad, se definió previamente utilizar en este laboratorio como primera instancia dos herramientas OSSIM activas, llamadas nmap Y OpenVAS, las cuales detectan el tipo de vulnerabilidades presentes en una red y pueden generar un mapa de red. Adicionalmente OpenVAS brinda algunas sugerencias para corregir los diversos tipos de vulnerabilidades encontrados.

PROCEDIMIENTO EXPERIMENTAL.

Dirección IP Red GNU/LINUX: desde la terminal con el comando:

ipconfig

o también podemos utilizar el comando:

ip addr

sabemos cual es la dirección IP

img0

con el uso de la herramienta nmap desde la terminal, generamos el primer reporte de cuantos dispositivos estaban en ese momento conectados a la red

nmap -A -O -V <Dirección IP>* -oX <Nombre del archivo>.xml
img1

img2

-A: Escaneo agresivo y detección de la versión del sistema operativo.
-O: Detección del sistema operativo.
-v: Muestra el análisis que esta generando en consola.
-oX: Genera un archivo XML el cual contiene el reporte de las IP’s conectadas y los puertos activos y cerrados.

(puedes omitir este paso) :

Con la herramienta xsltproc transformamos el reporte XML generado por nmap a una pagina web HTML para una mejor visibilidad.

xsltproc <nombre archivo>.xml -o <nombre archivo>.html

img6

Puedes instalar OpenVAS con este pequeño tutorial en los repositorios de github
https://github.com/GLUD/Pentesting-Red-Grupo-GLUD

iniciamos OpenVAS

openvas-start

ya podemos correr la interfaz de administración de OpenVAS con nuestro navegador por defecto

img4

localhost:9392

en este caso desde el navegador Firefox ingresamos a la interfaz de administración de OpenVAS por el puerto predeterminado 9392 para este servicio.

img5

Inician sesión en OpenVAS, dependiendo del nombre de usuario que ustedes coloquen en el momento de la instalación de esta herramienta y pueden generar una contraseña con el comando openvas-setup desde la terminal, También pueden crear un usuario nuevo con una contraseña con el comando

openvasad -c add_user -u your_new_login_here -r Admin

Digitamos todas las ip’s activas que nos mostró nmap en el momento que realizamos la inspección, para poder saber el tipo de vulnerabilidad y la solución que OpenVAS le da a cada una de ellas.

img7

Pueden observar la descripción general que nos da OpenVAS con dos reportes los cuales indican los tipos de vulnerabilidades que tiene cada puerto detectado y cada IP junto con su gateway, ademas puedes descargar cada reporte en diferentes tipos de formatos como: HTML, XML, PDF, entre otros.

img8

img9

img10

Reporte generado con OpenVAS después de realizar exitosamente el análisis de vulnerabilidades.

Reporte OpenVAS

CONCLUSIONES

Al explorar vulnerabilidades en la red del Laboratorio de Tecnologías Libres, se analizó cada puerto de las direcciones IP’s activas. En cada computador conectado a la red se reconocieron; los proyectos de los compañeros ingresando a los puertos que tenían activos corriendo servicios que estaban ejecutando en ese momento, también se detecto el sistema operativo que estaban corriendo, los tipos de vulnerabilidades y el estado de los puertos usados (detectando la disponibilidad de conexión a estos) concluyendo que no todos los puertos abiertos son vulnerables. Adicionalmente, ante las vulnerabilidades detectadas, una de las soluciones más comunes de OpenVAS era “Bloquear los paquetes no deseados fugados de la red”.

CITAS Y REFERENCIAS

Documentación oficial OpenVAS

  • http://www.openvas.org/documentation.html

Documentación oficial nmap

  • https://nmap.org/docs.html

Computación Forense, Una Visión General.

La ciencia forense es la aplicación metodológica correcta de un amplio espectro de disciplinas científicas para responder a preguntas importantes para el sistema jurídico. La tecnología, la metodología y la aplicación constituyen la ciencia forense y dirigen su avance igualmente.”
(
Franke K. , Srihari S.N. 2008. Página 2)

Los métodos computacionales proporcionan herramientas para analizar mejor la evidencia, además de proporcionar la base científica para una disciplina forense o procedimiento para el análisis de grandes volúmenes de datos. Puede representar el conocimiento experto humano y para implementar capacidades de reconocimiento y razonamiento en máquinas.
(Franke K. , Srihari S.N. , 2008)

Srihari, S. Franke, K. Conputational Forensics. Springer. 2008. Alemania
Documento completo: Computational Forensics An Overview
(Obtenido gracias a la herramienta https://sci-hub.cc/)

https://es.slideshare.net/LeidyAldana1/introduccin-a-la-informtica-forense-76 456679   (para cargar este link es necesario quitar el espacio entre 76 y 456679)

GISEPROI OSGeoLab: Laboratorio de ciencia geoespacial con Software Libre

A continuación se presenta el documento (resumen ejecutivo) de la propuesta de conformación del laboratorio. En esta primera fase nuestros integrantes son los profesores:

  • Lilia Edith Aparicio Pico
  • Luz Helena Camargo
  • José Luis Herrera Escorcia
  • Edilberto Suarez Torres
  • Miguel Antonio Ávila
  • Carlos Hernán Castro Ortega
  • Hernando Acuña Carvajal
  • Uriel Coy Verano
  • Jaime Humberto Ángulo
  • Paulo César Coronado

Es un grupo abierto. Están todos invitados a participar!!!

Ver : Resumen Ejecutivo OSGeoLab UD

Año de la Apertura!!!

El año de la apertura (Year of Open) es un movimiento mundial enfocado en los procesos, sistemas y herramientas abiertas. Se ha creado a través de un trabajo colaborativo.

Abierto representa libertad, transparencia, equidad y participación. Cuando una creación se deja abierta, cualquiera la puede utilizar y contribuir con su experiencia para mejorarla, beneficiando a la comunidad.

www.yearofopen.org

Herramienta de la semana: ABRT

La Herramienta para el Reporte Automático de Bugs (ABRT por sus siglas en inglés), es un conjunto de utilidades y servicios que procesan, analizan y reportan los problemas encontrados en tiempo de ejecución en sistemas linux, principalmente en distribuciones basadas en Red Hat (Red Hat, Centos, Fedora).

Es útil para aislar los problemas luego de un fallo (“caída”) de una aplicación o de un error en el sistema (Kernel OOPS).

Referencias:

https://en.wikipedia.org/wiki/Linux_kernel_oops

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-abrt.html

https://mvcp007.blogspot.com.co/2016/12/how-to-install-and-use-abrt-cli.html

Configuración de Cliente VPN L2TP sobre IPSec con PSK en Fedora

En esta entrada se detalla un método de conexión de un cliente a VPN L2TP sobre IPSec en Fedora. Utiliza los paquetes ipsec, libreswam y xl2tpd

Asegurarse de tener como mínimo los siguientes datos de conexión:

  • Dirección IP de la pasarela
  • nombre de usuario para la conexión
  • clave del usuario
  • Llave compartida a priori (pre-shared key)

Instalar los paquetes necesarios

install -y ipsec libreswan xl2tpd

Importante: Se debe conservar el mismo nombre de conexión en todos los archivos que se creen o editen. Para el caso de este tutorial se utilizará el nombre mivpn 

Configuración de IPSec

Crear un archivo de configuración para IPsec dentro de la carpeta  /etc/ipsec.d/

nano /etc/ipsec.d/mivpn.conf

Y agregar el siguiente contenido:


conn mivpn
authby=secret
pfs=no
auto=add
keyingtries=3
dpddelay=30
dpdtimeout=120
dpdaction=clear
rekey=yes
ikelifetime=8h
keylife=1h
type=transport
left=DIRECCIÓN_IP_LOCAL
leftnexthop=%defaultroute
leftprotoport=17/1701
right=DIRECCIÓN_IP_DE_LA_PASARELA_VPN
rightprotoport=17/1701
rightnexthop=%defaultroute

  • La DIRECCIÓN_IP_LOCAL debe reemplazarse por la IP que tenga asignada el equipo local(consultarla utilizando ifconfig).
  • La DIRECCIÓN_IP_DE_LA_PASARELA_VPN debe reemplazarse por la IP del servidor VPN remoto.
Registro de la Llave compartida a priori (pre-shared key)

Crear un archivo mivpn.secrets en la carpeta /etc/ipsec.d/

nano /etc/ipsec.d/mivpn.secrets

Y agregar el siguiente contenido:

%any REMOTE_VPN_SERVER_IP_ADDRESS : PSK "MI_PRESHARED_KEY"
  • MI_PRESHARED_KEY debe reemplazarse por la cadena de caracteres de la llave compartida a priori.
  • Los espacios en blanco del contenido anterior deben conservarse.
Configurar L2TP

Editar el archivo /etc/xl2tpd/xl2tpd.conf

nano /etc/xl2tpd/xl2tpd.conf

Agregando al final del mismo el siguiente contenido:

[lac mivpn]
lns =DIRECCIÓN_IP_DE_LA_PASARELA_VPN
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd.mivpn
length bit = yes

Luego crear un archivo de configuración del protocolo punto a punto (ppp) en la carpeta /etc/ppp/

nano /etc/ppp/options.xl2tpd.mivpn

Con el siguiente contenido:

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
usepeerdns
debug
lock
connect-delay 5000
name NOMBRE_USUARIO
password CLAVE_DEL_USUARIO
  • NOMBRE_USUARIO debe cambiarse por el nombre de usuario para la conexión.
  • CLAVE_DEL_USUARIO debe cambiarse por la clave del usuario.
REALIZAR la conexión

Iniciar el servicio de ipsec

systemctl start ipsec

Agregar (verificar) la configuración de la conexión:

$ ipsec auto --add mivpn

Habilitar la conexión:

$ ipsec auto --up mivpn

Iniciar el servicio xl2tpd:

$ systemctl start xl2tpd

Construir el túnel:

$ echo "c mivpn" > /var/run/xl2tpd/l2tp-control

Cuando se quiera cerrar el túnel:

$ echo "d mivpn" > /var/run/xl2tpd/l2tp-control
Verificación de la conexión

Si el procedimiento ha sido exitoso, al revisar las interfaces con ifconfig se tendría una interfaz tipo ppp0, similar a:

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1380
        inet XX.XXX.XXX.XXX  netmask 255.255.255.255  destination YY.YYY.Y.Y
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 41  bytes 6624 (6.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 881  bytes 173658 (169.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Donde XX.XXX.XXX.XXX corresponde a la dirección IP asignada al equipo en la VPN.

Enrutamiento de tráfico

El último paso es configurar el sistema para que el tráfico que vaya a los hosts de la VPN sean enrutados por la conexión.

ip route add ZZZ.ZZZ.ZZZ.ZZZ via XX.XXX.XXX.XXX dev ppp0
  • ZZZ.ZZZ.ZZZ.ZZZ debe reemplazarse por la dirección del host al que se desea conectar dentro de la VPN.
  • ppp0 es el nombre de la interfaz creada por xl2tpd. Debe cambiarse por el valor que corresponda de acuerdo a lo informado por ifconfig.

Una vez terminado el proceso se tendría capacidad de interconexión con el host ZZZ.ZZZ.ZZZ.ZZZ.

ping ZZZ.ZZZ.ZZZ.ZZZ
Posibles errores

Durante el proceso pueden ocurrir algunos errores debido a falta de paquetes o no sincronización de las herramientas. Los más comunes son:

El servicio de IPSec no puede iniciarse: Tratar de cargar de manera manual los módulos del Kernel

modprobe af_key

El servicio l2tpd no puede iniciarse: Instalar los módulos extra del kernel

dnf install kernel-modules-extra
Referencias

Este manual en español está basado en:

Así como los manuales (man pages) de cada uno de los paquetes.

GISEPROI – Universidad Distrital francisco José de Caldas