sábado, 29 de octubre de 2016

¿Gasolina cara?. Cambia el precio del surtidor. Es fácil XD

Estimados amigos de Inseguros !!!

Estamos a fin de mes, o a principios, da igual. El pasar por la gasolinera a llenar el depósito es algo que tenemos que hacer cada cierto tiempo, al menos si como yo, eres un esclavo de la comodidad del coche.

Siempre andamos cabreados con las subidas, e incluso cuando baja el precio !!! ya que siempre consideramos poca la bajada.

Lo suyo sería poder cambiar el precio de la gasolina, en esta episodio vamos a aprender a hacerlo.


Tengo que decir que durante el artículo NO voy a dar ningún detalle que te permita reproducir o usar el contenido para tu provecho. Yo no lo he hecho, como siempre, me conformo con la emoción de probarlo y saber que puedo.

También tengo que decir que NO he comunicado nada a nadie.

La empresa que fabrica los productos es consciente del peligro de sus malas prácticas.

La empresa instaladora que hace mala implantación es consciente del peligro de sus malas prácticas.

La empresa cliente, la final, la gasolinera, pasa 20.000 auditorias de todo tipo para mantener su negocio funcionando, la auditoria informática/seguridad debería ser una más, y así de paso algunos podríamos llegar a fin de mes...

Dicho esto.

Todo comenzó como comienzan muchas veces estas cosas, por casualidad. Me gusta ver la cadena regional de televisión de Murcia, "LaSiete" a la hora de comer. Me informo mas o menos de lo acontecido, pero sobre todo, me gusta ver las noticias "tecnológicas". Mi mujer se ríe porque dice que la veo solo para eso, para luego "auditar" los sistemas de los paisanos, o al menos, ofrecerles mis servicios...

Un día apareció una noticia de la típica empresa de agrícola, con un sistema "móvil, inteligente, big data, industria 4.0, start up" etc etc. El sistema permite a la empresa usar a pie de campo los terminales para anotar cosas... Una pintaza... de tener la seguridad como lo primero en su desarrollo...

Esa misma tarde me pongo así curiosón y digo voy a ver así por encima, codo-comillas, si hay algo estrepitoso...y en efecto...ALGO ESTREPITOSO.

La empresa tenía el sistema de suministro de gasolina y gasoil de su flota y asociados abierto con la clave por defecto del fabricante.


Esa misma tarde, contacte con el gerente. Perdón, lo intenté.

Al día siguiente intenté contactar con el director financiero. Nada.

Al final invirtiendo horas y horas, muchas más que las necesarias para petar el sistema (5 minutos) encontré al informático, en este caso SEÑOR INFORMATICO. Nada.

Al final, una pobre empleada de RRHH se dignó a atenderme y hacerle llegar el recado al informático:


Si os preguntáis si 6 meses después se ha solucionado el problema, quitar el Nateo o cambiar la clave, es que no sois del gremio, porque la respuesta es OBVIA. NO

Dentro de poco tengo que dar una charla para un colectivo de ciudades conectadas... Y retomo este asunto que dejé aparcado.

Utilizo Shodan para buscar un "intitle" de los sistemas expuestos que revela el sistema. Encuentro con varios sistemas instalados por todo el mundo.


Me centro un poco más en los sistemas ubicados en España y en el 100% de ellos aparece como acceso el user y pass del fabricante, en TODOS. En los que he probado de la India también menos 1, pero no los he probado todos.

Tengo que decir que podría ir desde Murcia hasta el fin del mundo, Huesca xD, pasando de gasolinera en gasolinera vulnerable. Hay muchas y perfectamente localizables.

Tomando todas las medidas de seguridad posibles, empiezo a ver que se puede hacer con estos sistemas. 

Por ejemplo, puedo cambiar el orden de los surtidores conectados a los tanques. Existen tanques de suministro, bombas y sensores. Podemos cambiar el gasoil normal por el B y viceversa. Esto más que nada sería una putada.


Uno de los campos que puedo configurar es el permiso de usarlo. Imagino que la estación de servicio al llegar un cliente activará el surtidor, como por ejemplo el modo noche de las gasolineras que no permite usarlo hasta que pagas. Esto se puede cambiar.


