Disclosure (Divulgación) WSDL

Buenas hoy les comparto una vulnerabilidad a la cual estan muchos de los web services que esta publicos en internet.

Los ataques WSDL Disclosure consiste en intentan descubrir servicios web no públicos recuperando su archivo WSDL.”

Mitigación de ataques / contramedidas:

  • Ocultar la descripción de web service representado por medio del archivo de *.wsdl.
  • Otras acciones, como la integridad, la confidencialidad y las funciones de control de acceso,

deben utilizarse para proteger el servicio web.

Los web services de .NET mostrarían la descripción de web service o archivo .wsdl de la siguiente manera:

1.png

De esta manera mostrando al público la estructura, métodos y parámetros  del web service, representando una vulnerabilidad para los servicios publicados.

2.png

Implementado una medida de mitigación:

Medida: Ocultar la descripción de web service o  archivo de *.wsdl

Ventajas:

  • Sencillez al implementar en producción.
  • No necesita actualización de los clientes que consumen el servicio.
  • Se evita ataques de Enumeración o Google Hacking de la descripción de web service o archivo *.wsld.
  • Se puede utilizar tanto en las tecnologías SOAP o WCF.
  • Rápida, cambios aplicados con inmediatez.

Pasos:

  1. Agregar las siguientes líneas de código, al archivo de configuración config dentro de las etiquetas: <system.web>…</system.web>

3.png

Fragmento de código:

<customErrors mode=”On” defaultRedirect=”error.html”></customErrors>

<webServices>

<protocols>

<remove name=”Documentation”/>

</protocols>

</webServices>

  1. Agregar una página vacía como ejemplo “error.html” dentro del proyecto de Web Service o carpeta de producción, hacia esta página será redirigido la solicitud de la descripción de web service.

Resultado:

4.png

Consideraciones en desarrollo:

Al actualizar o agregar una referencia web a algún cliente que consuma el web service, DEBE TENER  el archivo *.wsdl  habilitado para que Visual Studio .Net permita agregar la referencia web, ya concluida la actualización o agregación de la referencia web se aplica el cambio de ocultación del archivo *.wsdl en producción.

Referencias:

Buscador de Internet de las Cosas (IoT)

En esta oportunidad les comparto la información de una plataforma que permite realizar busquedas de IoT (Internet de las Cosas), esta plataforma fue presentada en las conferencias de BlackHat 2016, Un dia mirando una charla del DragonJAR Security Conference 2016 “Explotando y atacando redes sismológicas remotamente”, el expositor James Lara utilizo la herramienta online para encontrar los sismografos la cual me llamo la ateción dicha herramienta se llama NetDB – The Network Database Project, super interesante la plataforma les dejo el link https://netdb.io/, les comparto tambien definición desde la sitio oficial  ¿Que es NETdb?

netdbview

Saludos, Comparte y Comenta!!!

Disponibilidad de nick, marca o dominio

En esta oportunidad les comparto unas herramientas en online para chequear que un@ “usuario o marca o dominio” este disponible o no disponible en la red.

namechk.com
Se encarga de comprobar  disponibilidad de nick, dominio o marca, en los principales servicios web y apps.

2

Algunas caracteristicas:

  • Busqueda de dominios o nickname.
  • Podrias explorar los resultados en un archivo CSV.
  • Acceso a API.
  • Sugerir Sitios o Servicios donde buscar.
  • Crear una cuenta para el servicio.

Funcionamiento:
Introduces el  nick, dominio o marca, precionas “Enter” para realizar la busqueda y automáticamente se van coloreando los nombres de los servicios:
si es gris/morado no está disponible y si es verde sí lo está.

Link: https://namechk.com/

Continue reading

Android con API OpenCellid.org + JSON + Google Map (Geolocalizar BTS)

PocPresento en esta oportunidad una pequeña aplicación en Android que integra los siguientes conceptos:

  • Utilizar de un API de OpenCellid.org: Utilizado para obtener datos de la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).
  • Utilizar la Clase TelephonyManager: Utilizado para obtener parámetros que tiene nuestro celular para geolocalizar la Estación Transceptora Base (BTS) o antena.
  • Utilizar JSON: Utilizado para manipular la respuesta del API OpenCellid.org con datos de la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).
  • Utilizar Clase Interna de Java: Utilizada en la implementación de la Clase interna ManagerNet extiende de AsyncTask.
  • Utilizar Clase AsyncTask: Utilizado para realizar operaciones en segundo plano y publicar los resultados sobre el hilo de interfaz de usuario.
  • Utilizar Clase HttpURLConnection: Utilizado para establece comunicación de HTTP con el API OpenCellid.org.
  • Utilizar un WebView: Utilizado para mostrar el sitio web de Google Map embebido en nuestra aplicación.
  • Utilizar Google Map: Utilizado para geolocalizar la Estación Transceptora Base (BTS) o antena, a la cual se conecta nuestro celular en una comunicación GSM).

