miércoles, 31 de enero de 2018

Que son los DNS?

Domain Name System (DNS) 

Es un servicio, que traduce los nombres de host (por ejemplo www.puma-tech.com) a una direccion IP
El servicio de DNS usa una base de datos Distribuida y Jerárquica, que contiene la información asociada a los nombres de dominio en redes como internet.
Aunque puede asociar diferentes tipos de información. el uso mas común es la asignación de nombres de dominio a direcciones IP

Jerarquía DNS 

La estructura de los dns, es de árbol, lo que quiere decir que un nombre de dominio completo, es la concatenación de todas las etiquetas de un camino. Las etiquetas son cadenas alfanuméricas (permiten un único símbolo que es '-') con  un máximo de 63 caracteres. (Consultar la RFC 1035, sección "2.3.1. Preferencia nombre de la sintaxis ").
Las etiquetas  están separadas por puntos. Un nombre de dominio termina con un punto (aunque este último punto generalmente se omite). Un FQDN correcto (Fully Qualified Domain Name), es por ejemplo: www.puma-tech.com. (Incluyendo el punto al final)
Un nombre de dominio incluye todos los puntos y tiene una longitud máxima de 255 caracteres.
Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el extremo derecho de un dominio separa la etiqueta de la raíz de la jerarquía Este primer nivel es también conocido como dominio de nivel superior (TLD).

Tipos de Registros 

Los registros mas utilizados son: 

A = Address – (Dirección) Este registro se usa para traducir nombres de servidores de alojamiento a direcciones IPv4.
AAAA = Address – (Dirección) Este registro se usa en IPv6 para traducir nombres de hosts a direcciones IPv6.
CNAME = Canonical Name – (Nombre Canónico) Se usa para crear nombres de servidores de alojamiento adicionales, o alias, para los servidores de hosting. de un dominio.
NS = Name Server – (Servidor de Nombres) Define la asociación que existe entre un nombre de dominio y los servidores de nombres que almacenan la información de dicho dominio.
MX (registro) = Mail Exchange – (Registro de Intercambio de Correo) Asocia un nombre de dominio a una lista de servidores de correo para ese dominio.
PTR = Pointer – (Indicador) También conocido como 'registro inverso', funciona a la inversa del registro A.
SOA = Start of authority – (Autoridad de la zona) Proporciona información sobre el servidor DNS primario de la zona.
SRV = SeRVicios - Permite indicar los servicios que ofrece el dominio.
SPF = Sender Policy Framework - Ayuda a combatir el Spam. En este registro se especifica cual o cuales hosts están autorizados a enviar correo desde el dominio dado. 


Comandos de Linux III (Comenzando a usar el Shell)

Comenzando a usar el Shell 

 

 


Una vez logueados a un sistema GNU/Linux, el mismo nos provee de una shell, la cual nos permite ingresar los comandos del sistema.
El mas utilizado en los sistemas GNU/Linux es bash, pero también tenemos otros, los cuales son los siguientes:

/bin/sh
/bin/bash
/bin/dash
/bin/tcsh
/bin/csh


El prompt de bash es el símbolo $ para un usuario no privilegiado y # para el usuario root. El mismo lo podemos configurar desde el archivo /etc/bashrc  

Para cada usuario en particular se puede modificar en el siguiente archivo:

~/.bashrc

que se encuentra en el /home del usuario.  

Los comandos no son ejecutados hasta que se presione "enter" y la sintaxis es la siguiente:

$comando [opciones] [argumentos]

En el siguiente ejemplo:


$ ls -F /etc

ls es el comando, siendo -F la opción y el directorio /etc el argumento.


Hasta ahora, veníamos ejecutando de a un comando por vez. ahora vamos a ver, varias formas de ejecutar varios comandos en una sola vez.
En el caso de que no tengan coneccion entre si utilizamos el punto y coma (;) como en el siguiente ejemplo:    
      

Esto, va a ejecutar un ls en el directorio que  nos encontremos parados, y luego mostrara la fecha con el comando date