Otros datos que podemos cambiar es el cierre de caja, imagino que hara un "commit" que enlazará con el sistema TPV o vaya usted a saber. Podemos resetear el sistema tanto funcionalmente como a nivel de configuración. Lo mas curioso es que el log de eventos en todos los sistemas estaba DISABLE.


Lo más gracioso de esto es poder cambiar el precio del surtidor.



Aparte de los sistemas de control mediante Web, la mayoría tienen expuesto el mismo sistema en modo consola en otro puerto. En la web del fabricante te dan todas las especificaciones para que ajustes la terminal al número de filas y columnas y esas cosas de las terminales remotas :-)


 Como he mencionado, todo esto se hizo en unos minutos, para exponer a los asistentes al evento que todo eso del Smart Cities está muy bien, que los precios de los equipos/baterías han bajado, que todos tenemos ideas mágicas para usar la tecnología, el IoT al beneficio de la ciudadanía, si todo eso está muy bien, pero la seguridad debe ser un MUST en todo esto.

Todos los que estamos en el sector vemos los fallos de seguridad de las empresas, algunas grandes, otras pequeñas, algunas son bancos, pero la mayoría son leaks de información que seamos sinceros, la repercusión de que una empresa de 50 personas en un pueblo de nosedonde sufra un incidente, pues es para el empresario, como mucho para sus trabajadores.

Sin embargo, como ciudadanos, están jugando con nuestra seguridad, con nuestra privacidad, con nuestros datos y esto puede tener repercusiones directas en nuestra vida. Se me ocurren 20.000 perrerías que hacer a los 20.000 proyectos de Smart Cities que leo.

Aquí os paso un vídeo muy divertido del maestro Juan Garrido en el que explica claramente como cargarse un sistema IoT de un proyecto Smart Cities con mucho salero xD



Queremos Smart Cities que nos hagan la vida más fácil, pero no que estén en manos de cualquiera.

Gracias por leerme.

En ningún momento se ha modificado ningún dato de los expuestos. En el cambio de precio la duración del mismo fue de 1 segundo y se comprobó en el registro que nadie durante ese tiempo utilizó el surtidor.





jueves, 27 de octubre de 2016

Mirai Botnet Recursos unificados para estudiar.

Estimados amigos de Inseguros !!!

El pasado viernes balalbalbalblablabla...Mejor te lo explica mi jefe :-)

Ahora bien, si quieres ver el código fuente de la botnet puedes leerlo aquí.

Si quieres ver el fabuloso trabajo de Simon Roses en su blog puedes leerlo aquí.

Si quieres leer una descripción del reversing hecho a Mirai y a sus predecesores, puedes leerlo aquí.

Si quieres tener una lista de IoC´s de máquinas que están dando vueltas buscando puerto 23 y 2323 lo puedes tener en BlueLiv o en Otx de Alienvault.




Si quieres el listado de los IoC´s en formato SNORT listos para empaquetar e integrar con tu IDS/IPS/SIEM los puedes descargar desde mi repositorio GITHUB.

Espero que os haya gustado, como siempre, gracias por leerme.


lunes, 17 de octubre de 2016

DSINTERNALS. Adquirir el listado completo de usuarios y contraseñas de Active Directory.

Estimados amigos de INSEGUROS!!!

En este post vamos a dar un pequeño truco muy útil para administradores de sistemas Windows o para auditores. Un ejemplo de como la misma herramienta puede servir para el mismo fin, o para distintos, según se mire...

Mi aproximación va a ser más orientada a la de administrador de sistemas.

Me comenta un cliente que tiene la necesidad de conectarse a los equipos para realizar tareas, con el usuario en cuestión, pero sin cambiarle la clave. Esto suele ser muy habitual en empresas pequeñas. Imagina un usuario que se va de vacaciones pero alguien el departamento necesita acceder al OWA del usuario para recuperar un correo. Imagina cualquier settings que haya que probar dentro del entorno del usuario. Aunque no es muy elegante, y tampoco se si legal, es algo habitual.



La única manera que se me ocurrió fue, extraer la lista de claves del dominio :-) Brillante idea, pero como? Me sirve el hash ntlm para hacer un pass the hash? Con el hash puedo ejecutar comando remotos, pero necesito "sentarme" delante del pc con pass the hash... Perfecto, un cliente RDP que me permite esto :-)