Tecnología GSM

Leyendo sobre la tecnología y funcionamiento GSM (Sistema Global para las Comunicaciones Móviles), es el estándar para la comunicación inalámbrica aplicada a teléfonos móviles, que hace uso de la red celular para su funcionamiento, estructura básica del sistema GSM, este se organiza como una red de células radioeléctricas continuas que proporcionan cobertura completa al área de servicio. Cada célula pertenece a una Estación Transceptora Base ó Estación Base (BTS) que opera en un conjunto de canales de radio diferentes a los usados en las células adyacentes y que se encuentran distribuidas según un plan celular, entre sus elementos principales se destaca:

  1. Estación Móvil (MS): que es un dispositivo para comunicarse dentro de la red (teléfono, tablet, pc, etc).
  2. Estación Transceptora Base ó Estación Base (BTS): que es un transmisor/receptor usando para transmitir/recibir señales de la sección de radio de la red.
  3. Centro Conmutador Móvil (MSC): establece y mantiene las llamadas que se hacen en la red.
  4. Controlador de estación base (BSC): controla las comunicaciones entre grupos de estaciones tranceptoras bases (BTS’s) y un solo centro conmutador móvil.
  5. Red de telefonía publica conmutada (PSTN): que es la sección terrestre de la red.

Nuestra Aplicación:

Nuestra aplicación comprende los primeros dos elementos de la estructura de un área celular (GSM), el MS que seria nuestro celular y la Estación Base (BTS) la que proporciona servicio GSM donde estamos ubicados, nuestro objetivo es geolocalizar la Estación Base (BTS)  tomando como insumo datos que proporciona nuestro celular y utilizando la API OpenCellid.org para obtener las coordenadas geográficas de la Estación Base (BTS)  para luego mostrar ubicada la Estación Base (BTS) en Google Map.

Datos sobre el API OpenCellid.org

  1. Web Site: http://opencellid.org/
  2. OpenCellID es el proyecto de colaboración más importante del mundo de la comunidad que recoge las posiciones GPS de las torres de celulares, que se utiliza de forma gratuita, para una multitud de fines comerciales y privados.
  3. API: La mayoría de las llamadas a la API se requiere una clave de API, esta clave de se puede obtener al registrarse aquí .
  4. El API tiene documentación clara sobre su uso.

Datos requeridos para el API

Estos datos son obtenidos por medio de la clase de Android (TelephonyManager) estos datos están en nuestro celular:

  • Cellid o CID: Un número único utilizado para identificar la estación transceptora base GSM de que el teléfono está conectado.
  • LAC: Identifica el área de ubicación del teléfono dentro de una red móvil terrestre pública GSM.
  • MCC: Identifica el país de la red GSM.
  • MNC: Identifica el operador de la red GSM .
  • MCC + MNC: La unión de los dos códigos forma el PLMN (public land mobile network), el cual representa a un único operador.

Continue reading

Un acortador de URL (URL shortening)

Un acortador de URL es un servicio que se encarga de reducir el tamaño de una URL haciéndola más pequeña para que sea más manejable y fácil de compartir o recordar. Algunos ejemplos de acortadores de url son:

  • Bit.ly
  • goo.gl (Google)
  • Ow.ly
  • TinyURL.com
  • itun.es (Apples)

Tecnica:

En el acortamiento de URL, donde cada URL larga está asociada a una clave única, que es la parte que sigue a “http:://nombrededominio/”. Por ejemplo: “http:://bit.ly/Hs6dsgb” tiene una clave de “Hs6dsgb”. No toda las redirecciones se tratan por igual; la instrucción de redirección enviada a un navegador puede contener en su encabezado el estado HTTP 301 (redirección permanente) 302 o 307 (redirección temporal).

Problemas de seguridad:

  • Detrás de una url acortada puede esconderse cualquier cosa (web maliciosas, exploits, malware, etc.) .
  • Permite ocultar código “incrustado” en la propia URL en forma de parámetros o sentencias complejas, como el potencial destino malicioso de la URL verdadera.