Cabe destacar  que un comando termina independientemente de cómo finaliza y se ejecuta a continuación el siguiente.

En otros casos (por ejemplo si necesitamos ejecutarlos en un script, o varios en una sola linea) podemos llegar a necesitar utilizar los operadores && y || en los casos que el o los comandos subsiguientes dependan de si se ejecuto correctamente el comando previo.

En el caso de && solo ejecutara el comando subsiguiente si el primero tuvo éxito, veamos un ejemplo:

[juan@juan ~]$ ls /nada && date
ls: no se puede acceder a '/nada': No such file or directory
[juan@juan ~]$

En este caso, el comando date no fue ejecutado, debido a que hubo un error en el comando ls, al no existir el directorio /nada

[juan@juan ~]$ ls Plantillas/ && date
mié ene 31 13:51:58 -03 2018
[juan@juan ~]$
 
En este caso fue exitosa la ejecución del comando date, ya que el directorio  Plantillas/ si existe (independientemente de que no tenga contenidos.

Variables 

Las variables, contienen información, que puede ser modificada por el usuario o por el sistema. Si queremos modificar el prompt de Bash lo hacemos modificando la variable $PS1

Por Ejemplo:

[juan@juan ~]$PS1=”[soy \u en \h dir actual \W]\$”
[soy juan en juan dir actual etc]$

Las opciones son:

\u        Nombre del usuario
\h        Nombre del host
\W        Directorio de trabajo
\A        Hora actual

(para ver mas opciones les recomiendo ver el man de bash: $man bash )

Tambien se incluyen variables predefinidas que podemos ver con el comando env
[juan@juan ~]$ env
LS_COLORS=rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=01;05;37;41:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;40:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.zst=38;5;9:*.tzst=38;XDG_MENU_PREFIX=gnome-
LANG=es_AR.UTF-8
GDM_LANG=es_AR.UTF-8
HISTCONTROL=ignoredups
DISPLAY=:0
HOSTNAME=juan.local
COLORTERM=truecolor
USERNAME=juan
XDG_VTNR=2
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
XDG_SESSION_ID=4
USER=juan

---(Cortado intencionalmente)----
_=/usr/bin/env

La variable PATH le indica a la shell actual donde buscar los comandos que son ejecutados cuando no se le especifica una ruta. 
Si tengo un comando en un directorio que no esta en la variable PATH, para ejecutarlo tengo que escribir la ruta completa,

Para definir un nuevo directorio en la variable PATH se puede hacer de la siguiente forma.

[juan@juan ~]$ PATH=$PATH:/otro/directorio

Posteriormente para exportar la variable, como de entorno para que la pueda usar cualquier proceso de mi shell actual, utilizo el comando export de la siguiente manera:
[juan@juan ~]$ export PATH

Continuaremos en otro articulo.

lunes, 29 de enero de 2018

¿Que es el Ethical Hacking?

El Ethical Hacking es el proceso de realizar pruebas de intrusión a una red, sistemas, webs, etc, utilizando los mismos métodos que podría llegar a utilizar una persona con malas intenciones. 
Lo que lo diferencia, es que en este caso, se realiza bajo el consentimiento de la "victima" con la idea de conocer las vulnerabilidades que tengan en su infraestructura y solucionarlas antes de que una persona malintencionada las pueda utilizar para sacar ventaja de las mismas.
Por supuesto, que la persona que realiza dicha tarea, debe tener un permiso de la victima, así como un documento que defina los alcances del proyecto, sin omitir que pruebas se realizaran y cuales no, para evitar un efecto negativo o dejar accidentalmente fuera de linea los servicios que se encuentran en producción.

El proceso consiste de las siguientes etapas:

Reconocimiento 

Es la etapa en la cual, nos proponemos conseguir toda la información que nos sea posible de nuestro objetivo. En este punto no vamos a realizar ningún tipo de acción malintencionada o que pueda alertar a la organización.
Para lograr esto, tenemos que consultar bases de datos publicas y herramientas estandar que se utilizan para propósitos benignos.
En esta etapa de reconocimiento, es donde obtenemos las url de la web, direcciones de correo, teléfonos, nombres de empleados y sus cargos, donde se encuentra físicamente la  empresa (y sus sucursales en caso de tenerlas).

Enumeración

Ya adentrados en esta etapa, vamos a utilizar herramientas que podrían generar cierta sospecha, si la empresa realiza un correcto chequeo de logs, y cuenta con sistemas de detección y prevención de intrusos.
Algunas herramientas populares son nmap, para escaneo de puertos, y Nessus u Openvas para analizar vulnerabilidades.
Con esto, vamos a poder conseguir información sobre las vulnerabilidades que possen, pero aun no las aprovecharemos. Eso queda para la siguiente etapa.

Ganar Acceso 

En esta etapa, se realiza el "ataque".
Usualmente utilizando exploits, vamos a abusar del software mal configurado
En esta etapa es cuando vamos a realizar el “ataque” propiamente dicho. Generalmente, abusaremos de software mal configurado o desactualizado para tomar el control de los sistemas de la organización.
También se demuestran las diferentes posibilidades de Denegaciones de Servicio (DoS) que podríamos generar.
Una vez realizado esto, podríamos tener la capacidad de controlar algún sistema o dejarlo sin funcionamiento.
(En varios trabajos se finaliza en esta etapa ya que el cliente puede querer saber unicamente las vulnerabilidades encontradas)

Mantener Acceso 

En esta etapa nos vamos a asegurar que el acceso obtenido en la fase anterior, lo podamos mantener. Incluso aunque la organización corrija los problemas que nos dieron acceso, deberíamos continuar teniendo el control de los sistemas.
En esta etapa simplemente nos vamos a asegurar de que el acceso que ganamos en la etapa anterior sea mantenido. Es decir que, aunque la organización corrija los problemas que nos dieron acceso, nosotros deberíamos poder seguir teniendo el control de los sistemas.
Se suele hacer instalando un backdor, que nos permita ingresar a través de un canal no convencional. Si el sistema tiene muchos usuarios autorizados, podríamos crear uno adicional, tratando de que no sea descubierto por los administradores.

Borrar Rastros 

Aca, es cuando vamos a intentar eliminar los rastros de nuestra intrusión. Esto esta mas asociado con ataques reales y no con el Ethical Hacking pero puede servir para comprobar el buen funcionamiento de los sistemas de logs. (Si esta bien diseñado debería ser muy difícil borrar todo rastro de la intrusión.)



¿Que es un Hacker?

                        ¿Que es un Hacker?



Un hacker, en principio es un experto informático que utiliza sus conocimientos técnicos para resolver problemas asociados a la seguridad informática. Habitualmente tienen conocimientos en seguridad y con la capacidad de detectar errores o fallos en sistemas informáticos.

Cambien se puede considerar hacker a cualquier persona que se dedique a resolver problemas, independientemente del campo en el que se encuentre.
Por ejemplo, pueden ser considerados hackers, genios históricos como Nikola Tesla (Dedicado a la electricidad), o un caso mas cercano a quienes vivimos en Argentina, Renè Favaloro quien invento el Bypass Vascular



 Nikola Tesla

René Favaloro

Clasificación:

White Hat

Son quienes penetran la seguridad de un sistema,trabajan en el area de Seguridad de las Empresas, para defender la infraestructura.

Black Hat

También conocidos como Crackers tienen grandes conocimientos en programación, sistemas, redes y seguridad informática. La diferencia es que utilizan dichos conocimientos.

Los utilizan para beneficio propio, creando y esparciendo malware, penetrando sistemas para usarlos como mejor les convenga, realizando ataques de Denegación de servicios, etc.

Gray Hat

Tienen conocimientos similares a los de los Black Hat, con la diferencia, que en términos éticos, están entre los White Hat y los Black Hat Hackers, dependiendo de las circunstancias. A veces penetran los sistemas, y después se ofrecen a reparar los daños por una suma de dinero.



Hacker y crakers famosos


Entre los hackers mas famosos podemos mencionar a:















 (En el medio Kevin Mitnick)
 
 Fuente: Wikipedia


viernes, 26 de enero de 2018

Ya sale el nuevo protocolo WPA3

Si de redes WIFI hablamos WPA2 fue durante muchos años el protocolo mas seguro y ampliamente utilizado.
Ya estando en el 2018 la WI-FI Alliance, decidió introducir el protocolo WPA3, que no solo es una mera actualización.

Se añaden 4 nuevas capacidades para redes WI-FI empresariales y personales.
Dos de ellas, van a proveernos protecciones mas robustas, incluso cuando los usuarios desoyen las recomendaciones y utilizan passwords que no siguen un mínimo de seguridad, y simplificara la configuración de seguridad para equipos que poseen una interfaz limitada. Otra novedad, es que va a fortalecer la privacidad de los usuarios en redes abiertas a través de una forma de estacionario de datos individualizada.
Finalmente, la seguridad de 192 bit protegerá las rede WI-FI con requerimientos de seguridad mas altos como pueden ser las redes gubernamentales, de defensa e industriales.


Fuente (en Ingles): https://www.wi-fi.org/news-events/newsroom/wi-fi-alliance-introduces-security-enhancements

miércoles, 17 de enero de 2018

Como Comprimir y descomprimir archivos en Linux

En muchas ocasiones, nos vemos en la necesidad de comprimir, o descomprimir archivos. Sea que los descargamos de un sitio, los subimos a internet, o los vamos a enviar por algún medio. (Mail, mensajeria, etc) 

Ahora vamos a ver algunas utilidades que nos permitirán realizar dichas tareas.

Comandos gzip y gunzip 

Estos comando van a permitirnos comprimir y descomprimir archivos


gzip [opciones] [archivo]

Las opciones más comunes son:

-d Para descomprimir un archivo (Equivale al comando gunzip)
-1 La compresión más rápida
-9 La mejor compresión

[juan@juan ~]#gzip archivo.iso
nos va a dar como resultado archivo.iso.gz

bzip2 / bunzip2 

También estos comandos nos permitirán comprimir y descomprimir archivos
bzip2 es mas eficiente que gzip y gunzip, y las opciones son practicamente idénticas.
La extensión utilizada es .bz2

Ejemplos de como usarlo:

-d es para descomprimir, también se puede usar el comando bunzip2
Con la opción -9 (va de 1 a 9) se define el nivel de compresión. ) es la compresión máxima y 1 la mas veloz.