Lo primero es instalar un conjunto de herramientas en PowerShell muy conocidas por los auditores, DSINTERNALS.

Esta herramienta es muy potente ya que nos permite extraer la base de datos de AD con arranque portable, ejecutar ataques de diccionario, comprobar requisitos de seguridad mediante al hash, etc.

Lo que vamos a hacer es instalarlo. Lo primero que hago es bajar la última versión del Windows Management Framework con Powershell 5. Comprobamos la versión de powershell instalada con Get-host


Podemos descargar DSINTERNALS desde la web del proyecto, pero es más cómodo usar un repositorio público con proyectos en powershell muy interesantes, PowershellGallery, click click y lo tenemos.

El primer script que uso es este, que me da TODOS los hashes de todos los objetos, incluidos equipos...

Import-Module DSInternals
Get-ADReplAccount -All -NamingContext 'DC=****,DC=local' -Server ***DC01 > c:\kinomakino\todos.txt


Tenemos otra posibilidad menos ruidosa, ya que esto podría levantar sospechas ya que realmente está haciendo una replicación entre controladores de dominio... pero con un solo DC xD.

Import-Module DSInternals
$cred = Get-Credential
Get-ADReplAccount -SamAccountName **** -Domain **** -Server ****DC01 -Credential $cred -Protocol TCP > c:\kinomakino\uno.txt

De esta manera tenemos el resultado para el usuario dado, pero nos pide una clave del dominio...

Podríamos usar cualquier servicio público para averiguar contraseñas ya calculadas, o podríamos usar herramientas de cracking como hashcat o cualquier otra para sacar la contraseña en claro, pero vamos a optar por usar el Pass The Hash.


Brevemente, ¿Qué es pass the hash?. Una técnica de la prehistoria para pasar el hash de una clave a un servicio en vez de la propia clave. Hay muchas aplicaciones prácticas de esta técnica, casi siempre, acceso a carpetas SMB o ejecución remota de código.

Como indica este breve manual, podemos usar la herramienta XfreeRDP para pasar el hash al sistema en vez de la contraseña. El manual está disponible aquí.

Espero que os haya servido de ayuda esta pequeña colección de herramientas Powershell, sea para el bien o el mal, todos sabemos que la línea que lo separa es fina fina fina xD.

Gracias por leerme !!!


jueves, 13 de octubre de 2016

Cliente Putty: Ejecutar comando remoto con parámetro variable. Ejemplo de banear ip remota.

Estimados amigos de Inseguros !!!

Vamos a comentar un pequeño truco que he necesito aplicar en un cliente para facilitarte la vida, o realmente, para hacérsela más compleja?

La cuestión es una infraestructura interna con varios servers y un firewall perimetral. En este caso un Sonic Wall. Tenemos eventos del IDS, del WAF, de Fail2ban, tenemos eventos por todos lados.

Una de las cosas que me gusta es hacer un BAN de las ip que detecto maliciosas, al menos durante 15 días.

Para ello me gusta tener un equipo linux, suelo usar OSSIM para ejecutar un comando que banea en el firewall. Un script sencillo al que le paso por parámetro la IP, y el se encarga de crear el Object y meterlo en una Address List.

Cada firewall funciona de distinta manera, pero casi siempre suele ser ese el orden, crear un objeto IP y luego asignarlo a un grupo. Una regla de firewall clásica de block tiene como ip origen cualquiera del grupo...De momento nada nuevo cierto?

Los distintos servidores se conectan al SSH de OSSIM, le pasan la IP, y este se conecta al firewall para banear. Me gusta hacerlo así ya que si el fabricante del firewall cambia algún valor o sintaxis... me ahorro cambiarlo en un sitio. Aparte, en ese servidor "de baneos" escribo unos logs y envío unos correos... Lo normal.


Ahora se me presenta un caso, y es que el cliente quiere banear direcciones ip a mano, pero el proceso de entrar al firewall es lento. Hacer Login, no se lo sabe de memoria, navegar... Podría usar el script de OSSIM, pero tendría que hacer login.

Como último reto, el cliente usa WINDOWS, por lo que usa PUTTY para conectarse a los sistemas del pinguino.

Para solventar el problema, he usado un cliente Putty de línea de comandos llamado PLINK.