Algunas formas de visualizar la url real detras de la url acortada:

Complementos de Mozillla Firefox

Long URL Please 0.5.1: Reemplaza urls cortas con las originales, para que pueda ver los enlaces en reales.

Servicios Online

Unshorten.it: Permite ingresar el enlace acortado y obtener el verdadero enlace mostrado, además, una captura del sitio y un pequeño reporte sobre la reputación del mismo.

Otros servicios Online:

Script de Python

Obtener información de una url acortada por medio de un script de Python:

import urllib2

def main(pstr):
try:

response = urllib2.urlopen(pstr)
print ‘———————————————————–‘
print ‘Original Url:’, pstr
print ‘Final url after redirects  :’, response.geturl()
print ‘HTTP response code         :’, response.getcode()
print ‘———————————————————–‘
print ‘HTTP response headers:’
headers = response.info()
for obj in headers:
print obj+ “:” ,headers[obj]
print ‘———————————————————–‘

except HTTPError, e:
print ‘Error ‘ + e.code
except URLError, e:
print ‘Error ‘ + e.reason

if __name__ == ‘__main__’:
var = raw_input(‘write an url:’)
if var != ”:
main(var)
else:
print “Error, you don’t write an url”

Resultados de la ejecución de codigo: shorturl1Saludos, Comenta y Comparte.  

System.Diagnostics.StopWatch (Temporizador)

Stopwatch es una clase en el .NET Framework que reside en el espacio de nombres System.Diagnostics y es un temporizador de alta resolución.

Metodos:

Esta clase tiene varios métodos: Start(), Stop() y Reset() que sirven para iniciar, detener y resetear el temporizador respectivamente.

El método compartido StartNew() devuelve una instancia del temporizador y lo inicia, este método lo usemos para crear objetos nuevos y al mismo tiempo iniciarlos.

Propiedades:

Esta clase tiene varias propiedades:

  1. Elapsed, devuelve un objeto de tipo TimeSpan.
  2. ElapsedMilliseconds, devuelve un valor Long con los milisegundos transcurridos.
  3. ElapsedTicks, devuelve un valor Long, pero con los “pasos” del temporizador.
  4. IsRunnig, nos puede servir para saber si aún se está ejecutando.
  5. Frequency de solo lectura, que nos da información de la frecuencia (en pasos) del temporizador.
  6. IsHighResolution de solo lectura, que devuelve un valor verdadero/falso según se use un temporizador de alta resolución/precisión.

Utilidad:

  • Es útil para los puntos de referencia en la optimización del código.
  • Medir el tiempo que tarda en ejecutar una parte de su código.

Acontinuación se presenta un ejemplo de medición de tiempo en dos ciclos “for” el primero con una concatenación a una variable “string” y el segundo con una concatenación a una variable “StringBuilder”:

stopwatch1

Se presenta los tiempos de la ejecución de ambos bloques de codigo “ciclos”,  la medición se presenta en Milisegundos:

stopwatch2Saludos, Comenta y Comparte.

Alternate Data Streams o Flujo Alternativos de Datos (ADS)

Alternate Data Streams o Flujo Alternativos de Datos (ADS) una caracteristica del sistema operativo Windows (presente del sistema operativo Windows NT) en su sistema de archivos NTFS que permite almacenar un fichero dentro de otro fichero.

Se piensa que un fichero es una secuencia de bytes ordenados que se accede por un nombre, pero en el sistemas de archivos NTFS, un fichero está compuesto por diferentes flujos de datos o “data streams”, junto a un flujo principal como se muestra en la siguiente imagen:

structure ntfs

Algunas caracteristicas de los ADS:

  • Son completamente ocultos para el usuario, no puede ser vistos por métodos convenciones como el Explorador de Windows.
  • El archivo principal no refleja el tamaño de los otros archivo vinculados.
  • Los archivos ADS pueden contener cualquier extensión.

Algunos usos:

  1. Son utilizados por sistema operativo y aplicaciones como fuentes de informacion de metadatos.
  2. Es una tecnica anti-forence para oculta evidencia.
  3. Son utilizados para ocultar archivos ejecutables (malware) para su posterior ejecución.

adsgrafic

Grafico resumen de archivos ADS.

Ejemplo de crear y visualizar un archivo ADS desde Windows 8:

adswin8

Ejemplo como visualizar un archivo ADS desde una herramienta como lo es ADSspy, muy sencilla de utilizar.

adsADSspy

Saludos, comenta y comparte.