[juan@juan ~]#bzip2 archivo.iso
Nos va a quedar como archivo.iso.bz2

Si lo queremos descomprimir ejecutamos lo siguiente:

[juan@juan ~]#bunzip2 archivo.iso.bz2

xz 

Este comando usa el algoritmo LZMA, lo cual ofrece altos grados de compresión de archivos, así como también velocidad.

Para comprimir un archivo
[juan@juan ~]# xz archivo.iso

Obteniendo como resultado archivo.iso.xz

Para descomprimir un archivo:
[juan@juan ~]# xz -d archivo.iso.xz

También se puede combinar con el comando tar, para comprimir multiples archivos y directorios.

Creando un tarball con tar.

Los comandos que vimos anteriormente solo comprimen un archivo / directorio por vez. Para superar dicha limitación podemos utilizar el comando tar

Las opciones son las siguientes:
c para crear
x para extraer
v modo verbose, muestra lo que se está haciendo
f define el archivo.tar
z comprime/descomprime con gzip
j comprime/descomprime con bzip2
J comprime/descomprime con xz
a Usa la extensión del archivo para elegir la herramienta de compresión
t Muestra el contenido del tarball

 Les dejo un ejemplo, el resto de las opciones las pueden ir probando:
[juan@juan ~]# tar cvf archivo.tar /home/juan/archivos
.