Ahora creo un script en BATCH para que me pida la IP, con esa IP se conectará a un ssh que previamente tengo guardado en mis sesiones de Putty, y monta el comando. Una vez montado lo ejecuta. La lógica es muy sencilla aunque se que poco elegante:

@echo off
SET /P variable=[introduzca la dirección IP que desea banear]
set PARAMETER=%variable%
echo /var/scripts/ban_sonic_manual.sh %PARAMETER% > commands.txt
plink.exe -load "OSSIM" -l root -pw "tuclave" -m commands.txt

Como verás, existe un pequeño fallo... y es que aparece a fuego la clave. Esto es algo que debemos cuidar y que los auditores de seguridad intentarán explotar en procesos de auditoria. También puedes añadir del commands.txt && ECHO Y si te preocupa que el comando deje huella de la última IP baneada...


Guardamos el fichero como .bat y acceso directo a donde nos plazca...

Para solventar el uso de la clave ssh a fuego, podemos hacer como hacemos con nuestros servers/clientes en linux, generamos la clave privada en el servidor con una frase, la importamos en putty y de esta manera no nos pedirá clave. Otra opción es simplemente borrar el parámetro de contraseña, y que en cada ejecución nos pida la clave del ssh. Cada entorno y nivel de seguridad requerirá una solución u otra

El procedimiento para usar clave privada sin contraseña en putty es tan sencillo como seguir este manual.

También puedes usar este pequeño truco para conectarte a cualquier servidor SSH directamente, y ejecutar un iptables o cualquier comando que necesites, que requiera de un parámetro.

Espero que te sirva de ayuda el truco y las ideas presentadas.

Gracias por leerme !!!

martes, 11 de octubre de 2016

Azure Security. En cloud no solo el tamaño importa. Security Center.

Estimados amigos de Inseguros !!!

Voy a decir algo: CLOUD !!! ¿Sigues ahí? ¿No ha muerto el gatito de internet? Lo siento, voy a hablar del Cloud y encima de el de Microsoft !! Azure :-)


Como buenos informáticos que somos, cuando pensamos en estas cosas, pensamos en que no es nada más que unas máquinas en internet. Nos gusta, nos sentimos cómodos creyendo que lo sabemos todo, o al menos, sabemos un poco de casi todo.. Además, el ser humano por naturaleza tiene funciones cognitivas basadas en la comparación, y nosotros de máquinas y de internet sabemos...

Con esta locura-reflexión comienzo el post de hoy sobre un servicio de seguridad de la mano de Microsoft Azure.

Como decía, cuando contratas un servidor en internet sueles buscar precio, capacidades de cómputo, memoria, disco, red. Eso no es Cloud. Por ejemplo, cuando hablamos de Cloud, hablamos en facilidad para despliegue, rapidez, orquestación y demás servicios que puedan extender tu infraestructura, servicios y demás.

La capacidad de conexión y control de los distintos servicios también es muy importante a la hora de construir una infraestructura en la nube, o montar un Cloud...

Pero aquí vamos a hablar de seguridad. La seguridad tiene varias vertientes, vamos a comenzar con alguna de las que menos nos gustan Legal.

Azure es un proveedor autorizado por la Agencia Española de Protección de datos para exportar nuestra información. La resolución es esta.

Si investigas un poco sobre la transferencia internacional verás muchas resoluciones puntuales entre empresas internacionales concretas, pero con Azure tenemos garantizada la legalidad implícitamente. Esto es extensible a Azure, Office 365 y al ERP en la nube Dynamics.


Si tu organización es pública y requiere pasar el famoso ENS (Esquema Nacional de Seguridad) Microsoft Azure ahora mismo es el único proveedor internacional de cloud certificado para ello en el nivel ALTO. Más información.

Hasta estás aburrido, no te interesa nada todo esto... o quizás si. Vamos ahora con la seguridad técnica.

Lo primero que hacemos es entrar al Security Center del portal Azure para ver que nos indica.


Empezamos a ver indicadores y podemos pinchar en mil sitios, vamos a pinchar por todas partes.

Una de las recomendaciones de seguridad que nos indica el servicio es que no tenemos un Firewall a nivel de la infraestructura, a nivel de lo que sería el perímetro, y nos ofrece la posibilidad de contratar 2 servicios. Como es normal, tu puedes montar lo que quieras, es decir, un Mikrotik virtual o un PFSENSE sobre tu linux favorito, pero Microsoft te ofrece la compra de licencias de partners, como es lógico. Si elegimos la solución Barracuda obtenemos 30 días de prueba. El servicio Checkpoint es de tan solo 15 días.

Hay que decir que hablamos de FiREWALL Next gen, es decir, con DPI (Deep Packet inspection) y otra serie de tecnologías más allá de bloquear puertos, esto lo hacen por defecto los servicios de Azure sin necesidad de comprar más licencias. 

Si queremos establecer una comparación con un proveedor distinto, por ejemplo, OVH, podemos equipararlo a las soluciones NSX de los hosts con VMWARE o las soluciones Cisco ASA para dedicados y VRACK en general. Hay que tener en cuenta que los precios de estas licencias van condicionados al número de máquinas y caudal de conexión, algo que puede provocar un SPOF o cuello de botella en nuestros despliegues bajo demanda...

Bien Microsoft nos anima a comprar licencias... algo mas????.

Grupos de seguridad. ¿Que son grupos de seguridad? Configuraciones de reglas de entrada y salida de red, las típicas reglas de firewall pero que se asignan por defecto a tus grupos de recursos. Esto es MUY interesante. Imagina un cluster de servidores web en los que tienes X puertos abiertos al público, X puertos de comunicaciones entre ellos y X puertos de comunicación con tu sede o un extremo conocido. Sin duda, que por defecto las nuevas instalaciones de máquinas asuman estas configuraciones es un valor añadido. 


INSISTO en lo de antes, esto no es contratar máquinas en internet, para eso, tenemos otras soluciones...

Ahora os voy a soltar la bomba !!! la solución de seguridad, definitiva !!! lo nunca visto !!! Capar el extremo de un servicio solo a una IP. Tachannnnnnnnnn, a que merezco un premio?.

Si trabajas en auditorias me contarás, en cuantos clientes, no se realiza esta medida? No hay una restricción de IP entre dos sedes con ip fija y la VPN está disponible para todos... o la conexión SSH.. Es una medida CHORRA, pero que aumenta la seguridad considerablemente. Azure entiende que esta medida es básica para la conexión SSH de las máquinas virtuales linux, y como tal, te lo indica con una alerta. Ya sabes que lo mismo, si el usuario ve la alerta, lo mismo digo... le de por solucionarlo... otra cosa que suele pasar es que se acostumbre a tener alertas:1 y no sirva de nada...


Por último vamos a ver la recomendación del informar sobre un responsable. Esto parece una trivialidad, pero cuando estás en el mundo de la respuesta a incidentes no lo es tanto. Tener una persona DEFINIDA y responsable de la seguridad es vital para gestionarle. Nos pasa en muchos casos de tener incidentes de seguridad con terceros, intentar averiguar quien es el encargado de la gestión, y tener que contactar con 3, 4 o quizás mas personas para encontrar al responsable. Este campo es muy bueno, ya no por su valor técnico, sino por la implicación a nivel de empresa de tener que designar un responsable...

Lo bueno de este portal o servicio de seguridad es que es completamente compatible con el uso de ROLES dentro de una empresa con varios administradores. 


Seguro que te parece interesante este servicio, o quizás no, quizás seas de los que quiere más "chicha", más nivel técnico, logs, eventos, SIEMS y demás servicios de seguridad. Bien, lo dejamos para el próximo episodio? :-)



Gracias por leerme !!!












viernes, 7 de octubre de 2016

Wireshark ver en una columna la URI completa.

Estimados amigos de Inseguros !!!

En el post de hoy voy a comentar un pequeño truco que suelo usar mucho con WIreshark cuando trabajo con capturas de tráfico web.


Una de las cosas que necesito es ver a simple vista la URI completa, es decir, el dominio y la url concreta, no solo la url. Mejor te pongo un ejemplo:


Si miras el tráfico http en detalle si ves la url completa:


Si pulso sobre el link con el botó derecho y le indico que me lo muestro como columna...


Me permite ver cómodamente las URL completa en el panel, ordenarla, etc...


Espero que os sirva este pequeño truco.

Gracias por leerme !!!