lunes, 15 de enero de 2018

Comandos Básicos de Linux II

Continuando el articulo anterior Comandos Básicos de Linux I , continuamos haciendo una reseña de los comandos mas importantes del sistema.

Para listar los archivos y directorios 


En este caso vamos a usar el comando ls, el cual entre otras cosas nos permite ver algunos atributos.
Veamos como es la sintaxis

ls [ opciones ] [archivo1] [archivo2] [archivoN]
ls [opciones] [directorio1] [directorio2]

Las opciones que más se utilizan son:

-a Nos muestra todos los archivos incluyendo los que están ocultos
-l Nos muestra el tipo de archivo, los permisos, propietarios, tamaño y fecha de modificación de los mismos.
-h Muestra el tamaño en una forma mas simple
-r Los ordena en forma inversa
-t  Los Ordena según la fecha de modificación

Copiando archivos y directorios


En este caso, usamos el comando cp cuya sintaxis es la siguiente:
cp [opciones] archivo1 archivo2
cp [opciones] archivos directorio

Las opciones más utilizadas son las siguientes:

-f Fuerza la re-escritura si ya existe el destino.
-i Habilita la opcion de confirmación, para evitar sobre-escrituras accidentales.
-p Preserva todos los permisos de la estructura del directorio y/o archivo, incluyendo la fecha de creación.
-r (o la opcion -R) Realiza la copia en forma recursiva, para que podamos copiar los directorios y subdirectorios..
-v modo Verbose, muestra lo que esta haciendo


Crear directorios

en este caso, utilizamos el comando mkdir 

Por ejemplo:

[juan@juan ~]$ mkdir testing

Una opción muy interesante es -p, la cual nos va a permitir crear un directorio, que a su vez contenga subdirectorios.
 
[juan@juan ~]$ mkdir -p /home/pumatech/images/vacaciones

Mover o renombrar directorios y archivos

En este caso, utilizamos el comando mv, cuya sintaxis es la siguiente:

mv [opciones] origen destino

Las opciones que mas vamos a utilizar son las siguientes:

-f si ya existe lo sobrescribe forzosamente
-i Modo interactivo, nos va a pedir que confirmemos archivo por archivo (o directorio, por directorio)

Re-nombrando:

[juan@juan ~]$ mv archivo1.txt archivo-nuevo-nombre.txt

Moviendo un archivo:
[juan@juan ~]$ mv archivo1.txt /directorio

Moviéndonos entre directorios.

En este caso vamos a utilizar el comando cd

Por Ejemplo:

[juan@juan ~]$ cd /home/pumatech/Desktop (avanzamos.)
[juan@juan ~]$ cd .. (retrocedo)
[juan@juan ~]$ cd  (me lleva al home)

Borrando archivos y directorios

rm, es un comando que borra directorios y archivos.

Las opciones mas comunes son las siguientes:
rm [opciones] archivos
-f borra sin pedir confirmación
-i pide confirmación, a la hora de borrar.
-r,(o -R)  borrar recursivamente


Si queremos borrar un directorio y todo su contenido
-bash-4.1# rm -rf /home/pumatech/old-data/

Comando rmdir

Se utiliza solamente para borrar directorios vacíos.

rmdir [opciones] directorio

[juan@juan ~]$ rmdir dir

Nota: generalmente se utiliza el comando rm -rf
Nota 2: No se les ocurra realizar un rm -rf al directorio raiz (/) como root, ya que se pierde todo. No me hago responsable del mal uso que le puedan dar.


Tutorial de Keepass 2 - Segunda Parte.

Keepass2android offline


En este micro tutorial, voy a explicarles como instalar Keepass2android offline, el cual es una versión de Keepass 2 para Sistemas Android.

  1. Nos dirigimos a la aplicación Google Play, y buscamos "Keepass2android offline" 
     
    2. Seleccionamos la opción Instalar

3. Transferimos el archivo de claves
4. Abrimos la aplicación y utilizamos el archivo copiado al celular, en la opción Abrir Archivo.

5. Seleccionamos "Selector de archivo del sistema"

6. Buscamos el archivo de claves, en este ejemplo claves.kdbx


7. Luego, nos pedirá ingresar la clave que le pusimos originalmente al archivo, y ya podremos acceder a las entradas de la Base de datos y utilizar el programa como solemos hacerlo en la Computadora.


jueves, 4 de enero de 2018

Meltdown y Spectre Gravisimas vulnerabilidades

Meltdown y Spectre

Los bugs denominados Meltdown y Spectre en las computadoras modernas, están permitiendo el filtrado de las contraseñas y los datos sensibles.

Las Vulnerabilidades Meltwon y Spectre, estan explotando vulnerabilidades criticas en los procesadores modernos. Afecta indistintamente a usuarios de Microsoft Windows, GNU/Linux, Mac/OS y las diferentes variantes de BSD (Free BSD, NetBSD, TrueOS etc).

¿Por que afecta a casi todo el mundo?

Esto se debe, explicándolo de una forma fácil y corta, a que la vulnerabilidad se encuentra en los microprocesadores.
Estos bugs encontrados en el Hardware permite a los programas robar datos sensibles que están siendo procesados en la Computadora. Los programas, típicamente no tienen permitido leer datos de otros programas, pero debido a estas vulnerabilidades, un software malicioso, puede obtener la información que se encuentra en la memoria utilizada por otros programas. Puede incluir tus passwords guardadas en un Password Manager o navegador. Tus fotos personales, emails, mensajes instantáneos e incluso documentos críticos con respecto a tus negocios o finanzas personales.

Meltdown y Spectre, funcionan tanto en PC's, Dispositivos Moviles (Smartphones, Tablets, Notebooks, Netbooks) y en los servidores que se encuentran en la nube - Por ejemplo Google Cloud, Amazon Web Services, o servicios que corren en una nube privada como OpenStack - y en este ultimo caso, dependemos del arduo trabajo a contra reloj que estan realizando los Administradores de Sistemas y los equipos de CyberSeguridad de dichos proveedores.

Meltdown

Meltdown rompe el aislamiento fundamental entre las aplicaciones del Usuario y del Sistema Operativo (Como mencione anteriormente, independientemente del mismo). Este ataque, permite a un programa acceder a la memoria y a otros secretos de otros programas y el sistema operativo.
Si tu computadora, tiene un procesador vulnerable, y corre un sistema operativo sin parchear, no es seguro tranajar con información sensible sin la posibilidad de filtrar dicha información. Esto es valido para la Computadora Personal, como para los servidores hosteados en la nube.

¿Quienes reportaron Meltdown?

Meltdown fue descubierto y reportado por tres equipos independientes
El paper de Meltdown lo podes descargar desde la siguiente url: https://meltdownattack.com/meltdown.pdf

Spectre

Spectre, por su parte, rompe el aislamiento entre diferentes aplicaciones. Esto permite a un atacante, a engañar a programas libres de errores, que sigan las mejores practicas en su desarrollo, a divulgar sus datos confidenciales. De hecho, los chequeos de seguridad mencionados en las mejores practicas, actualmente aumentan la superficie de ataque y puede hacer que las aplicaciones sean mas susceptibles a Spectre.
Spectre es mas difícil de explotar que Meltdown, pero también es mas difícil de mitigar.

¿Quienes reportaron Spectre?

Spectre fue descubierto y reportado por dos personas independientes:
El paper de Spectre lo pueden descargar desde: https://spectreattack.com/spectre.pdf
La fuente de donde se tomo y tradujo esta información es: https://meltdownattack.com . Para mas información pueden dirigirse a dicho sitio. (El mismo se encuentra en ingles)


lunes, 1 de enero de 2018

Feliz Año Nuevo

Puma Tech, les desea un Feliz y Prospero Año nuevo.

Esperamos que el 2018 sea mejor que el 2017 para todos.



Bienvenidos

Primera Jornada de Ciberseguridad Ciudadana

Evento Realizado por el BA-CSIRT El BA-CSIRT , el dia Jueves 12 de Abril de 2018, va a realizar un evento de Ciberseguridad Ciudadana. ...